from typing import List, Optional

from pydantic import BaseModel


class ComandaRequest(BaseModel):
    tip_id: int
    id_masiniclient: int
    solicitari: str
    id_firma: int
    id_sucursala: Optional[int] = None


class ComandaResponse(BaseModel):
    id_ordl: int
    nrord: str
    mesaj: str


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
