feat(meal-planner): structured output for add_meal_to_meal_plan (v0.11.3)

Map verified mpcreate response to same field layout as get_meal_plan.
Key difference: a00.r.r is an array (take [0]) unlike mpcreateByRecipeId
which returns a plain object. is_from_recipe_box is always false.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-17 12:24:48 +02:00
parent 0ed9d62e4a
commit a26a637c83
6 changed files with 54 additions and 10 deletions
+17 -3
View File
@@ -764,10 +764,24 @@ POST https://api.familywall.com/api/mpcreate
| `type` | ja | Mahlzeiten-Typ: `BREAKFAST`, `LUNCH`, `SNACK`, `DINNER` |
| `clientOpId` | nein | Optionale Client-seitige Idempotenz-ID (wird weggelassen) |
**Response-Struktur:** TBD — Tool liefert Raw JSON zur Verifizierung (→ v0.11.3).
Erwartet: dish-Objekt analog zu `mpcreateByRecipeId`, aber ohne `recipeId`.
**Response-Struktur:**
```
a00.r.r → Array (⚠️ nicht Objekt wie bei mpcreateByRecipeId!)
[0] → neues dish-Objekt
.metaId → neue Dish-ID (z.B. "dish/16282169_20010208")
.date → Datum (z.B. "2026-04-20")
.type → Mahlzeiten-Typ (BREAKFAST/LUNCH/SNACK/DINNER)
.name → Freitext-Name
.recipeId → vom Server generierte Stub-Rezept-ID (isRecipe="false")
.rights.canUpdate → "true"
.rights.canDelete → "true"
a00.cn → "mpcreate" (Endpoint-Echo)
```
**Verifiziert am:** 2026-04-17 (Parameter aus JS-Bundle; Response TBD)
**Hinweis:** Der Server legt intern ein Stub-Rezept (`isRecipe="false"`) an und
verknüpft es mit dem Dish-Objekt. `is_from_recipe_box` ist daher `false`.
**Verifiziert am:** 2026-04-17 via FW_DEBUG=1
### Weitere Meal Planner Endpoints (nicht implementiert)