diff --git a/api.py b/api.py index 602361c..e670b2d 100644 --- a/api.py +++ b/api.py @@ -527,8 +527,9 @@ class FournisseurDetails(BaseModel): } -class ArticleResponse(BaseModel): +class ArticleResponse(BaseModel): + reference: str = Field(..., description="Référence article (AR_Ref)") designation: str = Field(..., description="Désignation principale (AR_Design)") @@ -546,49 +547,49 @@ class ArticleResponse(BaseModel): ) prix_vente: float = Field( - ..., ge=0, description="Prix de vente HT unitaire (AR_PrixVen)" + ..., description="Prix de vente HT unitaire (AR_PrixVen)" ) prix_achat: Optional[float] = Field( - None, ge=0, description="Prix d'achat HT (AR_PrixAch)" + None, description="Prix d'achat HT (AR_PrixAch)" ) coef: Optional[float] = Field( - None, ge=0, description="Coefficient multiplicateur (AR_Coef)" + None, description="Coefficient multiplicateur (AR_Coef)" ) prix_net: Optional[float] = Field( - None, ge=0, description="Prix unitaire net (AR_PUNet)" + None, description="Prix unitaire net (AR_PUNet)" ) prix_achat_nouveau: Optional[float] = Field( - None, ge=0, description="Nouveau prix d'achat à venir (AR_PrixAchNouv)" + None, description="Nouveau prix d'achat à venir (AR_PrixAchNouv)" ) coef_nouveau: Optional[float] = Field( - None, ge=0, description="Nouveau coefficient à venir (AR_CoefNouv)" + None, description="Nouveau coefficient à venir (AR_CoefNouv)" ) prix_vente_nouveau: Optional[float] = Field( - None, ge=0, description="Nouveau prix de vente à venir (AR_PrixVenNouv)" + None, description="Nouveau prix de vente à venir (AR_PrixVenNouv)" ) date_application_prix: Optional[str] = Field( None, description="Date d'application des nouveaux prix (AR_DateApplication)" ) cout_standard: Optional[float] = Field( - None, ge=0, description="Coût standard (AR_CoutStd)" + None, description="Coût standard (AR_CoutStd)" ) stock_reel: float = Field( default=0.0, description="Stock réel total (F_ARTSTOCK.AS_QteSto)" ) stock_mini: Optional[float] = Field( - None, ge=0, description="Stock minimum (F_ARTSTOCK.AS_QteMini)" + None, description="Stock minimum (F_ARTSTOCK.AS_QteMini)" ) stock_maxi: Optional[float] = Field( - None, ge=0, description="Stock maximum (F_ARTSTOCK.AS_QteMaxi)" + None, description="Stock maximum (F_ARTSTOCK.AS_QteMaxi)" ) stock_reserve: Optional[float] = Field( - None, ge=0, description="Stock réservé / en commande client (F_ARTSTOCK.AS_QteRes)" + None, description="Stock réservé / en commande client (F_ARTSTOCK.AS_QteRes)" ) stock_commande: Optional[float] = Field( - None, ge=0, description="Stock en commande fournisseur (F_ARTSTOCK.AS_QteCom)" + None, description="Stock en commande fournisseur (F_ARTSTOCK.AS_QteCom)" ) stock_disponible: Optional[float] = Field( None, description="Stock disponible = réel - réservé" @@ -614,10 +615,10 @@ class ArticleResponse(BaseModel): ) poids_net: Optional[float] = Field( - None, ge=0, description="Poids net unitaire en kg (AR_PoidsNet)" + None, description="Poids net unitaire en kg (AR_PoidsNet)" ) poids_brut: Optional[float] = Field( - None, ge=0, description="Poids brut unitaire en kg (AR_PoidsBrut)" + None, description="Poids brut unitaire en kg (AR_PoidsBrut)" ) gamme_1: Optional[str] = Field( @@ -690,7 +691,7 @@ class ArticleResponse(BaseModel): None, description="Nature de l'article (AR_Nature)" ) garantie: Optional[int] = Field( - None, ge=0, description="Durée de garantie en mois (AR_Garantie)" + None, description="Durée de garantie en mois (AR_Garantie)" ) code_fiscal: Optional[str] = Field( None, max_length=10, description="Code fiscal/TVA (AR_CodeFiscal)" @@ -709,7 +710,7 @@ class ArticleResponse(BaseModel): None, description="Conditionnement d'achat (AR_Condition)" ) nb_colis: Optional[int] = Field( - None, ge=0, description="Nombre de colis par unité (AR_NbColis)" + None, description="Nombre de colis par unité (AR_NbColis)" ) prevision: Optional[bool] = Field( None, description="Gestion en prévision (AR_Prevision)" @@ -765,7 +766,7 @@ class ArticleResponse(BaseModel): None, description="Article en sous-traitance (AR_SousTraitance)" ) criticite: Optional[int] = Field( - None, ge=0, description="Niveau de criticité (AR_Criticite)" + None, description="Niveau de criticité (AR_Criticite)" ) reprise_code_defaut: Optional[str] = Field( @@ -811,7 +812,7 @@ class ArticleResponse(BaseModel): None, description="Code TVA (F_TAXE.TA_Code)" ) tva_taux: Optional[float] = Field( - None, ge=0, le=100, description="Taux de TVA en % (F_TAXE.TA_Taux)" + None, description="Taux de TVA en % (F_TAXE.TA_Taux)" ) stat_01: Optional[str] = Field(None, description="Statistique 1 (AR_Stat01)") @@ -937,7 +938,7 @@ class ArticleResponse(BaseModel): "exclure": False } } - + class ArticleListResponse(BaseModel): """Réponse pour une liste d'articles"""