Simplified pydantic models' name

This commit is contained in:
fanilo 2026-01-02 12:09:38 +01:00
parent 5e4231e115
commit 06c9fbb929
15 changed files with 133 additions and 133 deletions

View file

@ -39,7 +39,7 @@ settings = Settings()
def validate_settings(): def validate_settings():
"""Validation au démarrage""" """Validation au démarrage"""
if not settings.chemin_base or not settings.mot_de_passe: if not settings.chemin_base or not settings.mot_de_passe:
raise ValueError(" CHEMIN_BASE et MOT_DE_PASSE requis dans .env") raise ValueError(" CHEMIN_BASE ou MOT_DE_PASSE requis dans .env")
if not settings.sage_gateway_token: if not settings.sage_gateway_token:
raise ValueError(" SAGE_GATEWAY_TOKEN requis (doit être identique sur Linux)") raise ValueError(" SAGE_GATEWAY_TOKEN requis (doit être identique sur Linux)")
return True return True

108
main.py
View file

@ -8,36 +8,36 @@ import win32com.client
from config import settings, validate_settings from config import settings, validate_settings
from sage_connector import SageConnector from sage_connector import SageConnector
from schemas import ( from schemas import (
TiersListRequest, TiersList,
ContactCreateRequest, ContactCreate,
ContactDeleteRequest, ContactDelete,
ContactGetRequest, ContactGet,
ContactListRequest, ContactList,
ContactUpdateRequest, ContactUpdate,
ClientCreateRequest, ClientCreate,
ClientUpdateGatewayRequest, ClientUpdate,
FiltreRequest, FiltreRequest,
ChampLibreRequest, ChampLibre,
CodeRequest, CodeRequest,
DevisRequest, DevisRequest,
DocumentGetRequest, DocumentGet,
FournisseurCreateRequest, FournisseurCreate,
FournisseurUpdateGatewayRequest, FournisseurUpdate,
AvoirCreateGatewayRequest, AvoirCreate,
AvoirUpdateGatewayRequest, AvoirUpdate,
CommandeCreateRequest, CommandeCreate,
CommandeUpdateGatewayRequest, CommandeUpdate,
FactureCreateGatewayRequest, FactureCreate,
FactureUpdateGatewayRequest, FactureUpdate,
LivraisonCreateGatewayRequest, LivraisonCreate,
LivraisonUpdateGatewayRequest, LivraisonUpdate,
ArticleCreateRequest, ArticleCreate,
ArticleUpdateGatewayRequest, ArticleUpdate,
EntreeStockRequest, EntreeStock,
SortieStockRequest, SortieStock,
FamilleCreate, FamilleCreate,
PDFGenerationRequest, PDFGeneration,
DevisUpdateGatewayRequest, DevisUpdate,
) )
logging.basicConfig( logging.basicConfig(
@ -58,7 +58,7 @@ def verify_token(x_sage_token: str = Header(...)):
app = FastAPI( app = FastAPI(
title="Sage Gateway - Windows Server", title="Sage Gateway - Windows Server",
version="1.0.0", version="4.0.0",
description="Passerelle d'accès à Sage 100c pour VPS Linux", description="Passerelle d'accès à Sage 100c pour VPS Linux",
) )
@ -126,7 +126,7 @@ def clients_list(req: FiltreRequest):
@app.post("/sage/clients/update", dependencies=[Depends(verify_token)]) @app.post("/sage/clients/update", dependencies=[Depends(verify_token)])
def modifier_client_endpoint(req: ClientUpdateGatewayRequest): def modifier_client_endpoint(req: ClientUpdate):
try: try:
resultat = sage.modifier_client(req.code, req.client_data) resultat = sage.modifier_client(req.code, req.client_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -155,7 +155,7 @@ def client_get(req: CodeRequest):
@app.post("/sage/clients/create", dependencies=[Depends(verify_token)]) @app.post("/sage/clients/create", dependencies=[Depends(verify_token)])
def create_client_endpoint(req: ClientCreateRequest): def create_client_endpoint(req: ClientCreate):
"""Création d'un client dans Sage""" """Création d'un client dans Sage"""
try: try:
resultat = sage.creer_client(req.dict()) resultat = sage.creer_client(req.dict())
@ -288,7 +288,7 @@ def changer_statut_document(numero: str, type_doc: int, nouveau_statut: int):
@app.post("/sage/documents/get", dependencies=[Depends(verify_token)]) @app.post("/sage/documents/get", dependencies=[Depends(verify_token)])
def lire_document(req: DocumentGetRequest): def lire_document(req: DocumentGet):
"""Lecture d'un document (commande, facture, etc.)""" """Lecture d'un document (commande, facture, etc.)"""
try: try:
doc = sage.lire_document(req.numero, req.type_doc) doc = sage.lire_document(req.numero, req.type_doc)
@ -351,7 +351,7 @@ def transformer_document(
@app.post("/sage/documents/champ-libre", dependencies=[Depends(verify_token)]) @app.post("/sage/documents/champ-libre", dependencies=[Depends(verify_token)])
def maj_champ_libre(req: ChampLibreRequest): def maj_champ_libre(req: ChampLibre):
try: try:
success = sage.mettre_a_jour_champ_libre( success = sage.mettre_a_jour_champ_libre(
req.doc_id, req.type_doc, req.nom_champ, req.valeur req.doc_id, req.type_doc, req.nom_champ, req.valeur
@ -520,7 +520,7 @@ def fournisseurs_list(req: FiltreRequest):
@app.post("/sage/fournisseurs/create", dependencies=[Depends(verify_token)]) @app.post("/sage/fournisseurs/create", dependencies=[Depends(verify_token)])
def create_fournisseur_endpoint(req: FournisseurCreateRequest): def create_fournisseur_endpoint(req: FournisseurCreate):
try: try:
resultat = sage.creer_fournisseur(req.dict()) resultat = sage.creer_fournisseur(req.dict())
@ -538,7 +538,7 @@ def create_fournisseur_endpoint(req: FournisseurCreateRequest):
@app.post("/sage/fournisseurs/update", dependencies=[Depends(verify_token)]) @app.post("/sage/fournisseurs/update", dependencies=[Depends(verify_token)])
def modifier_fournisseur_endpoint(req: FournisseurUpdateGatewayRequest): def modifier_fournisseur_endpoint(req: FournisseurUpdate):
try: try:
resultat = sage.modifier_fournisseur(req.code, req.fournisseur_data) resultat = sage.modifier_fournisseur(req.code, req.fournisseur_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -665,7 +665,7 @@ def livraison_get(req: CodeRequest):
@app.post("/sage/devis/update", dependencies=[Depends(verify_token)]) @app.post("/sage/devis/update", dependencies=[Depends(verify_token)])
def modifier_devis_endpoint(req: DevisUpdateGatewayRequest): def modifier_devis_endpoint(req: DevisUpdate):
try: try:
resultat = sage.modifier_devis(req.numero, req.devis_data) resultat = sage.modifier_devis(req.numero, req.devis_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -679,7 +679,7 @@ def modifier_devis_endpoint(req: DevisUpdateGatewayRequest):
@app.post("/sage/commandes/create", dependencies=[Depends(verify_token)]) @app.post("/sage/commandes/create", dependencies=[Depends(verify_token)])
def creer_commande_endpoint(req: CommandeCreateRequest): def creer_commande_endpoint(req: CommandeCreate):
try: try:
commande_data = { commande_data = {
"client": {"code": req.client_id, "intitule": ""}, "client": {"code": req.client_id, "intitule": ""},
@ -701,7 +701,7 @@ def creer_commande_endpoint(req: CommandeCreateRequest):
@app.post("/sage/commandes/update", dependencies=[Depends(verify_token)]) @app.post("/sage/commandes/update", dependencies=[Depends(verify_token)])
def modifier_commande_endpoint(req: CommandeUpdateGatewayRequest): def modifier_commande_endpoint(req: CommandeUpdate):
try: try:
resultat = sage.modifier_commande(req.numero, req.commande_data) resultat = sage.modifier_commande(req.numero, req.commande_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -715,7 +715,7 @@ def modifier_commande_endpoint(req: CommandeUpdateGatewayRequest):
@app.post("/sage/livraisons/create", dependencies=[Depends(verify_token)]) @app.post("/sage/livraisons/create", dependencies=[Depends(verify_token)])
def creer_livraison_endpoint(req: LivraisonCreateGatewayRequest): def creer_livraison_endpoint(req: LivraisonCreate):
try: try:
client = sage.lire_client(req.client_id) client = sage.lire_client(req.client_id)
if not client: if not client:
@ -741,7 +741,7 @@ def creer_livraison_endpoint(req: LivraisonCreateGatewayRequest):
@app.post("/sage/livraisons/update", dependencies=[Depends(verify_token)]) @app.post("/sage/livraisons/update", dependencies=[Depends(verify_token)])
def modifier_livraison_endpoint(req: LivraisonUpdateGatewayRequest): def modifier_livraison_endpoint(req: LivraisonUpdate):
try: try:
resultat = sage.modifier_livraison(req.numero, req.livraison_data) resultat = sage.modifier_livraison(req.numero, req.livraison_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -755,7 +755,7 @@ def modifier_livraison_endpoint(req: LivraisonUpdateGatewayRequest):
@app.post("/sage/avoirs/create", dependencies=[Depends(verify_token)]) @app.post("/sage/avoirs/create", dependencies=[Depends(verify_token)])
def creer_avoir_endpoint(req: AvoirCreateGatewayRequest): def creer_avoir_endpoint(req: AvoirCreate):
try: try:
client = sage.lire_client(req.client_id) client = sage.lire_client(req.client_id)
if not client: if not client:
@ -781,7 +781,7 @@ def creer_avoir_endpoint(req: AvoirCreateGatewayRequest):
@app.post("/sage/avoirs/update", dependencies=[Depends(verify_token)]) @app.post("/sage/avoirs/update", dependencies=[Depends(verify_token)])
def modifier_avoir_endpoint(req: AvoirUpdateGatewayRequest): def modifier_avoir_endpoint(req: AvoirUpdate):
""" """
Modification d'un avoir dans Sage Modification d'un avoir dans Sage
""" """
@ -798,7 +798,7 @@ def modifier_avoir_endpoint(req: AvoirUpdateGatewayRequest):
@app.post("/sage/factures/create", dependencies=[Depends(verify_token)]) @app.post("/sage/factures/create", dependencies=[Depends(verify_token)])
def creer_facture_endpoint(req: FactureCreateGatewayRequest): def creer_facture_endpoint(req: FactureCreate):
try: try:
client = sage.lire_client(req.client_id) client = sage.lire_client(req.client_id)
if not client: if not client:
@ -824,7 +824,7 @@ def creer_facture_endpoint(req: FactureCreateGatewayRequest):
@app.post("/sage/factures/update", dependencies=[Depends(verify_token)]) @app.post("/sage/factures/update", dependencies=[Depends(verify_token)])
def modifier_facture_endpoint(req: FactureUpdateGatewayRequest): def modifier_facture_endpoint(req: FactureUpdate):
try: try:
resultat = sage.modifier_facture(req.numero, req.facture_data) resultat = sage.modifier_facture(req.numero, req.facture_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -838,7 +838,7 @@ def modifier_facture_endpoint(req: FactureUpdateGatewayRequest):
@app.post("/sage/articles/create", dependencies=[Depends(verify_token)]) @app.post("/sage/articles/create", dependencies=[Depends(verify_token)])
def create_article_endpoint(req: ArticleCreateRequest): def create_article_endpoint(req: ArticleCreate):
try: try:
resultat = sage.creer_article(req.dict()) resultat = sage.creer_article(req.dict())
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -853,7 +853,7 @@ def create_article_endpoint(req: ArticleCreateRequest):
@app.post("/sage/articles/update", dependencies=[Depends(verify_token)]) @app.post("/sage/articles/update", dependencies=[Depends(verify_token)])
def modifier_article_endpoint(req: ArticleUpdateGatewayRequest): def modifier_article_endpoint(req: ArticleUpdate):
try: try:
resultat = sage.modifier_article(req.reference, req.article_data) resultat = sage.modifier_article(req.reference, req.article_data)
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
@ -975,7 +975,7 @@ async def stats_familles():
@app.post("/sage/documents/generate-pdf", dependencies=[Depends(verify_token)]) @app.post("/sage/documents/generate-pdf", dependencies=[Depends(verify_token)])
def generer_pdf_document(req: PDFGenerationRequest): def generer_pdf_document(req: PDFGeneration):
try: try:
logger.info(f" Génération PDF: {req.doc_id} (type={req.type_doc})") logger.info(f" Génération PDF: {req.doc_id} (type={req.type_doc})")
@ -1152,7 +1152,7 @@ def lister_depots():
@app.post("/sage/stock/entree", dependencies=[Depends(verify_token)]) @app.post("/sage/stock/entree", dependencies=[Depends(verify_token)])
def creer_entree_stock(req: EntreeStockRequest): def creer_entree_stock(req: EntreeStock):
try: try:
logger.info( logger.info(
f"📦 [ENTREE STOCK] Création bon d'entrée : {len(req.lignes)} ligne(s)" f"📦 [ENTREE STOCK] Création bon d'entrée : {len(req.lignes)} ligne(s)"
@ -1182,7 +1182,7 @@ def creer_entree_stock(req: EntreeStockRequest):
@app.post("/sage/stock/sortie", dependencies=[Depends(verify_token)]) @app.post("/sage/stock/sortie", dependencies=[Depends(verify_token)])
def creer_sortie_stock(req: SortieStockRequest): def creer_sortie_stock(req: SortieStock):
try: try:
logger.info( logger.info(
f"📤 [SORTIE STOCK] Création bon de sortie : {len(req.lignes)} ligne(s)" f"📤 [SORTIE STOCK] Création bon de sortie : {len(req.lignes)} ligne(s)"
@ -1229,7 +1229,7 @@ def lire_mouvement_stock(numero: str):
@app.post("/sage/contacts/create", dependencies=[Depends(verify_token)]) @app.post("/sage/contacts/create", dependencies=[Depends(verify_token)])
def contacts_create(req: ContactCreateRequest): def contacts_create(req: ContactCreate):
"""Crée un nouveau contact""" """Crée un nouveau contact"""
try: try:
contact = sage.creer_contact(req.dict()) contact = sage.creer_contact(req.dict())
@ -1243,7 +1243,7 @@ def contacts_create(req: ContactCreateRequest):
@app.post("/sage/contacts/list", dependencies=[Depends(verify_token)]) @app.post("/sage/contacts/list", dependencies=[Depends(verify_token)])
def contacts_list(req: ContactListRequest): def contacts_list(req: ContactList):
"""Liste les contacts d'un client""" """Liste les contacts d'un client"""
try: try:
contacts = sage.lister_contacts(req.numero) contacts = sage.lister_contacts(req.numero)
@ -1254,7 +1254,7 @@ def contacts_list(req: ContactListRequest):
@app.post("/sage/contacts/get", dependencies=[Depends(verify_token)]) @app.post("/sage/contacts/get", dependencies=[Depends(verify_token)])
def contacts_get(req: ContactGetRequest): def contacts_get(req: ContactGet):
"""Récupère un contact spécifique""" """Récupère un contact spécifique"""
try: try:
contact = sage.obtenir_contact(req.numero, req.contact_numero) contact = sage.obtenir_contact(req.numero, req.contact_numero)
@ -1269,7 +1269,7 @@ def contacts_get(req: ContactGetRequest):
@app.post("/sage/contacts/update", dependencies=[Depends(verify_token)]) @app.post("/sage/contacts/update", dependencies=[Depends(verify_token)])
def contacts_update(req: ContactUpdateRequest): def contacts_update(req: ContactUpdate):
"""Modifie un contact existant""" """Modifie un contact existant"""
try: try:
contact = sage.modifier_contact(req.numero, req.contact_numero, req.updates) contact = sage.modifier_contact(req.numero, req.contact_numero, req.updates)
@ -1283,7 +1283,7 @@ def contacts_update(req: ContactUpdateRequest):
@app.post("/sage/contacts/delete", dependencies=[Depends(verify_token)]) @app.post("/sage/contacts/delete", dependencies=[Depends(verify_token)])
def contacts_delete(req: ContactDeleteRequest): def contacts_delete(req: ContactDelete):
"""Supprime un contact""" """Supprime un contact"""
try: try:
result = sage.supprimer_contact(req.numero, req.contact_numero) result = sage.supprimer_contact(req.numero, req.contact_numero)
@ -1294,7 +1294,7 @@ def contacts_delete(req: ContactDeleteRequest):
@app.post("/sage/contacts/set-default", dependencies=[Depends(verify_token)]) @app.post("/sage/contacts/set-default", dependencies=[Depends(verify_token)])
def contacts_set_default(req: ContactGetRequest): def contacts_set_default(req: ContactGet):
"""Définit un contact comme contact par défaut""" """Définit un contact comme contact par défaut"""
try: try:
result = sage.definir_contact_defaut(req.numero, req.contact_numero) result = sage.definir_contact_defaut(req.numero, req.contact_numero)
@ -1305,7 +1305,7 @@ def contacts_set_default(req: ContactGetRequest):
@app.post("/sage/tiers/list", dependencies=[Depends(verify_token)]) @app.post("/sage/tiers/list", dependencies=[Depends(verify_token)])
def tiers_list(req: TiersListRequest): def tiers_list(req: TiersList):
"""Liste des tiers avec filtres optionnels""" """Liste des tiers avec filtres optionnels"""
try: try:
tiers = sage.lister_tous_tiers(type_tiers=req.type_tiers, filtre=req.filtre) tiers = sage.lister_tous_tiers(type_tiers=req.type_tiers, filtre=req.filtre)

View file

@ -1,22 +1,22 @@
from schemas.tiers.tiers import ( from schemas.tiers.tiers import (
TiersListRequest, TiersList,
TypeTiers TypeTiers
) )
from schemas.tiers.contact import ( from schemas.tiers.contact import (
ContactCreateRequest, ContactCreate,
ContactDeleteRequest, ContactDelete,
ContactGetRequest, ContactGet,
ContactListRequest, ContactList,
ContactUpdateRequest, ContactUpdate,
) )
from schemas.tiers.clients import ( from schemas.tiers.clients import (
ClientCreateRequest, ClientCreate,
ClientUpdateGatewayRequest ClientUpdate
) )
from schemas.others.general_schema import ( from schemas.others.general_schema import (
FiltreRequest, FiltreRequest,
ChampLibreRequest, ChampLibre,
CodeRequest, CodeRequest,
StatutRequest StatutRequest
) )
@ -24,84 +24,84 @@ from schemas.others.general_schema import (
from schemas.documents.documents import ( from schemas.documents.documents import (
TransformationRequest, TransformationRequest,
TypeDocument, TypeDocument,
DocumentGetRequest, DocumentGet,
PDFGenerationRequest PDFGeneration
) )
from schemas.documents.devis import ( from schemas.documents.devis import (
DevisRequest, DevisRequest,
DevisUpdateGatewayRequest DevisUpdate
) )
from schemas.tiers.fournisseurs import ( from schemas.tiers.fournisseurs import (
FournisseurCreateRequest, FournisseurCreate,
FournisseurUpdateGatewayRequest FournisseurUpdate
) )
from schemas.documents.avoirs import ( from schemas.documents.avoirs import (
AvoirCreateGatewayRequest, AvoirCreate,
AvoirUpdateGatewayRequest AvoirUpdate
) )
from schemas.documents.commandes import ( from schemas.documents.commandes import (
CommandeCreateRequest, CommandeCreate,
CommandeUpdateGatewayRequest CommandeUpdate
) )
from schemas.documents.factures import ( from schemas.documents.factures import (
FactureCreateGatewayRequest, FactureCreate,
FactureUpdateGatewayRequest FactureUpdate
) )
from schemas.documents.livraisons import ( from schemas.documents.livraisons import (
LivraisonCreateGatewayRequest, LivraisonCreate,
LivraisonUpdateGatewayRequest LivraisonUpdate
) )
from schemas.articles.articles import ( from schemas.articles.articles import (
ArticleCreateRequest, ArticleCreate,
ArticleUpdateGatewayRequest, ArticleUpdate,
MouvementStockLigneRequest, MouvementStockLigneRequest,
EntreeStockRequest, EntreeStock,
SortieStockRequest SortieStock
) )
from schemas.articles.famille_d_articles import FamilleCreate from schemas.articles.famille_d_articles import FamilleCreate
__all__ = [ __all__ = [
"TiersListRequest", "TiersList",
"ContactCreateRequest", "ContactCreate",
"ContactDeleteRequest", "ContactDelete",
"ContactGetRequest", "ContactGet",
"ContactListRequest", "ContactList",
"ContactUpdateRequest", "ContactUpdate",
"ClientCreateRequest", "ClientCreate",
"ClientUpdateGatewayRequest", "ClientUpdate",
"FiltreRequest", "FiltreRequest",
"ChampLibreRequest", "ChampLibre",
"CodeRequest", "CodeRequest",
"TransformationRequest", "TransformationRequest",
"TypeDocument", "TypeDocument",
"DevisRequest", "DevisRequest",
"DocumentGetRequest", "DocumentGet",
"StatutRequest", "StatutRequest",
"TypeTiers", "TypeTiers",
"DevisUpdateGatewayRequest", "DevisUpdate",
"FournisseurCreateRequest", "FournisseurCreate",
"FournisseurUpdateGatewayRequest", "FournisseurUpdate",
"AvoirCreateGatewayRequest", "AvoirCreate",
"AvoirUpdateGatewayRequest", "AvoirUpdate",
"CommandeCreateRequest", "CommandeCreate",
"CommandeUpdateGatewayRequest", "CommandeUpdate",
"FactureCreateGatewayRequest", "FactureCreate",
"FactureUpdateGatewayRequest", "FactureUpdate",
"LivraisonCreateGatewayRequest", "LivraisonCreate",
"LivraisonUpdateGatewayRequest", "LivraisonUpdate",
"ArticleCreateRequest", "ArticleCreate",
"ArticleUpdateGatewayRequest", "ArticleUpdate",
"MouvementStockLigneRequest", "MouvementStockLigneRequest",
"EntreeStockRequest", "EntreeStock",
"SortieStockRequest", "SortieStock",
"FamilleCreate", "FamilleCreate",
"PDFGenerationRequest" "PDFGeneration"
] ]

View file

@ -4,7 +4,7 @@ from typing import Optional, List, Dict
from enum import Enum, IntEnum from enum import Enum, IntEnum
from datetime import datetime, date from datetime import datetime, date
class ArticleCreateRequest(BaseModel): class ArticleCreate(BaseModel):
reference: str = Field(..., description="Référence article (max 18 car)") reference: str = Field(..., description="Référence article (max 18 car)")
designation: str = Field(..., description="Désignation (max 69 car)") designation: str = Field(..., description="Désignation (max 69 car)")
famille: Optional[str] = Field(None, description="Code famille") famille: Optional[str] = Field(None, description="Code famille")
@ -18,7 +18,7 @@ class ArticleCreateRequest(BaseModel):
description: Optional[str] = Field(None, description="Description/Commentaire") description: Optional[str] = Field(None, description="Description/Commentaire")
class ArticleUpdateGatewayRequest(BaseModel): class ArticleUpdate(BaseModel):
"""Modèle pour modification article côté gateway""" """Modèle pour modification article côté gateway"""
reference: str reference: str
@ -79,7 +79,7 @@ class MouvementStockLigneRequest(BaseModel):
return v return v
class EntreeStockRequest(BaseModel): class EntreeStock(BaseModel):
"""Création d'un bon d'entrée en stock""" """Création d'un bon d'entrée en stock"""
date_entree: Optional[date] = Field( date_entree: Optional[date] = Field(
@ -95,7 +95,7 @@ class EntreeStockRequest(BaseModel):
commentaire: Optional[str] = Field(None, description="Commentaire général") commentaire: Optional[str] = Field(None, description="Commentaire général")
class SortieStockRequest(BaseModel): class SortieStock(BaseModel):
"""Création d'un bon de sortie de stock""" """Création d'un bon de sortie de stock"""
date_sortie: Optional[date] = Field( date_sortie: Optional[date] = Field(

View file

@ -3,7 +3,7 @@ from typing import Optional, List, Dict
from datetime import date from datetime import date
class AvoirCreateGatewayRequest(BaseModel): class AvoirCreate(BaseModel):
"""Création d'un avoir côté gateway""" """Création d'un avoir côté gateway"""
client_id: str client_id: str
@ -13,7 +13,7 @@ class AvoirCreateGatewayRequest(BaseModel):
reference: Optional[str] = None reference: Optional[str] = None
class AvoirUpdateGatewayRequest(BaseModel): class AvoirUpdate(BaseModel):
"""Modèle pour modification avoir côté gateway""" """Modèle pour modification avoir côté gateway"""
numero: str numero: str

View file

@ -3,7 +3,7 @@ from typing import Optional, List, Dict
from datetime import date from datetime import date
class CommandeCreateRequest(BaseModel): class CommandeCreate(BaseModel):
"""Création d'une commande""" """Création d'une commande"""
client_id: str client_id: str
@ -13,7 +13,7 @@ class CommandeCreateRequest(BaseModel):
lignes: List[Dict] lignes: List[Dict]
class CommandeUpdateGatewayRequest(BaseModel): class CommandeUpdate(BaseModel):
"""Modèle pour modification commande côté gateway""" """Modèle pour modification commande côté gateway"""
numero: str numero: str

View file

@ -11,7 +11,7 @@ class DevisRequest(BaseModel):
lignes: List[Dict] lignes: List[Dict]
class DevisUpdateGatewayRequest(BaseModel): class DevisUpdate(BaseModel):
"""Modèle pour modification devis côté gateway""" """Modèle pour modification devis côté gateway"""
numero: str numero: str

View file

@ -11,7 +11,7 @@ class TypeDocument(int, Enum):
FACTURE = 5 FACTURE = 5
class DocumentGetRequest(BaseModel): class DocumentGet(BaseModel):
numero: str numero: str
type_doc: int type_doc: int
@ -22,7 +22,7 @@ class TransformationRequest(BaseModel):
type_cible: int type_cible: int
class PDFGenerationRequest(BaseModel): class PDFGeneration(BaseModel):
"""Modèle pour génération PDF""" """Modèle pour génération PDF"""
doc_id: str = Field(..., description="Numéro du document") doc_id: str = Field(..., description="Numéro du document")

View file

@ -3,7 +3,7 @@ from typing import Optional, List, Dict
from datetime import date from datetime import date
class FactureCreateGatewayRequest(BaseModel): class FactureCreate(BaseModel):
"""Création d'une facture côté gateway""" """Création d'une facture côté gateway"""
client_id: str client_id: str
@ -13,7 +13,7 @@ class FactureCreateGatewayRequest(BaseModel):
reference: Optional[str] = None reference: Optional[str] = None
class FactureUpdateGatewayRequest(BaseModel): class FactureUpdate(BaseModel):
"""Modèle pour modification facture côté gateway""" """Modèle pour modification facture côté gateway"""
numero: str numero: str

View file

@ -3,7 +3,7 @@ from typing import Optional, List, Dict
from datetime import date from datetime import date
class LivraisonCreateGatewayRequest(BaseModel): class LivraisonCreate(BaseModel):
"""Création d'une livraison côté gateway""" """Création d'une livraison côté gateway"""
client_id: str client_id: str
@ -13,7 +13,7 @@ class LivraisonCreateGatewayRequest(BaseModel):
reference: Optional[str] = None reference: Optional[str] = None
class LivraisonUpdateGatewayRequest(BaseModel): class LivraisonUpdate(BaseModel):
"""Modèle pour modification livraison côté gateway""" """Modèle pour modification livraison côté gateway"""
numero: str numero: str

View file

@ -10,7 +10,7 @@ class CodeRequest(BaseModel):
code: str code: str
class ChampLibreRequest(BaseModel): class ChampLibre(BaseModel):
doc_id: str doc_id: str
type_doc: int type_doc: int
nom_champ: str nom_champ: str

View file

@ -2,7 +2,7 @@ from pydantic import BaseModel, Field, field_validator
from typing import Optional, Dict from typing import Optional, Dict
class ClientCreateRequest(BaseModel): class ClientCreate(BaseModel):
intitule: str = Field( intitule: str = Field(
..., max_length=69, description="Nom du client (CT_Intitule) - OBLIGATOIRE" ..., max_length=69, description="Nom du client (CT_Intitule) - OBLIGATOIRE"
) )
@ -404,7 +404,7 @@ class ClientCreateRequest(BaseModel):
} }
class ClientUpdateGatewayRequest(BaseModel): class ClientUpdate(BaseModel):
"""Modèle pour modification client côté gateway""" """Modèle pour modification client côté gateway"""
code: str code: str

View file

@ -2,7 +2,7 @@ from pydantic import BaseModel
from typing import Optional, Dict from typing import Optional, Dict
class ContactCreateRequest(BaseModel): class ContactCreate(BaseModel):
"""Requête de création de contact""" """Requête de création de contact"""
numero: str numero: str
@ -20,20 +20,20 @@ class ContactCreateRequest(BaseModel):
skype: Optional[str] = None skype: Optional[str] = None
class ContactListRequest(BaseModel): class ContactList(BaseModel):
"""Requête de liste des contacts""" """Requête de liste des contacts"""
numero: str numero: str
class ContactGetRequest(BaseModel): class ContactGet(BaseModel):
"""Requête de récupération d'un contact""" """Requête de récupération d'un contact"""
numero: str numero: str
contact_numero: int contact_numero: int
class ContactUpdateRequest(BaseModel): class ContactUpdate(BaseModel):
"""Requête de modification d'un contact""" """Requête de modification d'un contact"""
numero: str numero: str
@ -41,7 +41,7 @@ class ContactUpdateRequest(BaseModel):
updates: Dict updates: Dict
class ContactDeleteRequest(BaseModel): class ContactDelete(BaseModel):
"""Requête de suppression d'un contact""" """Requête de suppression d'un contact"""
numero: str numero: str

View file

@ -2,7 +2,7 @@ from pydantic import BaseModel, Field
from typing import Optional, Dict from typing import Optional, Dict
class FournisseurCreateRequest(BaseModel): class FournisseurCreate(BaseModel):
intitule: str = Field(..., description="Raison sociale du fournisseur") intitule: str = Field(..., description="Raison sociale du fournisseur")
compte_collectif: str = Field("401000", description="Compte général rattaché") compte_collectif: str = Field("401000", description="Compte général rattaché")
num: Optional[str] = Field(None, description="Code fournisseur (auto si vide)") num: Optional[str] = Field(None, description="Code fournisseur (auto si vide)")
@ -16,7 +16,7 @@ class FournisseurCreateRequest(BaseModel):
tva_intra: Optional[str] = None tva_intra: Optional[str] = None
class FournisseurUpdateGatewayRequest(BaseModel): class FournisseurUpdate(BaseModel):
"""Modèle pour modification fournisseur côté gateway""" """Modèle pour modification fournisseur côté gateway"""
code: str code: str

View file

@ -3,7 +3,7 @@ from typing import Optional
from enum import IntEnum from enum import IntEnum
class TiersListRequest(BaseModel): class TiersList(BaseModel):
"""Requête de listage des tiers""" """Requête de listage des tiers"""
type_tiers: Optional[str] = Field( type_tiers: Optional[str] = Field(