from src.core.config import policy_v1
from src.core.models.inputs import CreditRequest


def calcular_confidence(input_data: CreditRequest) -> str:
    """
    Define a confiança do score com base em:
    - número de documentos (3–5)
    - completude do formulário (0–100)

    Regras (policy_v1.CONFIDENCE_RULES):
    - alta: docs >= 4 e completude >= 80
    - media: docs >= 3 e completude >= 60
    - baixa: qualquer coisa abaixo disso
    """

    docs = input_data.num_documentos
    completude = input_data.percentual_completude

    alta = policy_v1.CONFIDENCE_RULES["alta"]
    media = policy_v1.CONFIDENCE_RULES["media"]

    if docs >= alta["docs"] and completude >= alta["completude"]:
        return "alta"

    if docs >= media["docs"] and completude >= media["completude"]:
        return "media"

    return "baixa"
