# 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_marks` — `fasting` | `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