Rezept-Schnittstelle - Mengen beim Zusammenfuehren nie verwerfen #232

Closed
opened 2026-10-01 15:38:37 +02:00 by lena · 2 comments
Collaborator

Die Kochbuch-App uebertraegt aggregierte Einkaufszettel ueber die Rezept-Schnittstelle (Story #98, docs/api/recipe-integration.md). Beim Zusammenfuehren mit einem vorhandenen Eintrag ging eine nicht-numerische Menge verloren ("400 g" + "200 g" ergab "400 g"), und die alte Menge eines bereits abgehakten Artikels wurde mitaddiert.

Akzeptanzkriterien

  • Zwei reine Ganzzahlen werden addiert ("2" + "3" = "5").
  • Alles andere wird angehaengt ("400 g" + "200 g" = "400 g + 200 g"), nichts wird verworfen.
  • Nur ein aktiver Eintrag (auf der Liste) zaehlt; die alte Menge eines abgehakten Artikels wird ignoriert.
  • Es wird nie gekuerzt. Passt die zusammengefuehrte Menge nicht in den Eintrag, wird die Zutat ein separater Eintrag ohne Menge, dessen Name alles enthaelt ("3,5 Stueck + 150 g Zwiebeln (1,5 Stueck fuer Suppe + ...)"); der vorhandene Eintrag bleibt unveraendert. Zwei Eintraege fuer denselben Artikel sind dafuer akzeptiert (Entscheidung des Menschen 2026-10-01).
  • Mengenlimit 40 -> 100 Zeichen, Namenslimit 100 -> 500 Zeichen (die Rezept-App selbst bleibt bei 100 pro Name).
Die Kochbuch-App uebertraegt aggregierte Einkaufszettel ueber die Rezept-Schnittstelle (Story `#98`, `docs/api/recipe-integration.md`). Beim Zusammenfuehren mit einem vorhandenen Eintrag ging eine nicht-numerische Menge verloren ("400 g" + "200 g" ergab "400 g"), und die alte Menge eines bereits abgehakten Artikels wurde mitaddiert. ## Akzeptanzkriterien - Zwei reine Ganzzahlen werden addiert ("2" + "3" = "5"). - Alles andere wird angehaengt ("400 g" + "200 g" = "400 g + 200 g"), nichts wird verworfen. - Nur ein aktiver Eintrag (auf der Liste) zaehlt; die alte Menge eines abgehakten Artikels wird ignoriert. - Es wird nie gekuerzt. Passt die zusammengefuehrte Menge nicht in den Eintrag, wird die Zutat ein separater Eintrag ohne Menge, dessen Name alles enthaelt ("3,5 Stueck + 150 g Zwiebeln (1,5 Stueck fuer Suppe + ...)"); der vorhandene Eintrag bleibt unveraendert. Zwei Eintraege fuer denselben Artikel sind dafuer akzeptiert (Entscheidung des Menschen 2026-10-01). - Mengenlimit 40 -> 100 Zeichen, Namenslimit 100 -> 500 Zeichen (die Rezept-App selbst bleibt bei 100 pro Name).
lena self-assigned this 2026-10-01 15:38:37 +02:00
Author
Collaborator

Claimed by session "Kochbuch-App Einkaufslisten-Schnittstelle [a738c3]"

Nachtraeglich angelegt: die Arbeit wurde in dieser Sitzung umgesetzt, waehrend git.butzei.de nicht erreichbar war; Commits e6d718e7, de95a1af sind bereits auf master.

Claimed by session "Kochbuch-App Einkaufslisten-Schnittstelle [a738c3]" Nachtraeglich angelegt: die Arbeit wurde in dieser Sitzung umgesetzt, waehrend git.butzei.de nicht erreichbar war; Commits e6d718e7, de95a1af sind bereits auf master.
Author
Collaborator

Umgesetzt und auf master.

Umfang: Verlustfreies Zusammenfuehren von Mengen in WriteMissingIngredientsToShoppingListCommandHandler (Ganzzahlen addiert, sonst mit " + " angehaengt, nur aktive Eintraege zaehlen). Ueberlauf in einen separaten Eintrag statt Kuerzen oder Ablehnen. ShoppingQuantity 40 -> 100, ShoppingProductName 100 -> 500 (reine Validierung, Spalten sind text, keine Migration). Lange Namen brechen in der Liste jetzt um statt per CSS abgeschnitten zu werden.

Tests: Handler-Tests fuer Summe, Anhaengen (mehrere Faelle), keine eingehende Menge, abgehakter Artikel mit Altmenge, doppelte Zutat in einem Aufruf, Ueberlauf bei Menge und bei Herkunft.

Entscheidungen: Keine Einheiten-Umrechnung (der Mensch akzeptiert "200 g + 400 g"). Namenslimit 500 statt der besprochenen 300, weil ein Ueberlauf-Name (Menge 100 + Name 100 + Herkunft 200) bis ca. 400 Zeichen erreicht. Eine einzelne Zutat ueber den Eingangslimits wird mit 400 abgelehnt (nichts wird geschrieben), nicht in einen Ueberlauf umgewandelt.

Commits: e6d718e7, de95a1af

Umgesetzt und auf master. **Umfang:** Verlustfreies Zusammenfuehren von Mengen in `WriteMissingIngredientsToShoppingListCommandHandler` (Ganzzahlen addiert, sonst mit " + " angehaengt, nur aktive Eintraege zaehlen). Ueberlauf in einen separaten Eintrag statt Kuerzen oder Ablehnen. `ShoppingQuantity` 40 -> 100, `ShoppingProductName` 100 -> 500 (reine Validierung, Spalten sind text, keine Migration). Lange Namen brechen in der Liste jetzt um statt per CSS abgeschnitten zu werden. **Tests:** Handler-Tests fuer Summe, Anhaengen (mehrere Faelle), keine eingehende Menge, abgehakter Artikel mit Altmenge, doppelte Zutat in einem Aufruf, Ueberlauf bei Menge und bei Herkunft. **Entscheidungen:** Keine Einheiten-Umrechnung (der Mensch akzeptiert "200 g + 400 g"). Namenslimit 500 statt der besprochenen 300, weil ein Ueberlauf-Name (Menge 100 + Name 100 + Herkunft 200) bis ca. 400 Zeichen erreicht. Eine einzelne Zutat ueber den Eingangslimits wird mit 400 abgelehnt (nichts wird geschrieben), nicht in einen Ueberlauf umgewandelt. Commits: e6d718e7, de95a1af
lena closed this issue 2026-10-01 15:38:38 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/todo#232
No description provided.