Unify commercial runtime ownership across backend and frontend so platform, experience, and hospitality modules use the shared commercial source of truth. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .. | ||
| components | ||
| constants | ||
| design-system | ||
| features | ||
| hooks | ||
| pages | ||
| services | ||
| types | ||
| index.ts | ||
| README.md | ||
Hospitality Module (Torbat Food)
Commercial product: Torbat Food
Route prefix: /hospitality
Backend: hospitality-service port 8009
BFF: /api/hospitality/*
Structure
modules/hospitality/
├── components/ # Portal shell, CRUD factory, bundle gate
├── constants/ # Navigation, permissions
├── design-system/ # Tokens, table page, status chips
├── features/ # Page implementations (54 routes)
├── hooks/ # Capabilities, lookups
├── pages/ # Shared loaders/errors
├── services/ # hospitality-api.ts
└── types/ # DTO-aligned types
Architecture
- Thin routes in
app/hospitality/**/page.tsxre-export fromfeatures/ - Business logic lives exclusively under
modules/hospitality/ - Shared UI from
@/components/ds(design system) - TanStack Query keys:
["hospitality", tenantId, ...]
Capabilities
Navigation and pages respect GET /capabilities feature flags and bundle licensing via HospitalityBundleGate.
Scripts
node scripts/gen-hospitality-api.mjs # Regenerate API client
node scripts/scaffold-hospitality-module.mjs # Regenerate routes + feature stubs