Sage100-vps/schemas/documents/devis.py

55 lines
1.5 KiB
Python

from pydantic import BaseModel, Field
from typing import List, Optional
from datetime import datetime
from schemas.documents.ligne_document import LigneDocument
class DevisRequest(BaseModel):
client_id: str
date_devis: Optional[datetime] = None
date_livraison: Optional[datetime] = 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[datetime] = None
date_livraison: Optional[datetime] = 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-15T10:00:00",
"date_livraison": "2024-01-15T10:00:00",
"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