specs / 012-Changes-Refetch-Courts-Stale-Sold

012 - Re-fetch courts (stale Court 4 Sold)

  • Tanggal: 2026-08-09
  • Chat/topik: Court 4 masih tampil & semua Sold di mobile API mode setelah soft-delete

Ringkasan perubahan

Setelah migrasi 3 court (CRT-04 soft-deleted), Android/iOS Time Slot masih memakai RuntimeCatalog lama. Id CRT-04 tidak ada di bulk availability → selalu Sold; display_order 0 menaruhnya di depan. Fix: API mode selalu re-fetch GET /courts sebelum availability. Local mpcdb diselaraskan SQL 005. Dummy 3 court + VIP di Court 3 (Android/iOS/web).

Impact bisnis

Member tidak lagi melihat court retired sebagai Sold; urutan Court 1→2→3 konsisten dengan admin.

Epic / User stories

  • Epic: Court catalog freshness
  • US: Sebagai member, saya ingin daftar court Time Slot selalu mengikuti court aktif di server.

User terdampak

Member Android / iOS (utama); web dummy parity.

Aplikasi terdampak

  • mpc-be: TIDAK — API sudah benar
  • mpc-be-pos: TIDAK (sudah di sesi sebelumnya)
  • mpc-admin: TIDAK
  • mpc-android: PERLU — resolveCourts re-fetch (v1.12)
  • mpc-ios: PERLU — parity (v1.1)
  • mpc-web: PERLU ringan — dummyCourts saja (v0.2); API path sudah fresh
  • mpc-owner / ksr-sync / mpc-pos: TIDAK

Perubahan schema

Tidak ada. Local DB: jalankan migration 005 (sama prod).

Perubahan kode

  • Android MpcRepository.resolveCourts; DummyData; Home open-match labels
  • iOS resolveCourtsForAvailability + availableCourtsFor; DummyData
  • Web dummyCourts + label open match
  • Docs: ios-changes/024, spec, changelogs, versions