from __future__ import annotations

from typing import Literal

from pydantic import BaseModel, ConfigDict, Field


class DiagnosticAidInterpretationStructured(BaseModel):
    """Validated proposal returned by the diagnostic-aid interpreter."""

    model_config = ConfigDict(populate_by_name=True, extra="ignore")

    decision: Literal["interpretado", "no_interpretado", "pendiente_revision"] = Field(
        default="pendiente_revision",
        alias="d",
    )
    interpretation: str = Field(default="", alias="i")
    evidence_ids: list[str] = Field(default_factory=list, alias="e")
    contradictions: list[str] = Field(default_factory=list, alias="c")
    reason: str = Field(default="", alias="r")
