specs / 019-Changes-Schema-Ops-Hardening

019 - Schema Ops Hardening (katalog, diskon, HR, ledger)

  • Tanggal: 2026-08-10
  • Chat/topik: Implement plan schema ops hardening end-to-end

Ringkasan perubahan

  • Katalog: products.product_type + cascade group/category; conventions.
  • Diskon: promo channel (display); voucher channel/auto_apply + redemptions; tier max stack + tax.
  • Pricing: slot-time GetPrice for products/Rent; Weekday/Weekend overrides in admin.
  • Cleanup: DROP tasks, hard-delete Court 4, soft-delete debug POS devices, events.name only.
  • Ledgers: bookings.transaction_id, payment_events, stock_ledger.
  • HR: staff_coaches + staff_outlet_assignments; POS login outlet gate.
  • Seed engagement/reviews/tier_benefits (local + prod).

Impact bisnis

Schema lebih jelas untuk katalog FnB; diskon tidak bentrok; audit pembayaran/stok; HR siap multi-outlet.

Epic / User stories

  • Epic: Harden OLTP schema & ops integrity
  • US: Sebagai admin, saya memilih product type → group → category tanpa bingung.
  • US: Sebagai kasir, saya hanya login di outlet yang di-assign.

User terdampak

Admin, kasir POS, member (data seed), ops DB.

Aplikasi terdampak

  • mpc-be: PERLU
  • mpc-be-pos: PERLU
  • mpc-admin: PERLU
  • mpc-pos: TIDAK (error string dari BE cukup)
  • mpc-android / ios / web: TIDAK (API /coaches path sama; product_type JSON baru — clients inventory jarang)
  • ksr-sync / owner: TIDAK kode (fact_review diisi manual sample)
  • mpc-owner: TIDAK

Perubahan schema

Migrations 010013 di mpc-dev/docs/schema/migration/. Prod + local applied.

Perubahan kode

Admin product forms cascade; BE pricing/discount/complete payment; POS auth outlet assignment; coaches table rename.