MPC Backend — Version Changelog
Versi aktif berikutnya: v1.13 (naik dari v1.12). Chat sama → jangan bump, update bullet saja.
Independen dari app lain. Indeks: mpc-dev/docs/versions/README.md. API: mpc-dev/docs/api/be.md.
v1.12 — 2026-08-20
GET /inventory: response product menyertakancategory(=product_type) supaya member apps bisa split Court Café (FnB) vs Pro Shop tanpa bergantung field yang hilang; ProShop tidak lagi nyasar ke section F&B.- Register / update profile: nomor HP wajib unik (normalisasi digit,
08…≈+62…); errorphone already registered.
v1.11 — 2026-08-20
- Product: expose
gallery(JSON URL array, default[]) alongside existingimage_url— migration workspace027. Admin uploads multi photos to Firebase; member apps still useimage_urlas primary. api_contract.md: documentgalleryon product list responses.
v1.10 — 2026-08-20
- OTP registrasi / reset password nyata:
POST /auth/otp/sendgenerate kode 4 digit, simpan hash diemail_otps(TTL 10 menit, cooldown 60 detik, max 5 percobaan), kirim via Resend. Mock1234dihapus. POST /auth/otp/verifydanPOST /auth/password/resetmemverifikasi hash + expiry, lalu menghapus OTP.- Email tidak terdaftar:
otp/sendtetap 200 tanpa kirim (anti-enumerasi). Resend mati / gagal: 500. Cooldown: 429. - Migration workspace
026-email-otps.EMAIL_FROMharus domain yang sudah verified di Resend.
v1.9 — 2026-08-15
- Promo:
image_url+display_order(migration025);GET /content/homeactive_promos[]diurutkandisplay_order ASC, created_at ASC— dipakai carousel gambar Home Android/iOS. - Cron
CleanupPastBookings(ticker 5 menit) diperluas: sekarang auto-complete booking yang sudah lewat waktu selesai baik karena tidak pernah check-in (no-show) maupun check-in tapi lupa check-out (dulu hanya cover no-show). - Baru: static file serving publik
GET /static/*(Ginrouter.Static, dari folder lokal./static, tanpa auth) — dipakai untuk hotlink gambar promo (/static/promos/*.png) karena folderpublicadmin site ada di belakang auth login, tidak cocok untuk aset yang perlu diakses langsung oleh app member. - Migration
025dijalankan manual di DB produksi (mpcdb.promos.image_url/display_order, sebelumnya baru ada di kode/migration file,AUTO_MIGRATE=falsesehingga tidak otomatis). - Seed 5 promo baru dengan gambar carousel (generated, style konsisten primary teal on white): 3 Court (
Morning Court Privilege,Weekend Doubles Special,Off-Peak Court Hours) + 2 F&B (Court Cafe Refresh,Match Day Fuel Combo),display_order0-4, gambar di/opt/mpc-be/static/promos/. - Replace 5 file gambar promo di
/opt/mpc-be/static/promos/dengan foto real photography rasio 16:9 tanpa teks/watermark (round pertama pakai teks judul dibakar ke gambar di rasio ~1.5:1 — sekarang judul/badge digambar native oleh app). Tidak ada perubahan kode;image_urldi DB tidak berubah (nama file sama, konten di-overwrite via rsync).
v1.8 — 2026-08-15
- Push notifications foundation: tabel
device_tokens, enrichnotifications(category,data); migration workspace023. - FCM HTTP v1 + Resend email delivery di atas inbox
Notify(async; skip jika env belum diisi). - API:
POST/DELETE /device-tokens;GET /notifications/me(+ auth pada list/mark-read); adminbroadcast/push/notify-customer. - Event hooks: payment, booking create/cancel/reschedule, resto reservation, reminder H-1 jam (ticker), POS check-in via be-pos bridge.
- Env: lihat
.env.example+mpc-dev/docs/push-notifications-setup.md. iOS client push masih ditunda (mpc-dev/docs/tasks.md). - FCM Android: set
android.notification.channel_id=mpc_mainagar tray pakai channel app.
v1.7 — 2026-08-13
- Resto reservations (member): package
internal/spaces— spaces + availability + reservations; court VIP bundling; tip feature; etc. (lihat riwayat commit / spec 028–029).
v1.6 — 2026-08-11
- Matchplay full; FnB pickup; court showcase.
v1.5 — 2026-08-10
- FnB / ProShop / Rent catalog & related APIs.