diff --git a/config.py b/config.py index c2678fd..c1f98c7 100644 --- a/config.py +++ b/config.py @@ -39,7 +39,7 @@ settings = Settings() def validate_settings(): """Validation au démarrage""" 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: raise ValueError(" SAGE_GATEWAY_TOKEN requis (doit être identique sur Linux)") return True diff --git a/main.py b/main.py index e817cfb..f8cb908 100644 --- a/main.py +++ b/main.py @@ -8,36 +8,36 @@ import win32com.client from config import settings, validate_settings from sage_connector import SageConnector from schemas import ( - TiersListRequest, - ContactCreateRequest, - ContactDeleteRequest, - ContactGetRequest, - ContactListRequest, - ContactUpdateRequest, - ClientCreateRequest, - ClientUpdateGatewayRequest, + TiersList, + ContactCreate, + ContactDelete, + ContactGet, + ContactList, + ContactUpdate, + ClientCreate, + ClientUpdate, FiltreRequest, - ChampLibreRequest, + ChampLibre, CodeRequest, DevisRequest, - DocumentGetRequest, - FournisseurCreateRequest, - FournisseurUpdateGatewayRequest, - AvoirCreateGatewayRequest, - AvoirUpdateGatewayRequest, - CommandeCreateRequest, - CommandeUpdateGatewayRequest, - FactureCreateGatewayRequest, - FactureUpdateGatewayRequest, - LivraisonCreateGatewayRequest, - LivraisonUpdateGatewayRequest, - ArticleCreateRequest, - ArticleUpdateGatewayRequest, - EntreeStockRequest, - SortieStockRequest, + DocumentGet, + FournisseurCreate, + FournisseurUpdate, + AvoirCreate, + AvoirUpdate, + CommandeCreate, + CommandeUpdate, + FactureCreate, + FactureUpdate, + LivraisonCreate, + LivraisonUpdate, + ArticleCreate, + ArticleUpdate, + EntreeStock, + SortieStock, FamilleCreate, - PDFGenerationRequest, - DevisUpdateGatewayRequest, + PDFGeneration, + DevisUpdate, ) logging.basicConfig( @@ -58,7 +58,7 @@ def verify_token(x_sage_token: str = Header(...)): app = FastAPI( title="Sage Gateway - Windows Server", - version="1.0.0", + version="4.0.0", 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)]) -def modifier_client_endpoint(req: ClientUpdateGatewayRequest): +def modifier_client_endpoint(req: ClientUpdate): try: resultat = sage.modifier_client(req.code, req.client_data) return {"success": True, "data": resultat} @@ -155,7 +155,7 @@ def client_get(req: CodeRequest): @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""" try: 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)]) -def lire_document(req: DocumentGetRequest): +def lire_document(req: DocumentGet): """Lecture d'un document (commande, facture, etc.)""" try: 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)]) -def maj_champ_libre(req: ChampLibreRequest): +def maj_champ_libre(req: ChampLibre): try: success = sage.mettre_a_jour_champ_libre( 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)]) -def create_fournisseur_endpoint(req: FournisseurCreateRequest): +def create_fournisseur_endpoint(req: FournisseurCreate): try: 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)]) -def modifier_fournisseur_endpoint(req: FournisseurUpdateGatewayRequest): +def modifier_fournisseur_endpoint(req: FournisseurUpdate): try: resultat = sage.modifier_fournisseur(req.code, req.fournisseur_data) return {"success": True, "data": resultat} @@ -665,7 +665,7 @@ def livraison_get(req: CodeRequest): @app.post("/sage/devis/update", dependencies=[Depends(verify_token)]) -def modifier_devis_endpoint(req: DevisUpdateGatewayRequest): +def modifier_devis_endpoint(req: DevisUpdate): try: resultat = sage.modifier_devis(req.numero, req.devis_data) return {"success": True, "data": resultat} @@ -679,7 +679,7 @@ def modifier_devis_endpoint(req: DevisUpdateGatewayRequest): @app.post("/sage/commandes/create", dependencies=[Depends(verify_token)]) -def creer_commande_endpoint(req: CommandeCreateRequest): +def creer_commande_endpoint(req: CommandeCreate): try: commande_data = { "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)]) -def modifier_commande_endpoint(req: CommandeUpdateGatewayRequest): +def modifier_commande_endpoint(req: CommandeUpdate): try: resultat = sage.modifier_commande(req.numero, req.commande_data) return {"success": True, "data": resultat} @@ -715,7 +715,7 @@ def modifier_commande_endpoint(req: CommandeUpdateGatewayRequest): @app.post("/sage/livraisons/create", dependencies=[Depends(verify_token)]) -def creer_livraison_endpoint(req: LivraisonCreateGatewayRequest): +def creer_livraison_endpoint(req: LivraisonCreate): try: client = sage.lire_client(req.client_id) if not client: @@ -741,7 +741,7 @@ def creer_livraison_endpoint(req: LivraisonCreateGatewayRequest): @app.post("/sage/livraisons/update", dependencies=[Depends(verify_token)]) -def modifier_livraison_endpoint(req: LivraisonUpdateGatewayRequest): +def modifier_livraison_endpoint(req: LivraisonUpdate): try: resultat = sage.modifier_livraison(req.numero, req.livraison_data) return {"success": True, "data": resultat} @@ -755,7 +755,7 @@ def modifier_livraison_endpoint(req: LivraisonUpdateGatewayRequest): @app.post("/sage/avoirs/create", dependencies=[Depends(verify_token)]) -def creer_avoir_endpoint(req: AvoirCreateGatewayRequest): +def creer_avoir_endpoint(req: AvoirCreate): try: client = sage.lire_client(req.client_id) if not client: @@ -781,7 +781,7 @@ def creer_avoir_endpoint(req: AvoirCreateGatewayRequest): @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 """ @@ -798,7 +798,7 @@ def modifier_avoir_endpoint(req: AvoirUpdateGatewayRequest): @app.post("/sage/factures/create", dependencies=[Depends(verify_token)]) -def creer_facture_endpoint(req: FactureCreateGatewayRequest): +def creer_facture_endpoint(req: FactureCreate): try: client = sage.lire_client(req.client_id) if not client: @@ -824,7 +824,7 @@ def creer_facture_endpoint(req: FactureCreateGatewayRequest): @app.post("/sage/factures/update", dependencies=[Depends(verify_token)]) -def modifier_facture_endpoint(req: FactureUpdateGatewayRequest): +def modifier_facture_endpoint(req: FactureUpdate): try: resultat = sage.modifier_facture(req.numero, req.facture_data) return {"success": True, "data": resultat} @@ -838,7 +838,7 @@ def modifier_facture_endpoint(req: FactureUpdateGatewayRequest): @app.post("/sage/articles/create", dependencies=[Depends(verify_token)]) -def create_article_endpoint(req: ArticleCreateRequest): +def create_article_endpoint(req: ArticleCreate): try: resultat = sage.creer_article(req.dict()) return {"success": True, "data": resultat} @@ -853,7 +853,7 @@ def create_article_endpoint(req: ArticleCreateRequest): @app.post("/sage/articles/update", dependencies=[Depends(verify_token)]) -def modifier_article_endpoint(req: ArticleUpdateGatewayRequest): +def modifier_article_endpoint(req: ArticleUpdate): try: resultat = sage.modifier_article(req.reference, req.article_data) return {"success": True, "data": resultat} @@ -975,7 +975,7 @@ async def stats_familles(): @app.post("/sage/documents/generate-pdf", dependencies=[Depends(verify_token)]) -def generer_pdf_document(req: PDFGenerationRequest): +def generer_pdf_document(req: PDFGeneration): try: 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)]) -def creer_entree_stock(req: EntreeStockRequest): +def creer_entree_stock(req: EntreeStock): try: logger.info( 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)]) -def creer_sortie_stock(req: SortieStockRequest): +def creer_sortie_stock(req: SortieStock): try: logger.info( 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)]) -def contacts_create(req: ContactCreateRequest): +def contacts_create(req: ContactCreate): """Crée un nouveau contact""" try: contact = sage.creer_contact(req.dict()) @@ -1243,7 +1243,7 @@ def contacts_create(req: ContactCreateRequest): @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""" try: contacts = sage.lister_contacts(req.numero) @@ -1254,7 +1254,7 @@ def contacts_list(req: ContactListRequest): @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""" try: 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)]) -def contacts_update(req: ContactUpdateRequest): +def contacts_update(req: ContactUpdate): """Modifie un contact existant""" try: 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)]) -def contacts_delete(req: ContactDeleteRequest): +def contacts_delete(req: ContactDelete): """Supprime un contact""" try: 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)]) -def contacts_set_default(req: ContactGetRequest): +def contacts_set_default(req: ContactGet): """Définit un contact comme contact par défaut""" try: 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)]) -def tiers_list(req: TiersListRequest): +def tiers_list(req: TiersList): """Liste des tiers avec filtres optionnels""" try: tiers = sage.lister_tous_tiers(type_tiers=req.type_tiers, filtre=req.filtre) diff --git a/schemas/__init__.py b/schemas/__init__.py index 4300324..f1f5c55 100644 --- a/schemas/__init__.py +++ b/schemas/__init__.py @@ -1,22 +1,22 @@ from schemas.tiers.tiers import ( - TiersListRequest, + TiersList, TypeTiers ) from schemas.tiers.contact import ( - ContactCreateRequest, - ContactDeleteRequest, - ContactGetRequest, - ContactListRequest, - ContactUpdateRequest, + ContactCreate, + ContactDelete, + ContactGet, + ContactList, + ContactUpdate, ) from schemas.tiers.clients import ( - ClientCreateRequest, - ClientUpdateGatewayRequest + ClientCreate, + ClientUpdate ) from schemas.others.general_schema import ( FiltreRequest, - ChampLibreRequest, + ChampLibre, CodeRequest, StatutRequest ) @@ -24,84 +24,84 @@ from schemas.others.general_schema import ( from schemas.documents.documents import ( TransformationRequest, TypeDocument, - DocumentGetRequest, - PDFGenerationRequest + DocumentGet, + PDFGeneration ) from schemas.documents.devis import ( DevisRequest, - DevisUpdateGatewayRequest + DevisUpdate ) from schemas.tiers.fournisseurs import ( - FournisseurCreateRequest, - FournisseurUpdateGatewayRequest + FournisseurCreate, + FournisseurUpdate ) from schemas.documents.avoirs import ( - AvoirCreateGatewayRequest, - AvoirUpdateGatewayRequest + AvoirCreate, + AvoirUpdate ) from schemas.documents.commandes import ( - CommandeCreateRequest, - CommandeUpdateGatewayRequest + CommandeCreate, + CommandeUpdate ) from schemas.documents.factures import ( - FactureCreateGatewayRequest, - FactureUpdateGatewayRequest + FactureCreate, + FactureUpdate ) from schemas.documents.livraisons import ( - LivraisonCreateGatewayRequest, - LivraisonUpdateGatewayRequest + LivraisonCreate, + LivraisonUpdate ) from schemas.articles.articles import ( - ArticleCreateRequest, - ArticleUpdateGatewayRequest, + ArticleCreate, + ArticleUpdate, MouvementStockLigneRequest, - EntreeStockRequest, - SortieStockRequest + EntreeStock, + SortieStock ) from schemas.articles.famille_d_articles import FamilleCreate __all__ = [ - "TiersListRequest", - "ContactCreateRequest", - "ContactDeleteRequest", - "ContactGetRequest", - "ContactListRequest", - "ContactUpdateRequest", - "ClientCreateRequest", - "ClientUpdateGatewayRequest", + "TiersList", + "ContactCreate", + "ContactDelete", + "ContactGet", + "ContactList", + "ContactUpdate", + "ClientCreate", + "ClientUpdate", "FiltreRequest", - "ChampLibreRequest", + "ChampLibre", "CodeRequest", "TransformationRequest", "TypeDocument", "DevisRequest", - "DocumentGetRequest", + "DocumentGet", "StatutRequest", "TypeTiers", - "DevisUpdateGatewayRequest", - "FournisseurCreateRequest", - "FournisseurUpdateGatewayRequest", - "AvoirCreateGatewayRequest", - "AvoirUpdateGatewayRequest", - "CommandeCreateRequest", - "CommandeUpdateGatewayRequest", - "FactureCreateGatewayRequest", - "FactureUpdateGatewayRequest", - "LivraisonCreateGatewayRequest", - "LivraisonUpdateGatewayRequest", - "ArticleCreateRequest", - "ArticleUpdateGatewayRequest", + "DevisUpdate", + "FournisseurCreate", + "FournisseurUpdate", + "AvoirCreate", + "AvoirUpdate", + "CommandeCreate", + "CommandeUpdate", + "FactureCreate", + "FactureUpdate", + "LivraisonCreate", + "LivraisonUpdate", + "ArticleCreate", + "ArticleUpdate", "MouvementStockLigneRequest", - "EntreeStockRequest", - "SortieStockRequest", + "EntreeStock", + "SortieStock", "FamilleCreate", - "PDFGenerationRequest" + "PDFGeneration" ] diff --git a/schemas/articles/articles.py b/schemas/articles/articles.py index 1606fdd..fb8b7ae 100644 --- a/schemas/articles/articles.py +++ b/schemas/articles/articles.py @@ -4,7 +4,7 @@ from typing import Optional, List, Dict from enum import Enum, IntEnum from datetime import datetime, date -class ArticleCreateRequest(BaseModel): +class ArticleCreate(BaseModel): reference: str = Field(..., description="Référence article (max 18 car)") designation: str = Field(..., description="Désignation (max 69 car)") famille: Optional[str] = Field(None, description="Code famille") @@ -18,7 +18,7 @@ class ArticleCreateRequest(BaseModel): description: Optional[str] = Field(None, description="Description/Commentaire") -class ArticleUpdateGatewayRequest(BaseModel): +class ArticleUpdate(BaseModel): """Modèle pour modification article côté gateway""" reference: str @@ -79,7 +79,7 @@ class MouvementStockLigneRequest(BaseModel): return v -class EntreeStockRequest(BaseModel): +class EntreeStock(BaseModel): """Création d'un bon d'entrée en stock""" date_entree: Optional[date] = Field( @@ -95,7 +95,7 @@ class EntreeStockRequest(BaseModel): 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""" date_sortie: Optional[date] = Field( diff --git a/schemas/documents/avoirs.py b/schemas/documents/avoirs.py index 2f261a1..b66c2fd 100644 --- a/schemas/documents/avoirs.py +++ b/schemas/documents/avoirs.py @@ -3,7 +3,7 @@ from typing import Optional, List, Dict from datetime import date -class AvoirCreateGatewayRequest(BaseModel): +class AvoirCreate(BaseModel): """Création d'un avoir côté gateway""" client_id: str @@ -13,7 +13,7 @@ class AvoirCreateGatewayRequest(BaseModel): reference: Optional[str] = None -class AvoirUpdateGatewayRequest(BaseModel): +class AvoirUpdate(BaseModel): """Modèle pour modification avoir côté gateway""" numero: str diff --git a/schemas/documents/commandes.py b/schemas/documents/commandes.py index e7ca3df..5315b79 100644 --- a/schemas/documents/commandes.py +++ b/schemas/documents/commandes.py @@ -3,7 +3,7 @@ from typing import Optional, List, Dict from datetime import date -class CommandeCreateRequest(BaseModel): +class CommandeCreate(BaseModel): """Création d'une commande""" client_id: str @@ -13,7 +13,7 @@ class CommandeCreateRequest(BaseModel): lignes: List[Dict] -class CommandeUpdateGatewayRequest(BaseModel): +class CommandeUpdate(BaseModel): """Modèle pour modification commande côté gateway""" numero: str diff --git a/schemas/documents/devis.py b/schemas/documents/devis.py index 2f0e2a1..d91ac02 100644 --- a/schemas/documents/devis.py +++ b/schemas/documents/devis.py @@ -11,7 +11,7 @@ class DevisRequest(BaseModel): lignes: List[Dict] -class DevisUpdateGatewayRequest(BaseModel): +class DevisUpdate(BaseModel): """Modèle pour modification devis côté gateway""" numero: str diff --git a/schemas/documents/documents.py b/schemas/documents/documents.py index 4dc6ae8..19b52fc 100644 --- a/schemas/documents/documents.py +++ b/schemas/documents/documents.py @@ -11,7 +11,7 @@ class TypeDocument(int, Enum): FACTURE = 5 -class DocumentGetRequest(BaseModel): +class DocumentGet(BaseModel): numero: str type_doc: int @@ -22,7 +22,7 @@ class TransformationRequest(BaseModel): type_cible: int -class PDFGenerationRequest(BaseModel): +class PDFGeneration(BaseModel): """Modèle pour génération PDF""" doc_id: str = Field(..., description="Numéro du document") diff --git a/schemas/documents/factures.py b/schemas/documents/factures.py index 4d7e940..8c9c208 100644 --- a/schemas/documents/factures.py +++ b/schemas/documents/factures.py @@ -3,7 +3,7 @@ from typing import Optional, List, Dict from datetime import date -class FactureCreateGatewayRequest(BaseModel): +class FactureCreate(BaseModel): """Création d'une facture côté gateway""" client_id: str @@ -13,7 +13,7 @@ class FactureCreateGatewayRequest(BaseModel): reference: Optional[str] = None -class FactureUpdateGatewayRequest(BaseModel): +class FactureUpdate(BaseModel): """Modèle pour modification facture côté gateway""" numero: str diff --git a/schemas/documents/livraisons.py b/schemas/documents/livraisons.py index 0d629c2..734955d 100644 --- a/schemas/documents/livraisons.py +++ b/schemas/documents/livraisons.py @@ -3,7 +3,7 @@ from typing import Optional, List, Dict from datetime import date -class LivraisonCreateGatewayRequest(BaseModel): +class LivraisonCreate(BaseModel): """Création d'une livraison côté gateway""" client_id: str @@ -13,7 +13,7 @@ class LivraisonCreateGatewayRequest(BaseModel): reference: Optional[str] = None -class LivraisonUpdateGatewayRequest(BaseModel): +class LivraisonUpdate(BaseModel): """Modèle pour modification livraison côté gateway""" numero: str diff --git a/schemas/others/general_schema.py b/schemas/others/general_schema.py index 62d2b34..70d1a68 100644 --- a/schemas/others/general_schema.py +++ b/schemas/others/general_schema.py @@ -10,7 +10,7 @@ class CodeRequest(BaseModel): code: str -class ChampLibreRequest(BaseModel): +class ChampLibre(BaseModel): doc_id: str type_doc: int nom_champ: str diff --git a/schemas/tiers/clients.py b/schemas/tiers/clients.py index 7b12d60..236ad12 100644 --- a/schemas/tiers/clients.py +++ b/schemas/tiers/clients.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field, field_validator from typing import Optional, Dict -class ClientCreateRequest(BaseModel): +class ClientCreate(BaseModel): intitule: str = Field( ..., 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""" code: str diff --git a/schemas/tiers/contact.py b/schemas/tiers/contact.py index 5736846..f960ecc 100644 --- a/schemas/tiers/contact.py +++ b/schemas/tiers/contact.py @@ -2,7 +2,7 @@ from pydantic import BaseModel from typing import Optional, Dict -class ContactCreateRequest(BaseModel): +class ContactCreate(BaseModel): """Requête de création de contact""" numero: str @@ -20,20 +20,20 @@ class ContactCreateRequest(BaseModel): skype: Optional[str] = None -class ContactListRequest(BaseModel): +class ContactList(BaseModel): """Requête de liste des contacts""" numero: str -class ContactGetRequest(BaseModel): +class ContactGet(BaseModel): """Requête de récupération d'un contact""" numero: str contact_numero: int -class ContactUpdateRequest(BaseModel): +class ContactUpdate(BaseModel): """Requête de modification d'un contact""" numero: str @@ -41,7 +41,7 @@ class ContactUpdateRequest(BaseModel): updates: Dict -class ContactDeleteRequest(BaseModel): +class ContactDelete(BaseModel): """Requête de suppression d'un contact""" numero: str diff --git a/schemas/tiers/fournisseurs.py b/schemas/tiers/fournisseurs.py index 721a7a5..05a78fc 100644 --- a/schemas/tiers/fournisseurs.py +++ b/schemas/tiers/fournisseurs.py @@ -2,7 +2,7 @@ from pydantic import BaseModel, Field from typing import Optional, Dict -class FournisseurCreateRequest(BaseModel): +class FournisseurCreate(BaseModel): intitule: str = Field(..., description="Raison sociale du fournisseur") compte_collectif: str = Field("401000", description="Compte général rattaché") num: Optional[str] = Field(None, description="Code fournisseur (auto si vide)") @@ -16,7 +16,7 @@ class FournisseurCreateRequest(BaseModel): tva_intra: Optional[str] = None -class FournisseurUpdateGatewayRequest(BaseModel): +class FournisseurUpdate(BaseModel): """Modèle pour modification fournisseur côté gateway""" code: str diff --git a/schemas/tiers/tiers.py b/schemas/tiers/tiers.py index ed6dfeb..77ec389 100644 --- a/schemas/tiers/tiers.py +++ b/schemas/tiers/tiers.py @@ -3,7 +3,7 @@ from typing import Optional from enum import IntEnum -class TiersListRequest(BaseModel): +class TiersList(BaseModel): """Requête de listage des tiers""" type_tiers: Optional[str] = Field(