dish_id obligatoire | integer | ID du plat |
name | string | Nouveau nom (optionnel) |
price | number | Nouveau prix (optionnel) |
tva_nature | string | Nature TVA : immediate=10%, conservable=10/5,5%, alcohol=20% (optionnel). |
description | string | Description (optionnel) |
category_id | integer | Catégorie (optionnel) |
prep_time | integer | Temps de préparation (optionnel) |
show_recipe | boolean | Montrer la recette (ingrédients, étapes) aux clients du menu digital — faux par défaut (optionnel) |
kds_color | string | null | Couleur sur l'écran cuisine, #RRGGBB (optionnel ; null = retirer) |
portions | integer | Portions (optionnel) |
active | boolean | Actif (optionnel) |
ingredients | array | COMPOSITION du plat — REMPLACE toute la composition actuelle (comme l'écran Carte) ; [] = vider. Une ligne par ingrédient : {ingredient_id (id de list_ingredients) OU name (nom exact d'un ingrédient de la maison), quantity (quantité par portion), unit (optionnel : unité de l'ingrédient par défaut, ex. g, kg, cl, pièce)}. TOUT ou RIEN : une ligne invalide et rien n'est écrit, l'erreur liste chaque ligne. |
ingredients_add | array | AJOUTE ou met à jour des lignes SANS retirer les autres (même format que ingredients). Un ingrédient déjà présent voit sa quantité/unité remplacée. |
ingredients_remove | array | Retire ces ingrédients de la composition (ids de list_ingredients ou noms exacts). |
recipe_id | integer | string | null | Fiche recette de la maison reliée au plat (id de list_recipes, « recipe_9050 » accepté). Sert de composition quand le plat n’a pas d’ingrédients propres : les plans de production du plat reprennent alors les ingrédients de la recette. null = délier (optionnel). |
copy_from_dish_id | integer | Reprendre la photo d’un PLAT du restaurant (fichier recopié, aucune génération IA, aucune facturation). confirm:true si la fiche a déjà une photo. |
copy_from_ingredient_id | integer | Reprendre la photo d’un INGRÉDIENT du restaurant (même règle). |
copy_from_recipe_id | integer | Reprendre la photo d’une RECETTE du restaurant (même règle). |
copy_from_product_id | integer | Reprendre la photo d’un PRODUIT du restaurant (même règle). |
image_url | string | PHOTO depuis une adresse https:// PUBLIQUE et DIRECTE vers le fichier (Canva, bibliothèque RapidoCMS, site du client) : téléchargée, contrôlée (JPEG/PNG/WebP/GIF, 8 Mo max, jamais un réseau interne) puis stockée chez FoodEatUp. Aucune facturation. confirm:true si la fiche a déjà une photo. Exclusif avec image_action et copy_from_*. |
image_action | string | PHOTO de la fiche : generate = nouvelle image IA, edit = retouche la photo ACTUELLE. Remplace la photo existante (irréversible) : exige confirm:true. |
image_instruction | string | Avec generate : ce que la photo doit montrer (défaut : nom + description de la fiche). Avec edit : ce qu'il faut changer, ex. « enlève le fond », « plus lumineux ». |
confirm | boolean | Obligatoire dès que image_action est fourni : remplacer la photo est irréversible. |