Introduces modules/hospitality with 54 routes, BFF proxy, capability-gated nav, CRUD factory, and architecture validation docs. Co-authored-by: Cursor <cursoragent@cursor.com>
3.0 KiB
Hospitality UI Specification — Torbat Food
Version: 1.0
Date: 2026-07-26
Product: Torbat Food (Hospitality Platform)
1. Product vision
Enterprise hospitality platform supporting cafe, restaurant, fast food, bakery, cloud kitchen, food court, catering, and related formats. UI adapts to enabled bundles; disabled modules are hidden from navigation.
2. Design principles
| Principle | Implementation |
|---|---|
| RTL first | App shell, tables, forms use RTL layout |
| Mobile first | Collapsible sidebar, touch-friendly targets (min 44px) |
| Low cognitive load | Grouped nav, consistent page headers, breadcrumbs |
| Warm & welcoming | Orange hospitality accent (--hospitality-accent) |
| Enterprise grade | Real API data, permission/bundle gates, audit export |
| Performance | TanStack Query caching, paginated lists, code-split routes |
3. Layout system
- Root layout:
HospitalityRootLayout— AuthGuard + tenant gate - Hub (
/hospitality/hub): Portal picker without sidebar - Management:
HospitalityPortalShell— sidebar nav, mobile drawer, dark mode toggle
4. Page template (list/CRUD)
Every data page uses createHospitalityListPage:
- Breadcrumb
- PageHeader (title, description, actions)
- Search toolbar + pagination + CSV export
- DataTable with status chips
- Dialog create/edit, ConfirmDialog delete
- Loading / empty / error / bundle-disabled states
5. Dashboard (Executive)
Widgets wired to live APIs:
- Venues count
- Reservations count
- Open POS tickets
- Active kitchen tickets
- Quick actions (reservations, kitchen, POS, analytics)
6. Bundle-gated modules
| Bundle | UI sections |
|---|---|
digital_menu |
Menu, categories, items, modifiers, media |
qr_menu / qr_ordering |
QR menu, ordering, cart, checkout |
table_service / reservation |
Reservations, queue, guests |
pos_lite / pos_pro |
POS, register, payments, discounts |
kitchen |
Display, queue, preparation |
*_connector |
Integration registration pages |
analytics |
Reports, snapshots, inventory overview |
7. Shared components
From @/components/ds: Button, Input, Dialog, Drawer, DataTable, PageHeader, StatCard, Badge, LoadingState, ErrorState, EmptyState, FormField, Select, ConfirmDialog.
Module-specific: HospitalityTablePage, HospitalityStatusChip, HospitalityBundleGate.
8. Accessibility
aria-labelon search, icon buttons- Keyboard: hub → management navigation via standard links
- Focus visible on interactive elements (DS defaults)
9. API contract
All pages consume hospitalityApi → BFF /api/hospitality → service :8009.
Headers: Authorization, X-Tenant-ID.
10. Supported venue formats
Backend VenueFormat enum surfaced in venue create (future): cafe, coffee_shop, restaurant, fast_food, bakery, pastry, ice_cream, juice_bar, cloud_kitchen, food_court, catering, take_away, other.