refactor(api): remove ge constraints from numeric fields in ArticleResponse

This commit is contained in:
Fanilo-Nantenaina 2025-12-27 06:20:24 +03:00
parent a4f5274663
commit 7f51992dda

41
api.py
View file

@ -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"""