# api/schemas.py

from pydantic import BaseModel
from typing import List, Optional, Dict, Any

# ============================================================
# MODELO AUXILIAR — CONSISTÊNCIA DA EMPRESA
# ============================================================

class CompanyConsistencySummary(BaseModel):
    status: str               # OK | PARTIAL | INCONSISTENT
    confidence_score: float   # 0.0 – 1.0
    alerts: List[str]


# ============================================================
# V2 — CONTRATO COMPLETO (OFICIAL)
# ============================================================

class CreditEvaluationResponseV2(BaseModel):
    score: int
    risk_class: str
    confidence: str
    decision: str

    # Decisão financeira
    approved_amount: Optional[float] = None
    approved_term_days: Optional[int] = None

    # Identidade & documentos
    company_consistency: Optional[CompanyConsistencySummary] = None

    # Explicações
    reasons: List[str]
    flags: List[str]

    # Recomendações automáticas
    recommended_max_value: Optional[float] = None
    recommended_term_days: Optional[int] = None

    # Extrato bancário (resumo)
    bank_statement_summary: Optional[Dict[str, Any]] = None
