{"openapi":"3.0.0","paths":{"/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":"Service joignable"}},"summary":"Vérification de disponibilité","tags":["Application"]}},"/auth/register":{"post":{"operationId":"AuthController_register","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterAuthDto"}}}},"responses":{"201":{"description":"Compte cree, jeton retourne"},"409":{"description":"Email ou telephone deja utilise"}},"summary":"Inscription (creation de compte)","tags":["Authentification"]}},"/auth/users":{"post":{"operationId":"AuthController_createUser","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserDto"}}}},"responses":{"201":{"description":"Utilisateur cree avec succes"},"409":{"description":"Email/telephone/username deja utilise"}},"summary":"Creation independante d un utilisateur","tags":["Authentification"]}},"/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAuthDto"}}}},"responses":{"200":{"description":"Authentification reussie"},"401":{"description":"Identifiants invalides ou compte desactive"}},"summary":"Connexion (email ou telephone + mot de passe)","tags":["Authentification"]}},"/auth/refresh":{"post":{"operationId":"AuthController_refresh","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenDto"}}}},"responses":{"200":{"description":"Nouveaux jetons generes"},"401":{"description":"Refresh token invalide ou expire"}},"summary":"Renouveler la session avec un refresh token","tags":["Authentification"]}},"/auth/logout":{"post":{"operationId":"AuthController_logout","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenDto"}}}},"responses":{"200":{"description":"Session invalidee"}},"summary":"Invalider un refresh token (deconnexion)","tags":["Authentification"]}},"/auth/profile/{id}":{"get":{"operationId":"AuthController_profile","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de l'utilisateur","schema":{"type":"number"}}],"responses":{"200":{"description":"Profil trouve"},"404":{"description":"Utilisateur introuvable"}},"summary":"Profil utilisateur par identifiant","tags":["Authentification"]}},"/settings":{"post":{"operationId":"SettingsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSettingDto"}}}},"responses":{"201":{"description":"Parametre cree"}},"summary":"Creer un parametre","tags":["Parametres"]},"get":{"operationId":"SettingsController_findAll","parameters":[],"responses":{"200":{"description":"Liste des parametres"}},"summary":"Lister tous les parametres","tags":["Parametres"]}},"/settings/{id}":{"get":{"operationId":"SettingsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant du parametre","schema":{"type":"number"}}],"responses":{"200":{"description":"Parametre trouve"}},"summary":"Obtenir un parametre par identifiant","tags":["Parametres"]},"patch":{"operationId":"SettingsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant du parametre","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSettingDto"}}}},"responses":{"200":{"description":"Parametre mis a jour"}},"summary":"Mettre a jour un parametre","tags":["Parametres"]},"delete":{"operationId":"SettingsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant du parametre","schema":{"type":"number"}}],"responses":{"200":{"description":"Parametre supprime"}},"summary":"Supprimer un parametre","tags":["Parametres"]}},"/notifications":{"post":{"operationId":"NotificationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNotificationDto"}}}},"responses":{"201":{"description":"Notification creee"}},"summary":"Creer une notification","tags":["Notifications"]},"get":{"operationId":"NotificationsController_findAll","parameters":[],"responses":{"200":{"description":"Liste des notifications"}},"summary":"Lister toutes les notifications","tags":["Notifications"]}},"/notifications/{id}":{"get":{"operationId":"NotificationsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de la notification","schema":{"type":"number"}}],"responses":{"200":{"description":"Notification trouvee"}},"summary":"Obtenir une notification par identifiant","tags":["Notifications"]},"patch":{"operationId":"NotificationsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de la notification","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationDto"}}}},"responses":{"200":{"description":"Notification mise a jour"}},"summary":"Mettre a jour une notification","tags":["Notifications"]},"delete":{"operationId":"NotificationsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de la notification","schema":{"type":"number"}}],"responses":{"200":{"description":"Notification supprimee"}},"summary":"Supprimer une notification","tags":["Notifications"]}},"/permissions":{"post":{"operationId":"PermissionsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePermissionDto"}}}},"responses":{"201":{"description":"Permission creee"},"409":{"description":"Code de permission deja utilise"}},"summary":"Creer une permission","tags":["Permissions"]},"get":{"operationId":"PermissionsController_findAll","parameters":[],"responses":{"200":{"description":"Liste des permissions"}},"summary":"Lister toutes les permissions","tags":["Permissions"]}},"/permissions/{id}":{"get":{"operationId":"PermissionsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de la permission","schema":{"type":"number"}}],"responses":{"200":{"description":"Permission trouvee"},"404":{"description":"Permission introuvable"}},"summary":"Obtenir une permission par identifiant","tags":["Permissions"]},"patch":{"operationId":"PermissionsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de la permission","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePermissionDto"}}}},"responses":{"200":{"description":"Permission mise a jour"},"404":{"description":"Permission introuvable"},"409":{"description":"Code de permission deja utilise"}},"summary":"Mettre a jour une permission","tags":["Permissions"]},"delete":{"operationId":"PermissionsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Identifiant de la permission","schema":{"type":"number"}}],"responses":{"200":{"description":"Permission supprimee"},"404":{"description":"Permission introuvable"}},"summary":"Supprimer une permission","tags":["Permissions"]}},"/depots":{"post":{"operationId":"DepotsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepotDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Depots"]},"get":{"operationId":"DepotsController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Depots"]}},"/depots/{id}":{"get":{"operationId":"DepotsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Depots"]},"patch":{"operationId":"DepotsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDepotDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Depots"]},"delete":{"operationId":"DepotsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Depots"]}},"/fournisseurs":{"post":{"operationId":"FournisseursController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFournisseurDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Fournisseurs"]},"get":{"operationId":"FournisseursController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Fournisseurs"]}},"/fournisseurs/{id}":{"get":{"operationId":"FournisseursController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Fournisseurs"]},"patch":{"operationId":"FournisseursController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFournisseurDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Fournisseurs"]},"delete":{"operationId":"FournisseursController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Fournisseurs"]}},"/categories-produit":{"post":{"operationId":"CategoriesProduitController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCategoriesProduitDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Categories Produit"]},"get":{"operationId":"CategoriesProduitController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Categories Produit"]}},"/categories-produit/{id}":{"get":{"operationId":"CategoriesProduitController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Categories Produit"]},"patch":{"operationId":"CategoriesProduitController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCategoriesProduitDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Categories Produit"]},"delete":{"operationId":"CategoriesProduitController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Categories Produit"]}},"/types-casier":{"post":{"operationId":"TypesCasierController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTypesCasierDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Types Casier"]},"get":{"operationId":"TypesCasierController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Types Casier"]}},"/types-casier/{id}":{"get":{"operationId":"TypesCasierController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Types Casier"]},"patch":{"operationId":"TypesCasierController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTypesCasierDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Types Casier"]},"delete":{"operationId":"TypesCasierController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Types Casier"]}},"/categories-depense":{"post":{"operationId":"CategoriesDepenseController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCategoriesDepenseDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Categories Depense"]},"get":{"operationId":"CategoriesDepenseController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Categories Depense"]}},"/categories-depense/{id}":{"get":{"operationId":"CategoriesDepenseController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Categories Depense"]},"patch":{"operationId":"CategoriesDepenseController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCategoriesDepenseDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Categories Depense"]},"delete":{"operationId":"CategoriesDepenseController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Categories Depense"]}},"/organismes":{"post":{"operationId":"OrganismesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganismeDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Organismes"]},"get":{"operationId":"OrganismesController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Organismes"]}},"/organismes/{id}":{"get":{"operationId":"OrganismesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Organismes"]},"patch":{"operationId":"OrganismesController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganismeDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Organismes"]},"delete":{"operationId":"OrganismesController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Organismes"]}},"/clients":{"post":{"operationId":"ClientsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Clients"]},"get":{"operationId":"ClientsController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Clients"]}},"/clients/{id}":{"get":{"operationId":"ClientsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Clients"]},"patch":{"operationId":"ClientsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClientDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Clients"]},"delete":{"operationId":"ClientsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Clients"]}},"/employes":{"post":{"operationId":"EmployesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployeDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Employes"]},"get":{"operationId":"EmployesController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Employes"]}},"/employes/{id}":{"get":{"operationId":"EmployesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Employes"]},"patch":{"operationId":"EmployesController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Employes"]},"delete":{"operationId":"EmployesController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Employes"]}},"/produits":{"post":{"operationId":"ProduitsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProduitDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Produits"]},"get":{"operationId":"ProduitsController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Produits"]}},"/produits/{id}":{"get":{"operationId":"ProduitsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Produits"]},"patch":{"operationId":"ProduitsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProduitDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Produits"]},"delete":{"operationId":"ProduitsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Produits"]}},"/affectations-employe":{"post":{"operationId":"AffectationsEmployeController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAffectationsEmployeDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Affectations Employe"]},"get":{"operationId":"AffectationsEmployeController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Affectations Employe"]}},"/affectations-employe/{id}":{"get":{"operationId":"AffectationsEmployeController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Affectations Employe"]},"patch":{"operationId":"AffectationsEmployeController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAffectationsEmployeDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Affectations Employe"]},"delete":{"operationId":"AffectationsEmployeController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Affectations Employe"]}},"/stocks-produit":{"post":{"operationId":"StocksProduitController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStocksProduitDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Stocks Produit"]},"get":{"operationId":"StocksProduitController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Stocks Produit"]}},"/stocks-produit/{id}":{"get":{"operationId":"StocksProduitController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Stocks Produit"]},"patch":{"operationId":"StocksProduitController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStocksProduitDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Stocks Produit"]},"delete":{"operationId":"StocksProduitController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Stocks Produit"]}},"/mouvements-stock":{"post":{"operationId":"MouvementsStockController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMouvementsStockDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Mouvements Stock"]},"get":{"operationId":"MouvementsStockController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Mouvements Stock"]}},"/mouvements-stock/{id}":{"get":{"operationId":"MouvementsStockController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Mouvements Stock"]},"patch":{"operationId":"MouvementsStockController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMouvementsStockDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Mouvements Stock"]},"delete":{"operationId":"MouvementsStockController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Mouvements Stock"]}},"/instantanes-stock-journalier":{"post":{"operationId":"InstantanesStockJournalierController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInstantanesStockJournalierDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Instantanes Stock Journalier"]},"get":{"operationId":"InstantanesStockJournalierController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Instantanes Stock Journalier"]}},"/instantanes-stock-journalier/recompute":{"post":{"operationId":"InstantanesStockJournalierController_recompute","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecomputeInstantanesStockJournalierDto"}}}},"responses":{"201":{"description":"Snapshots recomputed successfully."}},"summary":"Recompute daily snapshots for a date (defaults to current UTC date)","tags":["Instantanes Stock Journalier"]}},"/instantanes-stock-journalier/{id}":{"get":{"operationId":"InstantanesStockJournalierController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Instantanes Stock Journalier"]},"patch":{"operationId":"InstantanesStockJournalierController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInstantanesStockJournalierDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Instantanes Stock Journalier"]},"delete":{"operationId":"InstantanesStockJournalierController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Instantanes Stock Journalier"]}},"/achats/sync-stock-depuis-receptionnes":{"post":{"operationId":"AchatsController_syncStockFromReceivedPurchases","parameters":[],"responses":{"201":{"description":"Synchronisation terminée."}},"summary":"Crée les mouvements d’entrée manquants pour les achats déjà marqués « reçu »","tags":["Achats"]}},"/achats":{"post":{"operationId":"AchatsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAchatDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Achats"]},"get":{"operationId":"AchatsController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Achats"]}},"/achats/{id}":{"get":{"operationId":"AchatsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Achats"]},"patch":{"operationId":"AchatsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAchatDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Achats"]},"delete":{"operationId":"AchatsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Achats"]}},"/ventes":{"post":{"operationId":"VentesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVenteDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Ventes"]},"get":{"operationId":"VentesController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Ventes"]}},"/ventes/{id}":{"get":{"operationId":"VentesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Ventes"]},"patch":{"operationId":"VentesController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVenteDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Ventes"]},"delete":{"operationId":"VentesController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Ventes"]}},"/credits-clients":{"post":{"operationId":"CreditsClientsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCreditsClientDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Credits Clients"]},"get":{"operationId":"CreditsClientsController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Credits Clients"]}},"/credits-clients/{id}":{"get":{"operationId":"CreditsClientsController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Credits Clients"]},"patch":{"operationId":"CreditsClientsController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCreditsClientDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Credits Clients"]},"delete":{"operationId":"CreditsClientsController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Credits Clients"]}},"/paiements-credit":{"post":{"operationId":"PaiementsCreditController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaiementsCreditDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Paiements Credit"]},"get":{"operationId":"PaiementsCreditController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Paiements Credit"]}},"/paiements-credit/{id}":{"get":{"operationId":"PaiementsCreditController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Paiements Credit"]},"patch":{"operationId":"PaiementsCreditController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePaiementsCreditDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Paiements Credit"]},"delete":{"operationId":"PaiementsCreditController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Paiements Credit"]}},"/depenses":{"post":{"operationId":"DepensesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepenseDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Depenses"]},"get":{"operationId":"DepensesController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Depenses"]}},"/depenses/{id}":{"get":{"operationId":"DepensesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Depenses"]},"patch":{"operationId":"DepensesController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDepenseDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Depenses"]},"delete":{"operationId":"DepensesController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Depenses"]}},"/obligations-organismes":{"post":{"operationId":"ObligationsOrganismesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateObligationsOrganismeDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Obligations Organismes"]},"get":{"operationId":"ObligationsOrganismesController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Obligations Organismes"]}},"/obligations-organismes/{id}":{"get":{"operationId":"ObligationsOrganismesController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Obligations Organismes"]},"patch":{"operationId":"ObligationsOrganismesController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateObligationsOrganismeDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Obligations Organismes"]},"delete":{"operationId":"ObligationsOrganismesController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Obligations Organismes"]}},"/stocks-casiers":{"post":{"operationId":"StocksCasiersController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStocksCasierDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Stocks Casiers"]},"get":{"operationId":"StocksCasiersController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Stocks Casiers"]}},"/stocks-casiers/{id}":{"get":{"operationId":"StocksCasiersController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Stocks Casiers"]},"patch":{"operationId":"StocksCasiersController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStocksCasierDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Stocks Casiers"]},"delete":{"operationId":"StocksCasiersController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Stocks Casiers"]}},"/mouvements-casiers":{"post":{"operationId":"MouvementsCasiersController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMouvementsCasierDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Mouvements Casiers"]},"get":{"operationId":"MouvementsCasiersController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Mouvements Casiers"]}},"/mouvements-casiers/{id}":{"get":{"operationId":"MouvementsCasiersController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Mouvements Casiers"]},"patch":{"operationId":"MouvementsCasiersController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMouvementsCasierDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Mouvements Casiers"]},"delete":{"operationId":"MouvementsCasiersController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Mouvements Casiers"]}},"/marges-depot-journalieres":{"post":{"operationId":"MargesDepotJournalieresController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMargesDepotJournaliereDto"}}}},"responses":{"201":{"description":"Resource created successfully."},"400":{"description":"Invalid input data."}},"summary":"Create resource","tags":["Marges Depot Journalieres"]},"get":{"operationId":"MargesDepotJournalieresController_findAll","parameters":[],"responses":{"200":{"description":"Resources retrieved successfully."}},"summary":"Get all resources","tags":["Marges Depot Journalieres"]}},"/marges-depot-journalieres/{id}":{"get":{"operationId":"MargesDepotJournalieresController_findOne","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource retrieved successfully."},"404":{"description":"Resource not found."}},"summary":"Get resource by ID","tags":["Marges Depot Journalieres"]},"patch":{"operationId":"MargesDepotJournalieresController_update","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateMargesDepotJournaliereDto"}}}},"responses":{"200":{"description":"Resource updated successfully."},"404":{"description":"Resource not found."}},"summary":"Update resource by ID","tags":["Marges Depot Journalieres"]},"delete":{"operationId":"MargesDepotJournalieresController_remove","parameters":[{"name":"id","required":true,"in":"path","description":"Resource ID","schema":{"type":"number"}}],"responses":{"200":{"description":"Resource deleted successfully."},"404":{"description":"Resource not found."}},"summary":"Delete resource by ID","tags":["Marges Depot Journalieres"]}},"/dashboard/summary":{"get":{"operationId":"DashboardController_getSummary","parameters":[],"responses":{"200":{"description":"Données dashboard récupérées avec succès"}},"summary":"Récupérer les indicateurs du dashboard","tags":["Dashboard"]}}},"info":{"title":"Backend Depot API","description":"Documentation de l'API Backend Depot (auth, utilisateurs, produits, stock, ventes, credits).\n\n**Format des reponses** : les endpoints HTTP peuvent renvoyer un objet enveloppe `{ \"success\": true, \"data\": ... }` via interceptor global.\n\n**Dates** : utilisez de preference le format ISO 8601 avec fuseau (ex. `2026-04-20T09:00:00.000Z`).","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header","description":"Entrez uniquement le token JWT (sans le prefixe \"Bearer\")."}},"schemas":{"RegisterAuthDto":{"type":"object","properties":{"name":{"type":"string","example":"Jean Dupont","description":"Nom complet de l'utilisateur"},"email":{"type":"string","example":"jean@depotoriental.com","description":"Adresse email de l'utilisateur"},"password":{"type":"string","example":"MotDePasse123!","description":"Mot de passe en clair"},"username":{"type":"object","example":"jdupont","description":"Nom d'utilisateur unique (connexion)"},"mobile":{"type":"object","example":"+2250700000000","description":"Numero de telephone"},"role":{"type":"string","enum":["user","admin","super_admin"],"example":"user","description":"Role de l'utilisateur"}},"required":["name","email","password"]},"CreateUserDto":{"type":"object","properties":{"name":{"type":"string","example":"Konan Yao"},"email":{"type":"string","example":"konan@depotoriental.com"},"username":{"type":"object","example":"konan.yao"},"mobile":{"type":"object","example":"+2250700000000"},"role":{"type":"string","enum":["user","admin","super_admin"],"example":"user"},"password":{"type":"string","example":"12345678","default":"12345678"}},"required":["name","email"]},"CreateAuthDto":{"type":"object","properties":{"identifier":{"type":"string","example":"jean@depotoriental.com","description":"Identifiant de connexion : adresse e-mail, nom d'utilisateur ou numero de telephone (selon le compte)."},"password":{"type":"string","example":"MotDePasse123!","description":"Mot de passe de connexion"}},"required":["identifier","password"]},"RefreshTokenDto":{"type":"object","properties":{"refreshToken":{"type":"string","example":"eyJzdWIiOjEsInR5cGUiOiJyZWZyZXNoIiwiZXhwIjoxNzAwMDAwMDAwfQ.signature","description":"Refresh token valide"}},"required":["refreshToken"]},"CreateSettingDto":{"type":"object","properties":{"key":{"type":"string","example":"currency"},"value":{"type":"string","example":"XOF"},"description":{"type":"string","example":"General application setting"}},"required":["key","value"]},"UpdateSettingDto":{"type":"object","properties":{}},"CreateNotificationDto":{"type":"object","properties":{"userId":{"type":"number","example":1},"title":{"type":"string","example":"Low stock alert"},"message":{"type":"string","example":"Product X is below threshold"},"isRead":{"type":"boolean","example":false}},"required":["userId","title","message"]},"UpdateNotificationDto":{"type":"object","properties":{}},"CreatePermissionDto":{"type":"object","properties":{"code":{"type":"string","example":"sales.create","description":"Code unique de la permission (souvent en notation module.action)"},"label":{"type":"string","example":"Creer une vente","description":"Libelle lisible"},"description":{"type":"object","example":"Autorise la creation de vente","description":"Description detaillee"}},"required":["code","label"]},"UpdatePermissionDto":{"type":"object","properties":{}},"CreateDepotDto":{"type":"object","properties":{"name":{"type":"string","example":"Main Depot"},"location":{"type":"string","example":"Abidjan, Cocody"},"isActive":{"type":"boolean","example":true}},"required":["name"]},"UpdateDepotDto":{"type":"object","properties":{"name":{"type":"string","example":"Main Depot"},"location":{"type":"string","example":"Abidjan, Cocody"},"isActive":{"type":"boolean","example":true}}},"CreateFournisseurDto":{"type":"object","properties":{"name":{"type":"string","example":"SOLIBRA"},"phone":{"type":"string","example":"+2250700000000"},"address":{"type":"string","example":"Abidjan"},"isActive":{"type":"boolean","example":true}},"required":["name"]},"UpdateFournisseurDto":{"type":"object","properties":{"name":{"type":"string","example":"SOLIBRA"},"phone":{"type":"string","example":"+2250700000000"},"address":{"type":"string","example":"Abidjan"},"isActive":{"type":"boolean","example":true}}},"CreateCategoriesProduitDto":{"type":"object","properties":{"name":{"type":"string","example":"Beers"}},"required":["name"]},"UpdateCategoriesProduitDto":{"type":"object","properties":{"name":{"type":"string","example":"Beers"}}},"CreateTypesCasierDto":{"type":"object","properties":{"label":{"type":"string","example":"33cl (24 slots)"},"capacity":{"type":"number","example":24}},"required":["label"]},"UpdateTypesCasierDto":{"type":"object","properties":{"label":{"type":"string","example":"33cl (24 slots)"},"capacity":{"type":"number","example":24}}},"CreateCategoriesDepenseDto":{"type":"object","properties":{"name":{"type":"string","example":"Transport"}},"required":["name"]},"UpdateCategoriesDepenseDto":{"type":"object","properties":{"name":{"type":"string","example":"Transport"}}},"CreateOrganismeDto":{"type":"object","properties":{"name":{"type":"string","example":"Direction Generale des Impots"},"type":{"type":"string","enum":["tax","social","patent","vat","local_tax","other"],"example":"tax"}},"required":["name","type"]},"UpdateOrganismeDto":{"type":"object","properties":{"name":{"type":"string","example":"Direction Generale des Impots"},"type":{"type":"string","enum":["tax","social","patent","vat","local_tax","other"],"example":"tax"}}},"CreateClientDto":{"type":"object","properties":{"name":{"type":"string","example":"Kone Amadou"},"phone":{"type":"string","example":"+2250700000000"},"address":{"type":"string","example":"Yopougon"},"isActive":{"type":"boolean","example":true}},"required":["name"]},"UpdateClientDto":{"type":"object","properties":{"name":{"type":"string","example":"Kone Amadou"},"phone":{"type":"string","example":"+2250700000000"},"address":{"type":"string","example":"Yopougon"},"isActive":{"type":"boolean","example":true}}},"CreateEmployeDto":{"type":"object","properties":{"name":{"type":"string","example":"Konan Yao"},"jobTitle":{"type":"string","example":"Cashier"},"depotId":{"type":"number","example":1},"phone":{"type":"string","example":"+2250700000000"},"userEmail":{"type":"string","example":"konan@depotoriental.com"},"username":{"type":"string","example":"konan.yao"},"userRole":{"type":"string","enum":["user","admin","super_admin"],"example":"user"},"baseSalary":{"type":"string","example":"120000.00"},"status":{"type":"string","enum":["active","leave","suspended"],"example":"active"},"isActive":{"type":"boolean","example":true}},"required":["name","jobTitle","depotId","userEmail","baseSalary"]},"UpdateEmployeDto":{"type":"object","properties":{"name":{"type":"string","example":"Konan Yao"},"jobTitle":{"type":"string","example":"Cashier"},"depotId":{"type":"number","example":1},"phone":{"type":"string","example":"+2250700000000"},"userEmail":{"type":"string","example":"konan@depotoriental.com"},"username":{"type":"string","example":"konan.yao"},"userRole":{"type":"string","enum":["user","admin","super_admin"],"example":"user"},"baseSalary":{"type":"string","example":"120000.00"},"status":{"type":"string","enum":["active","leave","suspended"],"example":"active"},"isActive":{"type":"boolean","example":true}}},"CreateProduitDto":{"type":"object","properties":{"name":{"type":"string","example":"Bock 66"},"sku":{"type":"string","example":"BOCK66"},"supplierId":{"type":"number","example":1},"categoryId":{"type":"number","example":1},"unit":{"type":"string","example":"bottle"},"averagePurchasePrice":{"type":"string","example":"2200.00"},"sellingPrice":{"type":"string","example":"3000.00"},"alertThreshold":{"type":"number","example":30},"isActive":{"type":"boolean","example":true}},"required":["name","sku","supplierId","categoryId","unit","sellingPrice"]},"UpdateProduitDto":{"type":"object","properties":{"name":{"type":"string","example":"Bock 66"},"sku":{"type":"string","example":"BOCK66"},"supplierId":{"type":"number","example":1},"categoryId":{"type":"number","example":1},"unit":{"type":"string","example":"bottle"},"averagePurchasePrice":{"type":"string","example":"2200.00"},"sellingPrice":{"type":"string","example":"3000.00"},"alertThreshold":{"type":"number","example":30},"isActive":{"type":"boolean","example":true}}},"CreateAffectationsEmployeDto":{"type":"object","properties":{"employeeId":{"type":"number","example":1},"depotId":{"type":"number","example":1},"startDate":{"type":"string","example":"2026-04-24T08:00:00.000Z"},"endDate":{"type":"string","example":"2026-04-30T18:00:00.000Z"},"assignedRole":{"type":"string","example":"Cashier"},"active":{"type":"boolean","example":true}},"required":["employeeId","depotId","startDate"]},"UpdateAffectationsEmployeDto":{"type":"object","properties":{"employeeId":{"type":"number","example":1},"depotId":{"type":"number","example":1},"startDate":{"type":"string","example":"2026-04-24T08:00:00.000Z"},"endDate":{"type":"string","example":"2026-04-30T18:00:00.000Z"},"assignedRole":{"type":"string","example":"Cashier"},"active":{"type":"boolean","example":true}}},"CreateStocksProduitDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"currentQuantity":{"type":"number","example":120},"lastMovementAt":{"type":"string","example":"2026-04-24T18:00:00.000Z"}},"required":["depotId","productId"]},"UpdateStocksProduitDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"currentQuantity":{"type":"number","example":120},"lastMovementAt":{"type":"string","example":"2026-04-24T18:00:00.000Z"}}},"CreateMouvementsStockDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"movementDate":{"type":"string","example":"2026-04-24T10:00:00.000Z"},"movementType":{"type":"string","enum":["entry","exit"],"example":"entry"},"sourceType":{"type":"string","example":"purchase"},"sourceId":{"type":"number","example":1001},"quantity":{"type":"number","example":40},"unitPriceSnapshot":{"type":"string","example":"2500.00"},"note":{"type":"string","example":"Delivery received"}},"required":["depotId","productId","movementDate","movementType","sourceType","quantity"]},"UpdateMouvementsStockDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"movementDate":{"type":"string","example":"2026-04-24T10:00:00.000Z"},"movementType":{"type":"string","enum":["entry","exit"],"example":"entry"},"sourceType":{"type":"string","example":"purchase"},"sourceId":{"type":"number","example":1001},"quantity":{"type":"number","example":40},"unitPriceSnapshot":{"type":"string","example":"2500.00"},"note":{"type":"string","example":"Delivery received"}}},"CreateInstantanesStockJournalierDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"activityDate":{"type":"string","example":"2026-04-24"},"openingStock":{"type":"number","example":100},"entryQuantity":{"type":"number","example":40},"exitQuantity":{"type":"number","example":22},"closingStock":{"type":"number","example":118},"computedAt":{"type":"string","example":"2026-04-24T23:59:00.000Z"}},"required":["depotId","productId","activityDate"]},"RecomputeInstantanesStockJournalierDto":{"type":"object","properties":{"activityDate":{"type":"string","example":"2026-04-27","description":"Date à recalculer (YYYY-MM-DD ou ISO)."}}},"UpdateInstantanesStockJournalierDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"activityDate":{"type":"string","example":"2026-04-24"},"openingStock":{"type":"number","example":100},"entryQuantity":{"type":"number","example":40},"exitQuantity":{"type":"number","example":22},"closingStock":{"type":"number","example":118},"computedAt":{"type":"string","example":"2026-04-24T23:59:00.000Z"}}},"CreateLignesAchatDto":{"type":"object","properties":{"productId":{"type":"number","example":1},"quantity":{"type":"number","example":48},"unitPurchasePrice":{"type":"string","example":"2500.00"},"lineTotal":{"type":"string","example":"120000.00"}},"required":["productId","quantity","unitPurchasePrice"]},"CreateAchatDto":{"type":"object","properties":{"purchaseNumber":{"type":"string","example":"ACH-2026-00001"},"supplierId":{"type":"number","example":1},"purchaseDate":{"type":"string","example":"2026-04-24T10:00:00.000Z"},"status":{"type":"string","enum":["pending","received","canceled"],"example":"received","description":"Si omis : « reçu » — les quantités entrent alors en stock du dépôt. Utilisez « en attente » pour une commande pas encore livrée."},"supplierReference":{"type":"string","example":"FAC-SOLIBRA-2026-8841","description":"Référence côté fournisseur (n° facture, bon de livraison, BC fournisseur…) pour recouper avec sa comptabilité — distinct du numéro d’achat interne."},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreateLignesAchatDto"}}},"required":["purchaseNumber","supplierId","purchaseDate","items"]},"UpdateAchatDto":{"type":"object","properties":{"purchaseNumber":{"type":"string","example":"ACH-2026-00001"},"supplierId":{"type":"number","example":1},"purchaseDate":{"type":"string","example":"2026-04-24T10:00:00.000Z"},"status":{"type":"string","enum":["pending","received","canceled"],"example":"received","description":"Si omis : « reçu » — les quantités entrent alors en stock du dépôt. Utilisez « en attente » pour une commande pas encore livrée."},"supplierReference":{"type":"string","example":"FAC-SOLIBRA-2026-8841","description":"Référence côté fournisseur (n° facture, bon de livraison, BC fournisseur…) pour recouper avec sa comptabilité — distinct du numéro d’achat interne."},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreateLignesAchatDto"}},"depotId":{"type":"number","example":1,"description":"Dépôt cible (mise à jour manuelle)."}}},"CreateLignesVenteDto":{"type":"object","properties":{"productId":{"type":"number","example":1},"quantity":{"type":"number","example":20},"unitSalePrice":{"type":"string","example":"3000.00"},"lineTotal":{"type":"string","example":"60000.00"}},"required":["productId","quantity","unitSalePrice"]},"CreateVenteDto":{"type":"object","properties":{"saleNumber":{"type":"string","example":"SAL-2026-00001"},"depotId":{"type":"number","example":1},"saleDate":{"type":"string","example":"2026-04-24T15:00:00.000Z"},"clientId":{"type":"number","example":1},"employeeId":{"type":"number","example":1},"grossAmount":{"type":"string","example":"100000.00"},"discountAmount":{"type":"string","example":"5000.00"},"netAmount":{"type":"string","example":"95000.00"},"paidNowAmount":{"type":"string","example":"30000.00"},"paymentStatus":{"type":"string","enum":["paid","partial","credit"],"example":"paid"},"paymentMethod":{"type":"string","example":"cash"},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreateLignesVenteDto"}}},"required":["saleNumber","saleDate","items"]},"UpdateVenteDto":{"type":"object","properties":{"saleNumber":{"type":"string","example":"SAL-2026-00001"},"depotId":{"type":"number","example":1},"saleDate":{"type":"string","example":"2026-04-24T15:00:00.000Z"},"clientId":{"type":"number","example":1},"employeeId":{"type":"number","example":1},"grossAmount":{"type":"string","example":"100000.00"},"discountAmount":{"type":"string","example":"5000.00"},"netAmount":{"type":"string","example":"95000.00"},"paidNowAmount":{"type":"string","example":"30000.00"},"paymentStatus":{"type":"string","enum":["paid","partial","credit"],"example":"paid"},"paymentMethod":{"type":"string","example":"cash"},"items":{"type":"array","items":{"$ref":"#/components/schemas/CreateLignesVenteDto"}}}},"CreateCreditsClientDto":{"type":"object","properties":{"clientId":{"type":"number","example":1},"saleId":{"type":"number","example":1},"creditDate":{"type":"string","example":"2026-04-24T17:00:00.000Z"},"initialAmount":{"type":"string","example":"70000.00"},"remainingAmount":{"type":"string","example":"70000.00"},"dueDate":{"type":"string","example":"2026-05-24T00:00:00.000Z"},"status":{"type":"string","enum":["open","settled","overdue"],"example":"open"},"note":{"type":"string","example":"Customer will pay next week"}},"required":["clientId","saleId","creditDate","initialAmount","remainingAmount"]},"UpdateCreditsClientDto":{"type":"object","properties":{"clientId":{"type":"number","example":1},"saleId":{"type":"number","example":1},"creditDate":{"type":"string","example":"2026-04-24T17:00:00.000Z"},"initialAmount":{"type":"string","example":"70000.00"},"remainingAmount":{"type":"string","example":"70000.00"},"dueDate":{"type":"string","example":"2026-05-24T00:00:00.000Z"},"status":{"type":"string","enum":["open","settled","overdue"],"example":"open"},"note":{"type":"string","example":"Customer will pay next week"}}},"CreatePaiementsCreditDto":{"type":"object","properties":{"creditId":{"type":"number","example":1},"paymentDate":{"type":"string","example":"2026-04-25T10:00:00.000Z"},"amount":{"type":"string","example":"20000.00"},"paymentMethod":{"type":"string","example":"cash"},"reference":{"type":"string","example":"TXN-001","description":"Référence libre (ex. reçu bancaire). Si omise ou vide, le serveur en génère une (ex. PC-{creditId}-{date}-{suffixe})."},"receivedByEmployeeId":{"type":"number","example":1},"note":{"type":"string","example":"Partial payment"}},"required":["creditId","paymentDate","amount"]},"UpdatePaiementsCreditDto":{"type":"object","properties":{"creditId":{"type":"number","example":1},"paymentDate":{"type":"string","example":"2026-04-25T10:00:00.000Z"},"amount":{"type":"string","example":"20000.00"},"paymentMethod":{"type":"string","example":"cash"},"reference":{"type":"string","example":"TXN-001","description":"Référence libre (ex. reçu bancaire). Si omise ou vide, le serveur en génère une (ex. PC-{creditId}-{date}-{suffixe})."},"receivedByEmployeeId":{"type":"number","example":1},"note":{"type":"string","example":"Partial payment"}}},"CreateDepenseDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"description":{"type":"string","example":"Transport to supplier"},"expenseCategoryId":{"type":"number","example":1},"amount":{"type":"string","example":"35000.00"},"expenseDate":{"type":"string","example":"2026-04-24T10:00:00.000Z"},"paymentMethod":{"type":"string","example":"cash"},"receiptUrl":{"type":"string","example":"receipt.pdf"},"createdByEmployeeId":{"type":"number","example":1}},"required":["description","expenseCategoryId","amount","expenseDate"]},"UpdateDepenseDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"description":{"type":"string","example":"Transport to supplier"},"expenseCategoryId":{"type":"number","example":1},"amount":{"type":"string","example":"35000.00"},"expenseDate":{"type":"string","example":"2026-04-24T10:00:00.000Z"},"paymentMethod":{"type":"string","example":"cash"},"receiptUrl":{"type":"string","example":"receipt.pdf"},"createdByEmployeeId":{"type":"number","example":1}}},"CreateObligationsOrganismeDto":{"type":"object","properties":{"organizationId":{"type":"number","example":1},"depotId":{"type":"number","example":1},"label":{"type":"string","example":"Monthly VAT"},"amount":{"type":"string","example":"420000.00"},"dueDate":{"type":"string","example":"2026-05-10"},"status":{"type":"string","enum":["to_pay","paid","overdue"],"example":"to_pay"},"paidAt":{"type":"string","example":"2026-05-09T14:00:00.000Z"},"paymentReference":{"type":"string","example":"TXN-445"}},"required":["organizationId","depotId","label","amount","dueDate"]},"UpdateObligationsOrganismeDto":{"type":"object","properties":{"organizationId":{"type":"number","example":1},"depotId":{"type":"number","example":1},"label":{"type":"string","example":"Monthly VAT"},"amount":{"type":"string","example":"420000.00"},"dueDate":{"type":"string","example":"2026-05-10"},"status":{"type":"string","enum":["to_pay","paid","overdue"],"example":"to_pay"},"paidAt":{"type":"string","example":"2026-05-09T14:00:00.000Z"},"paymentReference":{"type":"string","example":"TXN-445"}}},"CreateStocksCasierDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"supplierId":{"type":"number","example":1},"crateTypeId":{"type":"number","example":1},"receivedTotal":{"type":"number","example":120},"returnedTotal":{"type":"number","example":95},"availableQuantity":{"type":"number","example":25},"fullQuantity":{"type":"number","example":18},"emptyQuantity":{"type":"number","example":7}},"required":["depotId","supplierId","crateTypeId"]},"UpdateStocksCasierDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"supplierId":{"type":"number","example":1},"crateTypeId":{"type":"number","example":1},"receivedTotal":{"type":"number","example":120},"returnedTotal":{"type":"number","example":95},"availableQuantity":{"type":"number","example":25},"fullQuantity":{"type":"number","example":18},"emptyQuantity":{"type":"number","example":7}}},"CreateMouvementsCasierDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"supplierId":{"type":"number","example":1},"crateTypeId":{"type":"number","example":1},"movementDate":{"type":"string","example":"2026-04-24T12:00:00.000Z"},"movementKind":{"type":"string","example":"received"},"quantity":{"type":"number","example":12},"note":{"type":"string","example":"Returned to supplier"}},"required":["depotId","supplierId","crateTypeId","movementDate","movementKind","quantity"]},"UpdateMouvementsCasierDto":{"type":"object","properties":{"depotId":{"type":"number","example":1},"supplierId":{"type":"number","example":1},"crateTypeId":{"type":"number","example":1},"movementDate":{"type":"string","example":"2026-04-24T12:00:00.000Z"},"movementKind":{"type":"string","example":"received"},"quantity":{"type":"number","example":12},"note":{"type":"string","example":"Returned to supplier"}}},"CreateMargesDepotJournaliereDto":{"type":"object","properties":{"activityDate":{"type":"string","example":"2026-04-24"},"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"soldQuantity":{"type":"number","example":120},"revenue":{"type":"string","example":"360000.00"},"estimatedCost":{"type":"string","example":"280000.00"},"grossMargin":{"type":"string","example":"80000.00"},"marginRate":{"type":"string","example":"22.22"},"computedAt":{"type":"string","example":"2026-04-24T23:59:00.000Z"}},"required":["activityDate","depotId"]},"UpdateMargesDepotJournaliereDto":{"type":"object","properties":{"activityDate":{"type":"string","example":"2026-04-24"},"depotId":{"type":"number","example":1},"productId":{"type":"number","example":1},"soldQuantity":{"type":"number","example":120},"revenue":{"type":"string","example":"360000.00"},"estimatedCost":{"type":"string","example":"280000.00"},"grossMargin":{"type":"string","example":"80000.00"},"marginRate":{"type":"string","example":"22.22"},"computedAt":{"type":"string","example":"2026-04-24T23:59:00.000Z"}}}}},"security":[{"access-token":[]}]}