diff --git a/api/index.php b/api/index.php index 43e69b5..93dd68b 100644 --- a/api/index.php +++ b/api/index.php @@ -2702,7 +2702,16 @@ function saveProduct(PDO $db): void { $shoppingName = array_key_exists('shopping_name', $input) && $input['shopping_name'] !== null && $input['shopping_name'] !== '' ? $input['shopping_name'] : computeShoppingName($input['name'], $input['category'] ?? '', $input['brand'] ?? ''); - + // Sous-catégorie : toujours optionnelle, sauf obligatoire pour les boissons + $category = $input['category'] ?? ''; + $subcategory = trim($input['subcategory'] ?? ''); + $validSubcategories = ['vin', 'biere', 'spiritueux', 'soda', 'jus', 'eau', 'autre']; + if ($category === 'bevande' && ($subcategory === '' || !in_array($subcategory, $validSubcategories, true))) { + http_response_code(400); + echo json_encode(['error' => 'subcategory_required', 'message' => 'Sous-catégorie requise pour les boissons']); + return; + } + if ($subcategory === '') $subcategory = null; // Sous-catégorie obligatoire uniquement pour les boissons $category = $input['category'] ?? ''; $subcategory = trim($input['subcategory'] ?? '');