55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
from pydantic import BaseModel, Field
|
|
from typing import List, Optional
|
|
from datetime import date
|
|
|
|
from schemas.documents.ligne_document import LigneDocument
|
|
|
|
|
|
class LivraisonCreate(BaseModel):
|
|
client_id: str
|
|
date_livraison: Optional[date] = None
|
|
date_livraison_prevue: Optional[date] = None
|
|
lignes: List[LigneDocument]
|
|
reference: Optional[str] = None
|
|
|
|
class Config:
|
|
json_schema_extra = {
|
|
"example": {
|
|
"client_id": "CLI000001",
|
|
"date_livraison": "2024-01-15",
|
|
"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[date] = None
|
|
date_livraison_prevue: Optional[date] = 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-15",
|
|
"date_livraison_prevue": "2024-01-15",
|
|
"reference": "BL-EXT-001",
|
|
"lignes": [
|
|
{
|
|
"article_code": "ART001",
|
|
"quantite": 15.0,
|
|
"prix_unitaire_ht": 45.0,
|
|
}
|
|
],
|
|
"statut": 2,
|
|
}
|
|
}
|