mitai-jinkendo/.claude/docs/functional/BLS_FOOD_REFERENCE.md
Lars 132a364a3a
All checks were successful
Deploy Development / deploy (push) Successful in 1m6s
Build Test / pytest-backend (push) Successful in 5s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Successful in 29s
feat: Zuordnen ohne Freeze und zuerst die letzten Wochen
Katalogsuche und Bestätigen blockieren die UI nicht mehr; offene Namen starten bei den aktuellen Tagebucheinträgen, alter Ballast bleibt unter Alle.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 16:14:24 +02:00

2.4 KiB

BLS-Lebensmittelreferenz und FDDB-Mapping

Stand: 2026-09-12 · Status: Phase 1 (Umsetzung)

WAS

Optionale Grundlage für verlässliche Nährwerte: offizieller Bundeslebensmittelschlüssel (BLS) 4.0 plus manuelle Katalogerweiterung, lernendes Mapping von FDDB-Bezeichnern, persistierte Tagebuchzeilen. Reine Tagesmakros bleiben First Class.

Zuordnung (UX)

Offene Zuordnungen zeigen Vorschläge in der Zeile (z. B. Haferflocken → Hafer Flocken); Bestätigen ohne Dialog. Mehrere nahe Treffer werden gekennzeichnet. Fehlt ein Treffer (z. B. Salz), Neu anlegen in derselben Zeile. Zusätzlich Popup-Suche. Nicht-Gramm-Einheiten (Stück, EL, TL, …) bekommen ein Gramm-pro-Einheit-Feld am Mapping. Vorschläge und Katalogsuche laufen nur für die sichtbare Arbeit, nicht über alle offenen Namen auf einmal. Die Offene-Liste startet bei den letzten 4 Wochen; ältere Namen (z. B. Getreide nach Glutenverzicht) bleiben unter „Alle“ und müssen nicht gemappt werden.

FDDB-Listen / eigene Rezepte

FDDB-Tagebuchexport fasst selbst angelegte Listen oft zu einer Zeile (Rezeptname + Menge) zusammen. Die Zutaten stehen in einem separaten Listen-Export (lists_*.csv, Spalte produkte). Ablauf: Listen importieren → passende Tagebuchzeilen werden als Rezept verknüpft → Zutaten zuordnen, nicht das Rezept als Ganzes. Unvollständige Zutaten-Mappings fallen auf die FDDB-Makros der Tagebuchzeile zurück.

Gelernte Zuordnungen und Listen lassen sich als JSON sichern und auf einer anderen Instanz (Dev → Prod) wieder einspielen. Offizielle Lebensmittel werden über den BLS-Code gefunden — der BLS-Katalog muss auf dem Ziel bereits importiert sein.

Fachliche Regeln

  • BLS-Code (bls_code, Stoff-attr_key) bleibt die stabile Identität bei Reimports.
  • BLS 4.0 (~7140 Lebensmittel) ist frei nutzbar (MRI / blsdb.de); Dateien nicht im Git.
  • Mapping ohne KI: Normalisierung + exakter Lookup (User vor Global) + Bestätigung neuer Namen.
  • Gelernte Zuordnungen bleiben dauerhaft, sind aber änder- und löschbar.
  • Ungemappte / Fertiggerichte: FDDB-Makros, keine erfundenen Mikros.
  • Fasten und „unvollständig“ sind explizite Marken, kein Auto-Schluss aus fehlendem Import.
  • Import-Policy (Profil): nachfragen / Katalog überschreiben / FDDB überschreiben / Makros behalten.

Später

Platzhalter (Registry) für Mikros, Esszeitpunkte (logged_at), Fasten; Bezug Gitea #106 (Grundlage) und #75 (Folge).