Catégories de produits (Administration)
Base URL : /api/v1/admin/org/product-categories
Gestion des catégories de produits. Pour la consultation publique, voir Produits (catalogue).
remarque
Il n'existe pas d'endpoint de liste dédié ici : les catégories se consultent via GET /api/v1/products/categories (voir catalogue).
Types de catégories (kind)
kind | Description | Usage |
|---|---|---|
Buvette | Produits de buvette (café, snacks) | Vente directe |
ReservationMeal | Repas complets | Réservation à l'avance |
ReservationSnackComponent | Éléments de menu (entrée, dessert) | Composition de menu |
Casse
kind est sérialisé en PascalCase ("Buvette"), tandis que les corps de requête acceptent une chaîne libre (aucune validation à la compilation).
POST /admin/org/product-categories
Crée une catégorie.
Permissions : category.create
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | Oui | Nom de la catégorie |
kind | string | Oui | Type |
sort_order | integer | Non | Ordre d'affichage (défaut 0) |
site_id | uuid | Non | Site |
parent_id | uuid | Non | Catégorie parente |
POST /api/v1/admin/org/product-categories
Content-Type: application/json
{
"name": "Pâtisseries",
"kind": "Buvette",
"sort_order": 5
}
Réponse (201) :
{
"message": "Catégorie créée",
"category": {
"id": "uuid",
"name": "Pâtisseries",
"kind": "Buvette",
"sort_order": 5,
"site_id": null,
"parent_id": null,
"is_active": true,
"created_at": "2025-06-01T10:00:00Z"
}
}
PUT /admin/org/product-categories/{id}
Met à jour une catégorie.
Permissions : category.update
| Champ | Type | Requis |
|---|---|---|
name | string | Oui |
kind | string | Oui |
sort_order | integer | Non |
site_id | uuid | Non |
parent_id | uuid | Non |
is_active | boolean | Non (défaut true) |
Réponse (200) : { "message": "Catégorie mise à jour", "category": {...} }
DELETE /admin/org/product-categories/{id}
Permissions : category.delete
Réponse (200) : { "message": "Catégorie supprimée" }
Permissions
| Permission | Description |
|---|---|
category.create / category.update / category.delete | CRUD catégorie |
product.manage | Super-permission couvrant category.* |