schema / tables-preview

Tables preview — production (mpcdb + ksrdb)

  • Sumber: production Postgres (mpc-postgres)
  • Snapshot: 2026-08-11 (setelah migrasi 007013)
  • Conventions: conventions.md. Migrasi: migration/.

mpcdb (OLTP) — 38 tabel

Shared oleh mpc-be, mpc-be-pos, mpc-admin.

Core operasional

TabelnFungsiContoh data
branches1Cabang/venueMAIN — Main
courts3Lapangan (hanya 3 aktif)CRT-01..03 Court 1–3 Active, display_order 1–3
customers3MemberGlen (Platinum); User Test; Donny Baskoro
staff3HR master (login/role)testuser@ Owner Active; john@ Coach Active; sarah@ Coach Inactive
staff_coaches2Profil coach publik (ex coaches)John Padel Rp200k + staff_id; Sarah Tennis Rp250k + staff_id
staff_outlet_assignments3Staff ↔ outlet POS3 assignment primary ke outlet MAIN
bookings19Reservasi court16 Completed, 3 Pending; 18/19 punya transaction_id
transactions17PembayaranMixed 14 Completed + 1 Pending; Booking 1; FnB 1
transaction_items47Line item transaksi(ikut booking / FnB / mixed)
products19Katalogproduct_type: FnB 9, ProShop 5, Rent 5
product_variants0Varian (defer)
product_addons0Add-on (defer)
events2Event klub (name saja)Summer Padel Tournament; Beginner Clinic
membership_tiers3TierPlatinum / Gold / Silver Active
subscriptions3Membership aktif3 Active
vouchers1Kode redeem checkoutWELCOME26 10% channel Both (45/100)
promos2Banner marketing (bukan redeem)Early Bird 30%; After Office Rp50k; channel Both
voucher_redemptions0Ledger redeem voucher— (siap diisi checkout)
store_settings1Setting klub + default branchMetropole; default_branch_id → MAIN; reschedule on
pos_outlets1Outlet POSMPC-MAIN — Metropole Padel Main
pos_devices4Device POSKasir & POS-FNB Active; debug-agent & Smoke Kasir Revoked

Pricing & katalog

TabelnFungsiContoh data
item_groups6Group di bawah product_typeFnB: Makanan, Minuman, Paket, Promo; ProShop: Purchase; Rent: Rental Gear
item_categories10Category anak group (+ court)Minuman→Coffee/Fresh/Healthy; Makanan→Snack/Main/Dessert; court VIP/Regular
time_groups1Window hargaRush Hour
time_group_schedules7Jadwal time grouptiap hari 18:00–21:00
special_days0Hari libur / peak
item_price_overrides2Override hargaCourt SpecialDay Rp900k; Court (base override) Rp800k
tier_benefits4Diskon membershipPlatinum Product 20% / Booking 10%; Gold Product 10%; Silver Product 5%
benefit_usages0Log pemakaian benefit
payment_events0Jejak gateway/payment— (terisi saat payment complete)
stock_ledger0Mutasi stok— (terisi saat sale/adjust)

Reviews & engagement

TabelnFungsiContoh data
review_questions2Pertanyaan post-playRQ-01 court condition (RATING); RQ-02 comments (TEXT)
customer_reviews0Review member— (question siap; review sample belum di prod)
review_answers0Jawaban review
classes1Group classCLS-01 Evening Technique Clinic
matches1Open matchMTCH-01 Open Mixed Doubles Intermediate Open
favorites0Favorit Court/Coach/Class/Player
notifications2In-app notifPayment confirmed; Class reminder

Di-drop / diganti nama

LamaStatus
tasksDROP
amenities / branch_stocksDROP (007)
coachesdiganti staff_coaches

ksrdb (datamart owner) — 8 tabel

TabelnFungsiContoh data
dim_business1Dimensi bisnismpc
dim_branch1Dimensi cabangMain
dim_customer3Dimensi customersync dari customers
fact_transaction17Fakta transaksi= transactions
fact_visit19Fakta booking/visit= bookings (19)
fact_review0Fakta reviewmenunggu customer_reviews + sync
sync_watermark5Cursor incrementalmpc.* entities
users1Login mpc-owner (ex owner_users)owner.ksr@mail.com

Catatan singkat dari snapshot

  1. Booking ↔ trx sudah jauh lebih rapi: 18/19 booking punya transaction_id (sisa 1 pending hold tanpa bayar — normal).
  2. Courts = 3; Court 4 hilang.
  3. Katalog: pakai product_type; group Minuman punya category Coffee (hierarchy hidup). Group bernama Rent masih product_type=ProShop (legacy naming group — logic bisnis tetap dari products.product_type=Rent).
  4. Ledgers (voucher_redemptions / payment_events / stock_ledger) kosong sampai ada transaksi baru setelah deploy kode writer.
  5. fact_visit (19) = bookings (19) — selisih lama sudah hilang setelah Court 4 purge.