class TransaksiAutocompleteService:
    def __init__(self, limit=50, min_keyword=1):
        self.limit = max(5, int(limit or 50))
        self.min_keyword = max(0, int(min_keyword or 0))

    def normalize_keyword(self, keyword):
        return str(keyword or "").strip()

    def should_lookup(self, keyword):
        normalized = self.normalize_keyword(keyword)
        if not normalized:
            return self.min_keyword == 0
        return len(normalized) >= self.min_keyword

    def get_limit(self):
        return self.limit
