{"openapi":"3.0.0","paths":{"/v1/api":{"get":{"operationId":"AppController_getHello","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/v1/api/health":{"get":{"operationId":"AppController_getHealth","parameters":[],"responses":{"200":{"description":""}},"tags":["App"]}},"/v1/api/categories":{"post":{"operationId":"CategoriesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCategoryDto"}}}},"responses":{"201":{"description":"Categorie creee avec succes"},"400":{"description":"Donnees invalides"},"409":{"description":"Categorie deja existante"}},"security":[{"access-token":[]}],"summary":"Creer une categorie","tags":["Categories"]},"get":{"operationId":"CategoriesController_findAll","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchCategoryDto"}}}},"responses":{"200":{"description":"Liste des categories"}},"security":[{"access-token":[]}],"summary":"Lister les categories avec filtres","tags":["Categories"]}},"/v1/api/categories/{id}":{"get":{"operationId":"CategoriesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Categorie trouvee"},"404":{"description":"Categorie introuvable"}},"security":[{"access-token":[]}],"summary":"Recuperer une categorie par id","tags":["Categories"]},"patch":{"operationId":"CategoriesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCategoryDto"}}}},"responses":{"200":{"description":"Categorie mise a jour"},"400":{"description":"Donnees invalides"},"404":{"description":"Categorie introuvable"},"409":{"description":"Conflit de donnees"}},"security":[{"access-token":[]}],"summary":"Mettre a jour une categorie","tags":["Categories"]},"delete":{"operationId":"CategoriesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":"Categorie supprimee"},"404":{"description":"Categorie introuvable"}},"security":[{"access-token":[]}],"summary":"Supprimer (soft delete) une categorie","tags":["Categories"]}},"/v1/api/categories/{id}/toggle-statut":{"patch":{"operationId":"CategoriesController_toggleStatut","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Statut modifie avec succes"},"404":{"description":"Categorie introuvable"}},"security":[{"access-token":[]}],"summary":"Activer ou desactiver une categorie","tags":["Categories"]}},"/v1/api/formats-bouteille":{"post":{"operationId":"FormatsBouteilleController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFormatsBouteilleDto"}}}},"responses":{"201":{"description":"Format de bouteille cree avec succes"},"400":{"description":"Donnees invalides"},"409":{"description":"Format deja existant"}},"security":[{"access-token":[]}],"summary":"Creer un format de bouteille","tags":["Formats Bouteille"]},"get":{"operationId":"FormatsBouteilleController_findAll","parameters":[{"name":"libelle","required":true,"in":"query","description":"Le libelle du format de bouteille","schema":{"example":"33cl","type":"string"}},{"name":"statut","required":true,"in":"query","description":"Le statut du format de bouteille","schema":{"example":"ACTIF","type":"string","enum":["ACTIF","INACTIF"]}}],"responses":{"200":{"description":"Liste des formats de bouteille"}},"security":[{"access-token":[]}],"summary":"Lister les formats de bouteille avec filtres","tags":["Formats Bouteille"]}},"/v1/api/formats-bouteille/{id}":{"get":{"operationId":"FormatsBouteilleController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Format de bouteille trouve"},"404":{"description":"Format de bouteille introuvable"}},"security":[{"access-token":[]}],"summary":"Recuperer un format de bouteille par id","tags":["Formats Bouteille"]},"patch":{"operationId":"FormatsBouteilleController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFormatsBouteilleDto"}}}},"responses":{"200":{"description":"Format de bouteille mis a jour"},"400":{"description":"Donnees invalides"},"404":{"description":"Format de bouteille introuvable"},"409":{"description":"Conflit de donnees"}},"security":[{"access-token":[]}],"summary":"Mettre a jour un format de bouteille","tags":["Formats Bouteille"]},"delete":{"operationId":"FormatsBouteilleController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":"Format de bouteille supprime"},"404":{"description":"Format de bouteille introuvable"}},"security":[{"access-token":[]}],"summary":"Supprimer (soft delete) un format de bouteille","tags":["Formats Bouteille"]}},"/v1/api/formats-bouteille/{id}/toggle-statut":{"patch":{"operationId":"FormatsBouteilleController_toggleStatut","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Statut modifie avec succes"},"404":{"description":"Format de bouteille introuvable"}},"security":[{"access-token":[]}],"summary":"Activer ou desactiver un format de bouteille","tags":["Formats Bouteille"]}},"/v1/api/types-casier":{"post":{"operationId":"TypesCasierController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTypesCasierDto"}}}},"responses":{"201":{"description":"Type de casier cree avec succes"},"400":{"description":"Donnees invalides"},"409":{"description":"Type de casier deja existant"}},"security":[{"access-token":[]}],"summary":"Creer un type de casier","tags":["Types Casier"]},"get":{"operationId":"TypesCasierController_findAll","parameters":[{"name":"libelle","required":false,"in":"query","description":"Filtrer par libelle du type de casier","schema":{"example":"12 trous","type":"string"}},{"name":"statut","required":false,"in":"query","description":"Filtrer par statut","schema":{"example":"ACTIF","type":"string","enum":["ACTIF","INACTIF"]}},{"name":"nbBouteilles","required":false,"in":"query","description":"Filtrer par nombre de bouteilles","schema":{"example":12,"type":"number"}}],"responses":{"200":{"description":"Liste des types de casier"}},"security":[{"access-token":[]}],"summary":"Lister les types de casier avec filtres","tags":["Types Casier"]}},"/v1/api/types-casier/{id}":{"get":{"operationId":"TypesCasierController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Type de casier trouve"},"404":{"description":"Type de casier introuvable"}},"security":[{"access-token":[]}],"summary":"Recuperer un type de casier par id","tags":["Types Casier"]},"patch":{"operationId":"TypesCasierController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTypesCasierDto"}}}},"responses":{"200":{"description":"Type de casier mis a jour"},"400":{"description":"Donnees invalides"},"404":{"description":"Type de casier introuvable"},"409":{"description":"Conflit de donnees"}},"security":[{"access-token":[]}],"summary":"Mettre a jour un type de casier","tags":["Types Casier"]},"delete":{"operationId":"TypesCasierController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":"Type de casier supprime"},"404":{"description":"Type de casier introuvable"}},"security":[{"access-token":[]}],"summary":"Supprimer (soft delete) un type de casier","tags":["Types Casier"]}},"/v1/api/types-casier/{id}/toggle-statut":{"patch":{"operationId":"TypesCasierController_toggleStatut","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Statut modifie avec succes"},"404":{"description":"Type de casier introuvable"}},"security":[{"access-token":[]}],"summary":"Activer ou desactiver un type de casier","tags":["Types Casier"]}},"/v1/api/fournisseurs":{"post":{"operationId":"FournisseursController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFournisseurDto"}}}},"responses":{"201":{"description":"Fournisseur cree avec succes"},"400":{"description":"Donnees invalides"},"409":{"description":"Fournisseur deja existant"}},"security":[{"access-token":[]}],"summary":"Creer un fournisseur","tags":["Fournisseurs"]},"get":{"operationId":"FournisseursController_findAll","parameters":[{"name":"nom","required":false,"in":"query","description":"Filtrer par nom","schema":{"example":"SOLIBRA","type":"string"}},{"name":"telephone","required":false,"in":"query","description":"Filtrer par numero de telephone","schema":{"example":"+2250707070707","type":"string"}},{"name":"contact","required":false,"in":"query","description":"Filtrer par email de contact","schema":{"example":"contact@solibra.ci","type":"string"}},{"name":"statut","required":false,"in":"query","description":"Filtrer par statut","schema":{"example":"ACTIF","type":"string","enum":["ACTIF","INACTIF"]}}],"responses":{"200":{"description":"Liste des fournisseurs"}},"security":[{"access-token":[]}],"summary":"Lister les fournisseurs avec filtres","tags":["Fournisseurs"]}},"/v1/api/fournisseurs/{id}":{"get":{"operationId":"FournisseursController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Fournisseur trouve"},"404":{"description":"Fournisseur introuvable"}},"security":[{"access-token":[]}],"summary":"Recuperer un fournisseur par id","tags":["Fournisseurs"]},"patch":{"operationId":"FournisseursController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFournisseurDto"}}}},"responses":{"200":{"description":"Fournisseur mis a jour"},"400":{"description":"Donnees invalides"},"404":{"description":"Fournisseur introuvable"},"409":{"description":"Conflit de donnees"}},"security":[{"access-token":[]}],"summary":"Mettre a jour un fournisseur","tags":["Fournisseurs"]},"delete":{"operationId":"FournisseursController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":"Fournisseur supprime"},"404":{"description":"Fournisseur introuvable"}},"security":[{"access-token":[]}],"summary":"Supprimer (soft delete) un fournisseur","tags":["Fournisseurs"]}},"/v1/api/fournisseurs/{id}/toggle-statut":{"patch":{"operationId":"FournisseursController_toggleStatut","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Statut modifie avec succes"},"404":{"description":"Fournisseur introuvable"}},"security":[{"access-token":[]}],"summary":"Activer ou desactiver un fournisseur","tags":["Fournisseurs"]}},"/v1/api/depots":{"post":{"operationId":"DepotsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepotDto"}}}},"responses":{"201":{"description":""}},"tags":["Depots"]},"get":{"operationId":"DepotsController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Depots"]}},"/v1/api/depots/{id}":{"get":{"operationId":"DepotsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Depots"]},"patch":{"operationId":"DepotsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDepotDto"}}}},"responses":{"200":{"description":""}},"tags":["Depots"]},"delete":{"operationId":"DepotsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Depots"]}},"/v1/api/produits":{"post":{"operationId":"ProduitsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProduitDto"}}}},"responses":{"201":{"description":"Produit cree avec succes"},"400":{"description":"Donnees invalides"},"409":{"description":"Produit deja existant"}},"security":[{"access-token":[]}],"summary":"Creer un produit","tags":["Produits"]},"get":{"operationId":"ProduitsController_findAll","parameters":[{"name":"designation","required":false,"in":"query","description":"Filtre designation","schema":{"example":"beaufort","type":"string"}},{"name":"categorieId","required":false,"in":"query","description":"Filtre categorie","schema":{"example":1,"type":"number"}},{"name":"formatBouteilleId","required":false,"in":"query","description":"Filtre format bouteille","schema":{"example":1,"type":"number"}},{"name":"fournisseurId","required":false,"in":"query","description":"Filtre fournisseur","schema":{"example":1,"type":"number"}},{"name":"statut","required":false,"in":"query","description":"Filtre statut","schema":{"example":"ACTIF","type":"string","enum":["ACTIF","INACTIF"]}},{"name":"dateDebut","required":false,"in":"query","description":"Date debut (createdAt) au format ISO","schema":{"example":"2026-04-01","type":"string"}},{"name":"dateFin","required":false,"in":"query","description":"Date fin (createdAt) au format ISO","schema":{"example":"2026-04-30","type":"string"}}],"responses":{"200":{"description":"Liste des produits"}},"security":[{"access-token":[]}],"summary":"Lister les produits avec filtres","tags":["Produits"]}},"/v1/api/produits/{id}":{"get":{"operationId":"ProduitsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Produit trouve"},"404":{"description":"Produit introuvable"}},"security":[{"access-token":[]}],"summary":"Recuperer un produit par id","tags":["Produits"]},"patch":{"operationId":"ProduitsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProduitDto"}}}},"responses":{"200":{"description":"Produit mis a jour"},"400":{"description":"Donnees invalides"},"404":{"description":"Produit introuvable"},"409":{"description":"Conflit de donnees"}},"security":[{"access-token":[]}],"summary":"Mettre a jour un produit","tags":["Produits"]},"delete":{"operationId":"ProduitsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":"Produit supprime"},"404":{"description":"Produit introuvable"}},"security":[{"access-token":[]}],"summary":"Supprimer (soft delete) un produit","tags":["Produits"]}},"/v1/api/produits/{id}/toggle-statut":{"patch":{"operationId":"ProduitsController_toggleStatut","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Statut modifie avec succes"},"404":{"description":"Produit introuvable"}},"security":[{"access-token":[]}],"summary":"Activer ou desactiver un produit","tags":["Produits"]}},"/v1/api/stocks":{"post":{"operationId":"StocksController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStockDto"}}}},"responses":{"201":{"description":""}},"tags":["Stocks"]},"get":{"operationId":"StocksController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Stocks"]}},"/v1/api/stocks/{id}":{"get":{"operationId":"StocksController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Stocks"]},"patch":{"operationId":"StocksController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStockDto"}}}},"responses":{"200":{"description":""}},"tags":["Stocks"]},"delete":{"operationId":"StocksController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Stocks"]}},"/v1/api/ventes":{"post":{"operationId":"VentesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateVenteDto"}}}},"responses":{"201":{"description":""}},"tags":["Ventes"]},"get":{"operationId":"VentesController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Ventes"]}},"/v1/api/ventes/{id}":{"get":{"operationId":"VentesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Ventes"]},"patch":{"operationId":"VentesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateVenteDto"}}}},"responses":{"200":{"description":""}},"tags":["Ventes"]},"delete":{"operationId":"VentesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Ventes"]}},"/v1/api/clients":{"post":{"operationId":"ClientsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClientDto"}}}},"responses":{"201":{"description":""}},"tags":["Clients"]},"get":{"operationId":"ClientsController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Clients"]}},"/v1/api/clients/{id}":{"get":{"operationId":"ClientsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Clients"]},"patch":{"operationId":"ClientsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClientDto"}}}},"responses":{"200":{"description":""}},"tags":["Clients"]},"delete":{"operationId":"ClientsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Clients"]}},"/v1/api/credits":{"post":{"operationId":"CreditsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCreditDto"}}}},"responses":{"201":{"description":""}},"tags":["Credits"]},"get":{"operationId":"CreditsController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Credits"]}},"/v1/api/credits/{id}":{"get":{"operationId":"CreditsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Credits"]},"patch":{"operationId":"CreditsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCreditDto"}}}},"responses":{"200":{"description":""}},"tags":["Credits"]},"delete":{"operationId":"CreditsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Credits"]}},"/v1/api/achats":{"post":{"operationId":"AchatsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAchatDto"}}}},"responses":{"201":{"description":""}},"tags":["Achats"]},"get":{"operationId":"AchatsController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Achats"]}},"/v1/api/achats/{id}":{"get":{"operationId":"AchatsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Achats"]},"patch":{"operationId":"AchatsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAchatDto"}}}},"responses":{"200":{"description":""}},"tags":["Achats"]},"delete":{"operationId":"AchatsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Achats"]}},"/v1/api/casiers-consignes":{"post":{"operationId":"CasiersConsignesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCasiersConsigneDto"}}}},"responses":{"201":{"description":""}},"tags":["CasiersConsignes"]},"get":{"operationId":"CasiersConsignesController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["CasiersConsignes"]}},"/v1/api/casiers-consignes/{id}":{"get":{"operationId":"CasiersConsignesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["CasiersConsignes"]},"patch":{"operationId":"CasiersConsignesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCasiersConsigneDto"}}}},"responses":{"200":{"description":""}},"tags":["CasiersConsignes"]},"delete":{"operationId":"CasiersConsignesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["CasiersConsignes"]}},"/v1/api/depenses":{"post":{"operationId":"DepensesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDepenseDto"}}}},"responses":{"201":{"description":""}},"tags":["Depenses"]},"get":{"operationId":"DepensesController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Depenses"]}},"/v1/api/depenses/{id}":{"get":{"operationId":"DepensesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Depenses"]},"patch":{"operationId":"DepensesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDepenseDto"}}}},"responses":{"200":{"description":""}},"tags":["Depenses"]},"delete":{"operationId":"DepensesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Depenses"]}},"/v1/api/clotures":{"post":{"operationId":"CloturesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClotureDto"}}}},"responses":{"201":{"description":""}},"tags":["Clotures"]},"get":{"operationId":"CloturesController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Clotures"]}},"/v1/api/clotures/{id}":{"get":{"operationId":"CloturesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Clotures"]},"patch":{"operationId":"CloturesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateClotureDto"}}}},"responses":{"200":{"description":""}},"tags":["Clotures"]},"delete":{"operationId":"CloturesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Clotures"]}},"/v1/api/employes":{"post":{"operationId":"EmployesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEmployeDto"}}}},"responses":{"201":{"description":"Employé créé"},"400":{"description":"Erreur lors de la création de l'employé"},"500":{"description":"Erreur serveur"}},"summary":"Create an employe","tags":["Employes"]},"get":{"operationId":"EmployesController_findAll","parameters":[{"name":"search","required":false,"in":"query","description":"Recherche nom/prenom/poste","schema":{"example":"jean","type":"string"}},{"name":"statut","required":false,"in":"query","schema":{"example":"ACTIF","type":"string","enum":["ACTIF","INACTIF"]}},{"name":"page","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"example":1,"allOf":[{"$ref":"#/components/schemas/Object"}]}},{"name":"perPage","required":false,"in":"query","schema":{"minimum":1,"maximum":100,"example":10,"allOf":[{"$ref":"#/components/schemas/Object"}]}}],"responses":{"200":{"description":"Liste des employés"},"400":{"description":"Erreur lors de la récupération des employés"},"500":{"description":"Erreur serveur"}},"summary":"Get all employes","tags":["Employes"]}},"/v1/api/employes/{id}":{"get":{"operationId":"EmployesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Employé trouvé"},"404":{"description":"Employé non trouvé"},"500":{"description":"Erreur serveur"}},"summary":"Get an employe by id","tags":["Employes"]},"patch":{"operationId":"EmployesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmployeDto"}}}},"responses":{"200":{"description":"Employé mis à jour"},"400":{"description":"Erreur lors de la mise à jour de l'employé"},"404":{"description":"Employé non trouvé"},"500":{"description":"Erreur serveur"}},"summary":"Update an employe","tags":["Employes"]},"delete":{"operationId":"EmployesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"204":{"description":"Employé supprimé"},"404":{"description":"Employé non trouvé"},"500":{"description":"Erreur serveur"}},"summary":"Delete an employe","tags":["Employes"]}},"/v1/api/employes/{id}/toggle-statut":{"patch":{"operationId":"EmployesController_toggleStatut","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"number"}}],"responses":{"200":{"description":"Statut modifié"},"404":{"description":"Employé non trouvé"},"500":{"description":"Erreur serveur"}},"summary":"Toggle the statut of an employe","tags":["Employes"]}},"/v1/api/salaires":{"post":{"operationId":"SalairesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSalaireDto"}}}},"responses":{"201":{"description":""}},"tags":["Salaires"]},"get":{"operationId":"SalairesController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Salaires"]}},"/v1/api/salaires/{id}":{"get":{"operationId":"SalairesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Salaires"]},"patch":{"operationId":"SalairesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSalaireDto"}}}},"responses":{"200":{"description":""}},"tags":["Salaires"]},"delete":{"operationId":"SalairesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Salaires"]}},"/v1/api/partenaires":{"post":{"operationId":"PartenairesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePartenaireDto"}}}},"responses":{"201":{"description":""}},"tags":["Partenaires"]},"get":{"operationId":"PartenairesController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Partenaires"]}},"/v1/api/partenaires/{id}":{"get":{"operationId":"PartenairesController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Partenaires"]},"patch":{"operationId":"PartenairesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePartenaireDto"}}}},"responses":{"200":{"description":""}},"tags":["Partenaires"]},"delete":{"operationId":"PartenairesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Partenaires"]}},"/v1/api/auth/login":{"post":{"operationId":"AuthController_login","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginDto"}}}},"responses":{"200":{"description":"Connexion reussie"},"401":{"description":"Identifiants invalides"}},"summary":"Connexion employe","tags":["Auth"]}},"/v1/api/auth/refresh":{"post":{"operationId":"AuthController_refresh","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshTokenDto"}}}},"responses":{"200":{"description":"Access token regenere"},"401":{"description":"Refresh token invalide"}},"summary":"Renouveler access token","tags":["Auth"]}},"/v1/api/auth/me":{"get":{"operationId":"AuthController_me","parameters":[],"responses":{"200":{"description":"Profil charge avec succes"},"401":{"description":"Non authentifie"}},"security":[{"access-token":[]}],"summary":"Profil utilisateur connecte","tags":["Auth"]}},"/v1/api/rapports":{"post":{"operationId":"RapportsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRapportDto"}}}},"responses":{"201":{"description":""}},"tags":["Rapports"]},"get":{"operationId":"RapportsController_findAll","parameters":[],"responses":{"200":{"description":""}},"tags":["Rapports"]}},"/v1/api/rapports/{id}":{"get":{"operationId":"RapportsController_findOne","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Rapports"]},"patch":{"operationId":"RapportsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRapportDto"}}}},"responses":{"200":{"description":""}},"tags":["Rapports"]},"delete":{"operationId":"RapportsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Rapports"]}}},"info":{"title":"DepotBackend API","description":"API de gestion de depot, stock, ventes et clients","version":"1.0.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"access-token":{"scheme":"bearer","bearerFormat":"JWT","type":"http","in":"header"}},"schemas":{"CreateCategoryDto":{"type":"object","properties":{"libelle":{"type":"string","example":"Electromenager","description":"Le libelle de la categorie"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Le statut de la categorie"}},"required":["libelle","statut"]},"SearchCategoryDto":{"type":"object","properties":{"libelle":{"type":"string","example":"Electromenager","description":"Le libelle de la categorie"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Le statut de la categorie"}}},"UpdateCategoryDto":{"type":"object","properties":{}},"CreateFormatsBouteilleDto":{"type":"object","properties":{"libelle":{"type":"string","example":"33cl","description":"Le libelle du format de bouteille"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Le statut du format de bouteille"}},"required":["libelle","statut"]},"UpdateFormatsBouteilleDto":{"type":"object","properties":{}},"CreateTypesCasierDto":{"type":"object","properties":{"libelle":{"type":"string","example":"12 trous","description":"Le libelle du type de casier"},"nbBouteilles":{"type":"number","example":12,"description":"Le nombre de bouteilles dans le casier"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Le statut du type de casier"}},"required":["libelle","nbBouteilles","statut"]},"UpdateTypesCasierDto":{"type":"object","properties":{}},"CreateFournisseurDto":{"type":"object","properties":{"nom":{"type":"string","example":"SOLIBRA","description":"Le nom du fournisseur"},"telephone":{"type":"string","example":"+2250707070707","description":"Le numero de telephone du fournisseur"},"contact":{"type":"string","example":"contact@solibra.ci","description":"L email de contact du fournisseur"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Le statut du fournisseur"}},"required":["nom","telephone","contact","statut"]},"UpdateFournisseurDto":{"type":"object","properties":{}},"CreateDepotDto":{"type":"object","properties":{}},"UpdateDepotDto":{"type":"object","properties":{}},"CreateProduitDto":{"type":"object","properties":{"designation":{"type":"string","example":"Biere Beaufort 50","description":"Designation du produit"},"categorieId":{"type":"number","example":1,"description":"ID de la categorie"},"formatBouteilleId":{"type":"number","example":1,"description":"ID du format de bouteille"},"fournisseurId":{"type":"number","example":1,"description":"ID du fournisseur"},"depotId":{"type":"number","example":1,"description":"ID du depot (optionnel)"},"typeCasierId":{"type":"number","example":1,"description":"ID du type de casier"},"prixVente":{"type":"number","example":6000,"description":"Prix de vente (FCFA)"},"prixAchat":{"type":"number","example":5200,"description":"Prix d achat (FCFA)"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Statut du produit"}},"required":["designation","categorieId","formatBouteilleId","fournisseurId","typeCasierId","prixVente","prixAchat"]},"UpdateProduitDto":{"type":"object","properties":{}},"CreateStockDto":{"type":"object","properties":{}},"UpdateStockDto":{"type":"object","properties":{}},"CreateVenteDto":{"type":"object","properties":{}},"UpdateVenteDto":{"type":"object","properties":{}},"CreateClientDto":{"type":"object","properties":{}},"UpdateClientDto":{"type":"object","properties":{}},"CreateCreditDto":{"type":"object","properties":{}},"UpdateCreditDto":{"type":"object","properties":{}},"CreateAchatDto":{"type":"object","properties":{}},"UpdateAchatDto":{"type":"object","properties":{}},"CreateCasiersConsigneDto":{"type":"object","properties":{}},"UpdateCasiersConsigneDto":{"type":"object","properties":{}},"CreateDepenseDto":{"type":"object","properties":{}},"UpdateDepenseDto":{"type":"object","properties":{}},"CreateClotureDto":{"type":"object","properties":{}},"UpdateClotureDto":{"type":"object","properties":{}},"CreateEmployeDto":{"type":"object","properties":{"firstname":{"type":"string","example":"Jean","description":"Prenom de l employe"},"lastname":{"type":"string","example":"Kouassi","description":"Nom de l employe"},"poste":{"type":"string","enum":["VENDEUR","CAISSIER","GERANT","RESPONSABLE","ADMINISTRATEUR"],"example":"VENDEUR","description":"Poste de l employe"},"phone":{"type":"string","example":"+2250707070707","description":"Numero de telephone de l employe"},"password":{"type":"string","example":"MotDePasseFort123!","description":"Mot de passe de connexion"},"salaireBase":{"type":"number","example":150000,"description":"Salaire de base en FCFA"},"dateEmbauche":{"type":"string","example":"2026-04-29","description":"Date embauche (YYYY-MM-DD)"},"statut":{"type":"string","enum":["ACTIF","INACTIF"],"example":"ACTIF","description":"Statut de l employe"}},"required":["firstname","lastname","poste","phone","password","salaireBase"]},"Object":{"type":"object","properties":{}},"UpdateEmployeDto":{"type":"object","properties":{}},"CreateSalaireDto":{"type":"object","properties":{}},"UpdateSalaireDto":{"type":"object","properties":{}},"CreatePartenaireDto":{"type":"object","properties":{}},"UpdatePartenaireDto":{"type":"object","properties":{}},"LoginDto":{"type":"object","properties":{"phone":{"type":"string","example":"+2250707070707","description":"Numero de telephone de connexion"},"password":{"type":"string","example":"MotDePasseFort123!","description":"Mot de passe du compte employe"}},"required":["phone","password"]},"RefreshTokenDto":{"type":"object","properties":{"refreshToken":{"type":"string","description":"Refresh token JWT","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}},"required":["refreshToken"]},"CreateRapportDto":{"type":"object","properties":{}},"UpdateRapportDto":{"type":"object","properties":{}}}}}