Push Service

Summary

Implement push notification delivery for event reminders, challenge invitations, friend requests, and score updates. Platform-agnostic — APNs for iOS, FCM-compatible for Android.

Requirements

  • Push notification sending via APNs (iOS) and platform push (Android)
  • Device token registration and management per user
  • Notification types: event reminders, challenge invites, friend requests, score updates
  • Per-user notification preferences (opt-in/out by category)
  • Notification history storage
  • No Firebase SDK dependency

Open Questions

  • In-app message center — Resolved: split into transactional notifications (this service) and editorial content (content-feed-api). This service handles transactional push only (event reminders, challenge invites, friend requests, score updates).
  • PushPress-style announcements — Resolved: moved to content-feed-api. Push service may trigger a push when new content is published, but the content itself lives in the content feed.
  • Content categories — legacy has: social, trex_messages, new_drills, sales. Map these to new notification categories (some are now content-feed categories, others are transactional push categories)
  • Deep links — legacy notifications deep link to specific drills, dry fire drills, videos, and social screens. Define deep link URL scheme