class SettlementInputService:
    def parse_admin_input(self, text):
        raw = str(text or "").strip()
        if not raw:
            return "empty", 0
        try:
            return "valid", int(raw)
        except ValueError:
            return "invalid", 0

    def resolve_total_tunai(self, nilai_tunai, uang_text):
        if nilai_tunai is not None:
            return float(nilai_tunai)
        raw = str(uang_text or "").strip()
        if not raw:
            return 0.0
        try:
            return float(int(raw))
        except ValueError:
            return 0.0

    def can_enable_settle(self, has_transaksi, total_tunai, total_non_tunai):
        if not has_transaksi:
            return False
        return float(total_tunai or 0.0) > 0 or float(total_non_tunai or 0.0) > 0
