kiwi/app/models/schemas
pyr0ball 0de6182f48 feat(scan): barcode miss fallback chain — Open Beauty Facts + Open Products Facts
When a barcode is not found in Open Food Facts, the service now tries
Open Beauty Facts and Open Products Facts before giving up. All three
share the same API format; only the host URL differs.

When all databases miss, the scan endpoint sets needs_manual_entry=true
in the result. The frontend detects this, shows a calm informational
message, and switches to manual entry mode automatically.

Also fixes a latent bug where not-found scans showed 'Added: item to
pantry' due to the success condition checking barcodes_found (always 1)
instead of added_to_inventory.

Closes #65
2026-04-16 08:30:49 -07:00
..
__init__.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
household.py feat: add MessageResponse schema; wire response_model on leave + remove-member endpoints 2026-04-04 22:47:39 -07:00
inventory.py feat(scan): barcode miss fallback chain — Open Beauty Facts + Open Products Facts 2026-04-16 08:30:49 -07:00
meal_plan.py fix(meal-planner): validate meal_type path param, enforce store whitelist safety, add week_start date validation, make PrepTask frozen 2026-04-12 13:51:50 -07:00
ocr.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
quality.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
receipt.py chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
recipe.py feat: metric/imperial unit preference (#81) 2026-04-15 23:04:29 -07:00
saved_recipe.py feat: saved recipes, recipe browser, and recipe detail panel 2026-04-08 14:35:02 -07:00