from datetime import date from typing import List, Optional from pydantic import BaseModel, Field class ComandaRequest(BaseModel): tip_id: int id_masiniclient: int id_firma: int id_sucursala: Optional[int] = None id_asigurator: Optional[int] = None id_inspector: Optional[int] = None id_part_ref: Optional[int] = None sir_id_operatii: Optional[List[int]] = None observatii: str = "" defectiuni: Optional[str] = None km_int: int = 0 ore_functionare: int = 0 nr_dosar: str = "" termen: Optional[date] = None class ComandaResponse(BaseModel): id_ordl: int nrord: str mesaj: str class AsiguratorItem(BaseModel): id_asigurator: int denumire: str class InspectorItem(BaseModel): id_inspector: int denumire: str id_asigurator: int class OperatieItem(BaseModel): id_norme: int codop: str denop: str timpn: Optional[float] = None class PartenerItem(BaseModel): id_part: int denumire: str class PartnerCreateRequest(BaseModel): """Payload pentru POST /parteneri — creare partener nou în NOM_PARTENERI.""" denumire: str = Field(min_length=2, max_length=100) cui: Optional[str] = Field(default=None, max_length=30) adresa: Optional[str] = Field(default=None, max_length=150) id_firma: int = Field(ge=1) class MasinaDetails(BaseModel): id_masiniclient: int label: str nr_inmatriculare: Optional[str] = None marca: Optional[str] = None model: Optional[str] = None serie_sasiu: Optional[str] = None cilindree: Optional[int] = None putere_cp: Optional[int] = None putere_kw: Optional[int] = None client_nume: Optional[str] = None class FirmaItem(BaseModel): id_firma: int firma: str schema_name: str id_mama: Optional[int] = None class TipDevizItem(BaseModel): id_tip: int denumire: str inch_validare: int class MasinaClientItem(BaseModel): id_masiniclient: int label: str # "PARTENER — MARCA MASINA, NRINMAT (ANFABRICATIE)" class ComandaListItem(BaseModel): id_ordl: int nrord: str datai: Optional[str] # ISO date "YYYY-MM-DD" validat: int # 0=deschisă, 1=validată inchis_fortat: int # 1=arhivată fără validare id_tip: int tip_denumire: str vehicul: str # "PARTENER — MARCA MASINA, NRINMAT (AN)" id_masiniclient: Optional[int] class ComandaListResponse(BaseModel): comenzi: List[ComandaListItem] total: int page: int per_page: int