specs / 011-Changes-Three-Courts-Sort-Parity

011 - Three courts + sort parity (mobile & POS)

  • Tanggal: 2026-08-09
  • Chat/topik: Production 3 courts saja; Court 3 VIP; display_order 1–3; POS sort = mobile

Ringkasan perubahan

Data court dipangkas ke 3 aktif (CRT-01CRT-03) dengan display_order 1–3; Court 3 pakai kategori VIP. mpc-be-pos diubah dari sort name ASC ke display_order ASC (+ exclude soft-deleted) agar kolom schedule POS selaras dengan member apps.

Impact bisnis

Roster court konsisten di app member dan POS (Court 1 → 2 → VIP di posisi 3). Court lama di-soft-delete agar history booking tetap aman.

Epic / User stories

  • Epic: Court catalog parity across channels
  • US: Sebagai kasir/member, saya ingin urutan court sama di POS dan mobile, agar tidak bingung saat booking.

User terdampak

Member (mobile/web), kasir POS, admin (data seed/migrasi).

Aplikasi terdampak

  • mpc-be: TIDAK — sudah display_order ASC
  • mpc-be-pos: PERLU — sort + filter deleted_at (v1.4)
  • mpc-admin: PERLU ringan — seed 3 court + kategori (v0.3; bukan UI baru)
  • mpc-android: TIDAK — sudah sort displayOrder
  • mpc-ios: TIDAK — sudah sort displayOrder
  • mpc-web: TIDAK — sudah map displayOrder
  • mpc-owner: TIDAK
  • ksr-sync: TIDAK
  • mpc-pos: TIDAK — ikut urutan API schedule

Perubahan schema

Tidak ada kolom baru. Data/migration: soft-retire court non-trio; set category_id + display_order pada CRT-01…03. File: mpc-dev/docs/schema/migration/005-three-courts-display-order.md.

Perubahan kode

  • mpc-be-pos/internal/pos/repository.goFindActiveCourts order display_order asc, deleted_at IS NULL
  • mpc-dev/docs/api/be-pos.md + changelog v1.4
  • mpc-admin/.../prisma/seed.ts — 3 courts Active + VIP/Regular categories
  • Migration + versions index