from pydantic import BaseModel, Field from typing import List, Optional from datetime import datetime from schemas.documents.ligne_document import LigneDocument class LivraisonCreate(BaseModel): client_id: str date_livraison: Optional[datetime] = None date_livraison_prevue: Optional[datetime] = None lignes: List[LigneDocument] reference: Optional[str] = None class Config: json_schema_extra = { "example": { "client_id": "CLI000001", "date_livraison": "2024-01-15T10:00:00", "reference": "BL-EXT-001", "lignes": [ { "article_code": "ART001", "quantite": 10.0, "prix_unitaire_ht": 50.0, "remise_pourcentage": 5.0, } ], } } class LivraisonUpdate(BaseModel): date_livraison: Optional[datetime] = None date_livraison_prevue: Optional[datetime] = None lignes: Optional[List[LigneDocument]] = None statut: Optional[int] = Field(None, ge=0, le=6) reference: Optional[str] = None class Config: json_schema_extra = { "example": { "date_livraison": "2024-01-15T10:00:00", "date_livraison_prevue": "2024-01-15T10:00:00", "reference": "BL-EXT-001", "lignes": [ { "article_code": "ART001", "quantite": 15.0, "prix_unitaire_ht": 45.0, } ], "statut": 2, } }