Skip to main content

Go-Live Audit — Slice B: Housekeeping · F&B/POS · Banquet · Spa

Date: 2026-04-25 Domains: 4. Housekeeping · 5. F&B/POS · 6. Banquet · 7. Spa Total checks: 84

Verdict: 🟢 GREEN — proceed with launch​

No P0 blockers detected. Core operational paths complete across all four domains.

Scorecard​

Domain✅ Done⚠️ Partial🔴 Stub❌ MissingP0
4. Housekeeping (25)194200
5. F&B / POS (35)285200
6. Banquet & Events (14)103100
7. Spa (10)72100
TOTAL (84)64 (76 %)14 (17 %)6 (7 %)00

P1 Should-Fix List (pre-launch)​

  1. Room enrichment for arrivals/departures — Phase-2 ReservationServiceClient integration
  2. Bill email endpoint missing (/orders/:id/email is a stub)
  3. Puppeteer for contract PDFs runs inline in Docker (rootless mode TODO — BNQ-027)
  4. Therapist availability JSON not validated
  5. Auto-reorder reads cross-service DB directly (STRICT-TODO; should use ServiceClient)
  6. Costing reads cross-service DB directly (STRICT-TODO)
  7. Spa folio posting is a stub endpoint (Phase 2 integration)

Stub / TODO Register​

Housekeeping (4)​

FileLineNote
rooms.service.ts145TODO Phase 2: ReservationServiceClient for arrivals/departures
rooms.service.ts160TODO Phase 2: GuestServiceClient for DND preference
auto-reorder.service.ts8STRICT-TODO: replace cross-service DB access
task.dto.ts120TODO: add @Sensitive decorator

POS (2)​

FileLineNote
main.ts15STRICT-TODO: install missing @types
order-void.service.spec.ts220TODO: partial refund not supported

Banquet (3)​

FileLineNote
catering.service.ts42TODO (BNQ-016): per-property tax rates
contracts.service.ts380TODO (BNQ-027): Puppeteer rootless container
costing.service.ts5STRICT-TODO: replace cross-service DB access

Spa (1)​

FileLineNote
main.ts15STRICT-TODO: install missing @types

Detailed checklist results​

4. Housekeeping (19 / 25 done)​

Implemented:

  • Room status transitions with validation (DIRTY / CLEAN / INSPECTED / OOO / OOS)
  • Task lifecycle: creation, assignment, completion, inspection
  • Maintenance requests with SLA tracking
  • Lost & Found workflow with claim / disposal
  • Linen inventory movement tracking

Gaps (Phase 2):

  • Room enrichment (arrivals, departures, DND) — TODO ReservationServiceClient / GuestServiceClient
  • Shift handover notes (stub)
  • VIP room checklist (stub)

5. F&B / POS (28 / 35 done)​

Implemented:

  • Full order lifecycle: creation, items, KOT, bill, payment
  • Order types: dine-in, takeaway, room service, banquet
  • KOT generation with full status lifecycle
  • Bill split (even and by-item)
  • Payment modes: cash, card, UPI, room charge
  • Service charge and discounts
  • Shift and cash drawer reconciliation
  • Sales reporting by outlet / category / staff

Gaps (Phase 2):

  • Bill email endpoint (stub)
  • Happy hour / time-based pricing (PricingRuleService stub)
  • Split tender (single payment mode per order — sequential payments work around)

6. Banquet & Events (10 / 14 done)​

Implemented:

  • Event booking lifecycle (INQUIRY → QUOTATION → TENTATIVE → CONFIRMED → COMPLETED)
  • Venue management with multiple capacity layouts
  • Function sheet with JSON-based menu, AV, timeline, staffing
  • Event payments (advance, milestone, final)
  • Contract generation via Puppeteer
  • Event line items and group-booking linkage

Gaps (Phase 2):

  • Pre-function setup checklist (stub)
  • Post-function teardown checklist (stub)
  • Floor plan editor (raw string field, no visual UI)

7. Spa & Activities (7 / 10 done)​

Implemented:

  • Treatment catalog with pricing and duration
  • Therapist roster with availability (JSON)
  • Spa room management
  • Appointment booking and status management
  • Spa packages with bundled treatments
  • Activities and activity bookings

Gaps (Phase 2):

  • Folio posting (stub endpoint only)
  • Commission tracking (stub)
  • Therapist pricing tiers (single price model)

Risk Register (top 10)​

#RiskLikelihoodImpactMitigation
1Room enrichment missing on launchHIGHMEDPhase-2 integration OR manual workaround
2Bill email not implementedMEDMEDAdd endpoint pre-launch
3Puppeteer inline in DockerMEDMEDMove to sidecar pre-launch
4Auto-reorder DB accessMEDMEDServiceClient migration
5Costing DB accessMEDLOWServiceClient migration
6Spa folio stubLOWHIGHPhase 2 integration
7SLA monitoring lazy readsLOWMEDScheduled job Phase 2
8Linen auto-reorder untested at scaleLOWMEDLoad test pre-launch
9DND enrichment missingLOWMEDPhase 2
10Shift handover not implementedLOWLOWPhase 2 if requested

Deployment readiness​

✅ All P0 items implemented + tested ✅ JWT auth guards on all endpoints ✅ Tenant isolation enforced ✅ Audit trails via @Audit decorator ✅ Database migrations prepared ⚠️ Bill email endpoint (P1) ⚠️ ReservationServiceClient integration (P1) ⚠️ Puppeteer sidecar setup (P1) ⚠️ Load-test auto-reorder (P1) ⚠️ Therapist availability validator (P1)

Conclusion​

GREEN for launch on Slice B domains. Ship the 7 P1 items pre-launch where possible; defer the 6 Phase-2 stubs to post-launch roadmap.