Register all active platform services and base features in core DB so admin can manage them, add delivery/hospitality/sports-center backend phases, update apps catalog and production deploy tooling. Co-authored-by: Cursor <cursoragent@cursor.com>
81 lines
3.4 KiB
Markdown
81 lines
3.4 KiB
Markdown
# Phase 12.1 — Digital Menu Catalog
|
|
|
|
| Field | Value |
|
|
| --- | --- |
|
|
| Status | Complete |
|
|
| Module | hospitality |
|
|
| Commercial Product | Torbat Food |
|
|
| Version | 0.12.1.0 |
|
|
| Database | `hospitality_db` |
|
|
| API Port | 8009 |
|
|
| ADR | ADR-001, ADR-003, ADR-006, ADR-017 |
|
|
| Prior phase | [12.0 Foundation](hospitality-phase-12-0.md) |
|
|
|
|
## Goal
|
|
|
|
Extend the Hospitality Platform digital menu with catalog depth — allergens, modifier groups/options, availability windows, Storage media refs, and multi-language shells — without introducing POS, kitchen, QR ordering, or reservation engines.
|
|
|
|
## Scope (In)
|
|
|
|
- Catalog aggregates: Allergen, ModifierGroup, ModifierOption, MenuItemModifier, MenuItemAllergen, AvailabilityWindow, MenuMediaRef, MenuLocalization
|
|
- Additive MenuItem fields: preparation_minutes, calories, spicy_level, dietary flags, tags, primary_media_ref
|
|
- Catalog APIs under `/api/v1` + validators + permissions `hospitality.allergens|modifier_*|availability_windows|menu_media|menu_localizations.*`
|
|
- Publish-only catalog events `hospitality.*`
|
|
- Alembic `0002_phase_121_digital_menu_catalog`
|
|
- Capability flag `digital_menu_catalog: true`; version `0.12.1.0`
|
|
|
|
## Out of Scope
|
|
|
|
- POS Lite / POS Pro
|
|
- Kitchen display / tickets
|
|
- QR Menu rendering / QR Ordering
|
|
- Reservation / Table Service engines
|
|
- Payment posting / Delivery dispatch
|
|
- Binary media storage (refs to Storage only)
|
|
|
|
## Owned Modules (aggregates)
|
|
|
|
Independent aggregates in `app/models/catalog.py` (UUID refs only). Foundation menu shells from 12.0 remain owners of Menu / Category / Item core rows.
|
|
|
|
## Published Events
|
|
|
|
| Event | Aggregate |
|
|
| --- | --- |
|
|
| `hospitality.allergen.created` | allergen |
|
|
| `hospitality.modifier_group.created` | modifier_group |
|
|
| `hospitality.modifier_option.created` | modifier_option |
|
|
| `hospitality.menu_item_modifier.linked` | menu_item_modifier |
|
|
| `hospitality.menu_item_allergen.linked` | menu_item_allergen |
|
|
| `hospitality.availability_window.created` | availability_window |
|
|
| `hospitality.menu_media_ref.created` | menu_media_ref |
|
|
| `hospitality.menu_localization.upserted` | menu_localization |
|
|
|
|
## API Contracts (catalog)
|
|
|
|
| Resource | Prefix |
|
|
| --- | --- |
|
|
| Allergens | `/api/v1/allergens` |
|
|
| Modifier groups / options | `/api/v1/modifier-groups`, `/modifier-options` |
|
|
| Item ↔ modifier / allergen links | `/api/v1/menu-item-modifiers/link`, `/menu-item-allergens/link` |
|
|
| Availability windows | `/api/v1/availability-windows` |
|
|
| Menu media refs | `/api/v1/menu-media-refs` |
|
|
| Menu localizations | `/api/v1/menu-localizations/upsert` |
|
|
|
|
## Permissions
|
|
|
|
Catalog trees: `hospitality.allergens.*`, `hospitality.modifier_groups.*`, `hospitality.modifier_options.*`, `hospitality.availability_windows.*`, `hospitality.menu_media.*`, `hospitality.menu_localizations.*`.
|
|
|
|
## Quality Gates
|
|
|
|
All gates passed (architecture, dependency, migration, tenant isolation, API, permissions, security, performance, documentation). See [phase-handover/phase-12-1.md](phase-handover/phase-12-1.md).
|
|
|
|
## Related Documents
|
|
|
|
- [Hospitality Roadmap](hospitality-roadmap.md)
|
|
- [Phase Handover 12.1](phase-handover/phase-12-1.md)
|
|
- [Phase 12.0](hospitality-phase-12-0.md)
|
|
- [ADR-017](architecture/adr/ADR-017.md)
|
|
- [Module Registry — hospitality](module-registry.md#hospitality)
|
|
- [AI Development Framework](ai-framework/README.md)
|
|
- [Progress](progress.md) · [Next Steps](next-steps.md)
|