from pydantic import BaseModel, Field from typing import List, Optional from datetime import date from schemas.documents.ligne_document import LigneDocument class DevisRequest(BaseModel): client_id: str date_devis: Optional[date] = None date_livraison: Optional[date] = None reference: Optional[str] = None lignes: List[LigneDocument] class Devis(BaseModel): id: str client_id: str date_devis: str montant_total_ht: float montant_total_ttc: float nb_lignes: int class DevisUpdate(BaseModel): """Modèle pour modification d'un devis existant""" date_devis: Optional[date] = None date_livraison: Optional[date] = None lignes: Optional[List[LigneDocument]] = None reference: Optional[str] = None statut: Optional[int] = Field(None, ge=0, le=6) class Config: json_schema_extra = { "example": { "date_devis": "2024-01-15", "date_livraison": "2024-01-15", "reference": "DEV-001", "lignes": [ { "article_code": "ART001", "quantite": 5.0, "prix_unitaire_ht": 100.0, "remise_pourcentage": 10.0, } ], "statut": 2, } } class RelanceDevis(BaseModel): doc_id: str message_personnalise: Optional[str] = None