One Worker, one tenant DB, one new table. Bookings made through Leon's WhatsApp DM persist to orbis-dreamlink — the Dreamlink-organization's tenant database — alongside everything else Leon already writes.
The Per-Tenant Model — Future
When NOVA / Happitogether / external customers (Gaku) become their own tenants, each gets their own D1 with the same template. Hotel bookings stay isolated per-tenant — no cross-tenant database, ever.
Three Architectural Principles at Play
One tenant, one DB
Every paying customer (and Dreamlink itself, as customer #1) gets their own isolated D1. Names follow orbis-{tenant_id} — never orbis-{feature}. A cross-tenant database would leak data between tenants.
Schema as template, data per-tenant
The hotel_bookings table definition lives in the travel-concierge vertical. It gets stamped into each tenant DB that uses travel features. NOVA's bookings, Happitogether's, and Gaku's never share a row.
One LiteAPI account, fan-in
Orbis Pte Ltd (Singapore) holds one LiteAPI account. All tenant Workers use the same key (a Worker secret). Per-tenant trading names give each tenant its own brand on guest receipts. Commission flows to one Orbis bank account; reconciliation splits per-tenant from the booking IDs.
The "no new tables in nova-leon" rule
nova-leon is the legacy DB being decomposed (Phase 3.A flipped 2026-04-25 into orbis-dreamlink). New data lands in the new home, directly. hotel_bookings is born in orbis-dreamlink; never goes near nova-leon.
For the Sandbox MVP+ — what's new vs what's reused