diff --git a/app/src/main/java/app/closer/notifications/PartnerNotificationManager.kt b/app/src/main/java/app/closer/notifications/PartnerNotificationManager.kt index 9e2d17e7..4c39d508 100644 --- a/app/src/main/java/app/closer/notifications/PartnerNotificationManager.kt +++ b/app/src/main/java/app/closer/notifications/PartnerNotificationManager.kt @@ -248,6 +248,25 @@ enum class PartnerNotificationType( channelId = NotificationChannelSetup.CHANNEL_PARTNER_ACTIONS, rateType = NotificationRateLimiter.Type.PARTNER_TRIGGER ), + // Date Memories & Replay: partner reflected (your turn) / both reflected (reveal) / a date was logged. + DATE_REFLECTION_PARTNER( + title = "Your partner reflected on your date 💭", + body = "Add yours to reveal together.", + channelId = NotificationChannelSetup.CHANNEL_PARTNER_ACTIONS, + rateType = NotificationRateLimiter.Type.PARTNER_TRIGGER + ), + DATE_REFLECTION_READY( + title = "Your date reflections are ready ✨", + body = "Open to reveal them together.", + channelId = NotificationChannelSetup.CHANNEL_PARTNER_ACTIONS, + rateType = NotificationRateLimiter.Type.PARTNER_TRIGGER + ), + DATE_LOGGED( + title = "You went on a date 💜", + body = "Reflect on it together while it's fresh.", + channelId = NotificationChannelSetup.CHANNEL_PARTNER_ACTIONS, + rateType = NotificationRateLimiter.Type.PARTNER_TRIGGER + ), DAILY_QUESTION_REMINDER( title = "Tonight's question is waiting.", body = "Answer together before it expires.", @@ -324,6 +343,8 @@ enum class PartnerNotificationType( CAPSULE_UNLOCKED -> AppRoute.MEMORY_LANE GENTLE_REMINDER -> AppRoute.DAILY_QUESTION THINKING_OF_YOU -> AppRoute.HOME + DATE_REFLECTION_PARTNER, DATE_REFLECTION_READY, DATE_LOGGED -> + payload.dateId?.let { AppRoute.dateReflection(it) } ?: AppRoute.DATE_MEMORIES DAILY_QUESTION_REMINDER -> AppRoute.DAILY_QUESTION // Open the actual conversation so the partner can reply in place. CHAT_MESSAGE -> if (payload.conversationId != null && coupleId.isNotBlank()) { @@ -356,6 +377,9 @@ enum class PartnerNotificationType( "memory_capsule_unlocked" -> CAPSULE_UNLOCKED "gentle_reminder" -> GENTLE_REMINDER "thinking_of_you" -> THINKING_OF_YOU + "date_reflection_partner" -> DATE_REFLECTION_PARTNER + "date_reflection_ready" -> DATE_REFLECTION_READY + "date_logged" -> DATE_LOGGED // Server emits both 'daily_question' (assignment) and 'daily_question_reminder' — both open Today. "daily_question", "daily_question_reminder" -> DAILY_QUESTION_REMINDER "chat_message" -> CHAT_MESSAGE @@ -386,6 +410,8 @@ data class PartnerNotificationPayload( val gameType: String? = null, val capsuleId: String? = null, val challengeId: String? = null, + /** Completed-date id, used to deep link a date-reflection push into the reflection screen. */ + val dateId: String? = null, /** Sender's avatar URL, used as the notification large icon when present. */ val avatarUrl: String? = null )