# Hospitality CRUD Validation

> Phase: `hospitality-frontend-production-validation` · 2026-07-28

## Shared list engine

`HospitalityListCrudPage` + `hospitalityResources` + `hospitalityApi` (BFF `/api/hospitality`).

Verified per page:

| Capability | Result |
| --- | --- |
| List from real API | PASS |
| Create (when API exposes create/upsert) | PASS |
| Read/detail drawer | PASS |
| Update (only when `api.update` exists) | PASS — venues/branches/menus/configurations |
| Delete (only when `api.remove` exists) | PASS — venues/branches/menus |
| Bulk delete | PASS when remove exists |
| Search / filter / sort / pagination | PASS (table page) |
| Export CSV / print | PASS |
| Lifecycle row actions (status/submit/void/close) | PASS where APIs exist |
| Empty / loading / error | PASS |
| BundleGate + FeatureLock | PASS via `bundleFeature` |
| No fake CRUD buttons | PASS — gated on api methods |
| Surface honesty banner | PASS |

## Full CRUD (update+delete)

venues · branches · menus

## Create + list + get (published API; no backend PATCH)

dining-areas · tables · menu categories/items/modifiers/options/availability/media · QR · carts · POS registers/payments/discounts/tax · kitchen stations · connectors · roles · permissions · analytics reports · …

## Create + lifecycle actions

reservations · waitlist · service requests · POS tickets (void) · POS shifts (close) · QR ordering (submit) · kitchen tickets/items (status)

## Read-only / report views (live filtered API)

pickup/online orders · order timeline · invoices · receipts · inventory · analytics snapshots · kitchen preparation filter

## Failures

None. No disconnected CRUD UI. No inventing update endpoints.
