package gtm

import (
	"fmt"
	"strings"

	"github.com/go-logr/logr"
)

type SimpleQualifier struct {
	logger logr.Logger
}

func NewSimpleQualifier(logger logr.Logger) *SimpleQualifier {
	return &SimpleQualifier{logger: logger}
}

func (q *SimpleQualifier) IsQualified(enrichment *CompanyEnrichment) (bool, string) {
	// Check required fields are not empty or "unknown"
	requiredFields := map[string]string{
		"company_name":   enrichment.CompanyName,
		"vertical":       enrichment.Vertical,
		"business_model": enrichment.BusinessModel,
	}

	for field, value := range requiredFields {
		if value == "" {
			return false, fmt.Sprintf("Field '%s' is empty", field)
		}

		valueLower := strings.ToLower(strings.TrimSpace(value))
		if valueLower == "unknown" || strings.Contains(valueLower, "unknown") {
			return false, fmt.Sprintf("Field '%s' is unknown", field)
		}
	}

	// Check confidence level
	if enrichment.ConfidenceLevel == "low" {
		return false, "LLM confidence level too low"
	}

	return true, "All required fields present and valid"
}
