"""Pydantic models for the Medical Assessment Tool (MAT).This module defines the data structures for requesting and representingmaterials or tools generated by the MAT service. These models ensurevalidated and structured data for the MAT API endpoints."""from__future__importannotationsfromtypingimportLiteralfrompydanticimportBaseModel,Field
[docs]classMATModelRequest(BaseModel):"""Defines the request model for generating a Medical Assessment Tool (MAT). Attributes: descrizione_scenario: A detailed description of the clinical scenario. tipologia_paziente: The type of patient (Adult, Pediatric, etc.). target: The target audience for the assessment tool. esame_obiettivo: Detailed physical examination findings for context. """descrizione_scenario:str=Field(description="A detailed description of the clinical scenario, including patient status and pathology.")tipologia_paziente:Literal["Adulto","Pediatrico","Neonatale","Prematuro"]=Field(description="Type of patient (Adult, Pediatric, Neonatal, Premature).")target:str=Field(description="Target of scenario, e.g studenti di medicina, infermieri, medici specialisti.")esame_obiettivo:str=Field(description="Detailed objective examination findings or exam type. Can include complete physical exam results to provide context for material selection (e.g., pupil assessment, neurological findings, vital signs, etc.).")
[docs]classMATModelResponse(BaseModel):"""Defines the response model for a generated Medical Assessment Tool (MAT). Attributes: nome: The name of the generated material or tool. descrizione: A description of the material or tool. """nome:str=Field(description="Name of material.")descrizione:str=Field(description="Description of the material.")
[docs]classMatModelListResponse(BaseModel):"""Defines the response model for a list of generated Medical Assessment Tools (MAT). Attributes: materials: A list of generated materials or tools. """materials:list[MATModelResponse]=Field(description="List of generated materials or tools.")