TorbatYar/docs/hospitality-phase-12-1.md
Mortezakoohjani 5c6a2e78cf feat(platform): seed service registry, deploy all modules, and fix homepage catalog.
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>
2026-07-27 12:39:51 +03:30

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)