R1 tenant / roles + R2 intake + R3 readiness + R4 showroom + R5 adapter
Restaurant Equipment ERP
R1 membership, R2 serialized intake, R3 readiness, R4 showroom, and an R5 publisher adapter. Server-selected membership, four roles, invite stubs, last-admin guard, tenant-scoped Unit rows, a `released` gate, quote (no hold), exclusive reservation, and terminal sale records. location ≠ readiness ≠ sales. R2 ready ≠ R3 released. Pack ≠ published. Reliable demo is fictional sample data.
- Auth path: Better Auth email/password on Neon. Not live OAuth.
- Invite create ≠ invite sent.
- Queue shells are stubs, not Published workflows.
- R2 intake is recorded evidence only. R3 owns readiness (`released`). R4 owns showroom sale_state. R5 emits ListingRequest.v0 only — pack ≠ published.
- location ≠ readiness ≠ sales. R2 ready ≠ R3 released. Quote does not hold. payment_ref is opaque, not Paid.
- Client tenant_id is never authorization.
Sign inChoose dealerRecord intakeR4 showroom
Design locks: design/platform/restaurant.r1_tenant_roles.v0.json, design/platform/restaurant.r0_auth_provider.v0.json, and design/platform/restaurant.r2_intake.v0.json, design/platform/restaurant.r3_readiness.v0.json, and design/platform/restaurant.r4_showroom.lock.json.