specs / 030-Changes-Push-Notif-iOS-Deferred

030 - Push notifications implementation

  • Tanggal: 2026-08-15
  • Chat/topik: Implement FCM push + Resend email lintas app (iOS client ditunda)

Ringkasan perubahan

Infrastruktur push end-to-end: device_tokens + FCM/Resend di mpc-be; Android + POS + Admin/Owner web push; member web tetap email; iOS menunggu APNs.

Impact bisnis

Member Android & ops (POS/Admin/Owner) bisa menerima notifikasi real-time setelah Firebase/Resend dikonfigurasi. Member web tetap dapat email + inbox.

Epic / User stories

  • Epic: Notifikasi real-time booking/payment/ops
  • US: Sebagai member, saya ingin tahu pembayaran & jadwal tanpa membuka app terus-menerus.

User terdampak

Member (Android push + email), kasir POS, admin, owner. Member iOS: inbox saja sampai APNs siap.

Aplikasi terdampak

  • mpc-be: PERLU — schema, FCM, Resend, API tokens, event hooks
  • mpc-be-pos: PERLU — bridge check-in → mpc-be
  • mpc-admin: PERLU — Web Push + broadcast UI
  • mpc-android: PERLU — FCM client
  • mpc-ios: DITUNDA — APNs
  • mpc-web: TIDAK push — email via BE
  • mpc-owner: PERLU — Web Push opt-in
  • ksr-sync: TIDAK
  • mpc-pos: PERLU — FCM operasional

Perubahan schema

device_tokens; notifications.category, notifications.data — migration 023-device-tokens-notifications.md.

Perubahan kode

  • mpc-be, mpc-be-pos, Android, POS, Admin, Owner — lihat changelog masing-masing.
  • 2026-08-15 (lanjut): Android v1.18 rebuild — APK sebelumnya masih Firebase placeholder; PushRegistrar tunggu JWT + retry FCM token. Deploy prod BE/admin/owner/POS web selesai.
  • 2026-08-15 (lanjut): Notifications UI polish Android + iOS (hapus swipe merah); FCM channel_id=mpc_main.
  • mpc-be internal/notifications/*, bookings/spaces/transactions hooks, config env
  • Android push/*, API device-tokens
  • POS lib/push/pos_push.dart
  • Admin/Owner Firebase opt-in + API routes
  • Docs: setup, tasks, changelogs, api_contract