recipe_id obligatoire | integer | ID de la recette |
name | string | Nouveau nom (optionnel) |
desc | string | Courte description (optionnel, PAS les étapes/ingrédients) |
dificulty | integer | Difficulté 1-3 (optionnel) |
preparation_time | integer | Temps de préparation en minutes (optionnel) |
how_many_people | integer | Nombre de personnes / portions (optionnel) |
status | integer | Statut (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. |
ingredients | array | Remplace TOUS les ingrédients si fourni. Items {name|ingredient_id, quantity, unit}. |
steps | array | Remplace TOUTES les étapes si fourni. Items {description, preparation_time?}. |
category_ids | array | IDs catégories (multi) — remplace si fourni. |
category_names | array | Noms catégories (multi, créées si absentes) — remplace si fourni. |
recommended_price | number | Prix de vente recommandé (optionnel) |
target_margin_rate | number | Taux de marge cible en % (optionnel) |
margin_basis | string | Base de marge (optionnel, défaut marge) |
price_includes_tax | boolean | Prix saisi TTC ? (optionnel) |
tax_rate | number | Taux de TVA en % (optionnel) |