mitai-jinkendo/.claude/docs/technical/BLS_FOOD_REFERENCE.md
Lars 919c77fcf8
Some checks failed
Deploy Development / deploy (push) Failing after 52s
Build Test / pytest-backend (push) Successful in 3s
Build Test / lint-backend (push) Successful in 0s
Build Test / build-frontend (push) Failing after 9s
feat: BLS-Stammdaten, FDDB-Mapping und Item-Tagebuch (#106)
Katalog, lernendes Mapping ohne KI, optionale Items und Import-Policy.
Playwright-Smoke und Issue-Audit um Ernährung/Zuordnen/API ergänzt.

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

1.2 KiB
Raw Blame History

BLS Food Reference technische Spec

Stand: 2026-09-12 · Migration 062

Tabellen

  • food_attributes — dynamischer Stoff-/Merkmalskatalog (attr_key, data_type, origin)
  • food_catalog — Lebensmittel (bls_code UNIQUE bei official_bls; manuell ohne BLS-Code)
  • food_attribute_values — typisiertes EAV
  • food_name_mappings — FDDB-Name → food_id (User / global)
  • nutrition_items — Tagebuchzeilen inkl. logged_at
  • nutrition_daily_nutrients — Tages-Rollup numerischer Attribute
  • nutrition_day_marksfasting | incomplete

Layer 1

  • data_layer/food_mapping.py — Normalisierung, Lookup, Learn, Apply, Delete
  • data_layer/nutrition_items.py — Ingest, drei Makro-Summen, Policy, resolve_*_attributes

Import

BLS: Admin-Upload Components + Daten-XLSX (backend/bls/parser.py). Upsert über bls_code / attr_key, nie Delete+Insert offizieller Zeilen.

FDDB: Items persistieren; nutrition_log nur bei leerem Tag oder laut Policy / Bestätigung.

Router

  • /api/bls/* — Suche, eigene Foods, eigene Mappings
  • /api/admin/bls/* — Import, Katalog, Attribute
  • /api/admin/food-mappings — Admin-CRUD
  • /api/nutrition/* — Items, Unmapped, Bulk-Map, Marken, Konflikt-Resolve