package com.tt.honeyDue.notifications

/**
 * Action + extra constants for the iOS-parity notification action buttons.
 *
 * Mirrors the action identifiers from
 * `iosApp/iosApp/PushNotifications/NotificationCategories.swift`
 * (Complete, Snooze, Open for task_reminder / task_overdue; Accept, Decline, Open
 * for residence_invite). Consumed by [NotificationActionReceiver] and attached
 * to the notifications built by [FcmService].
 *
 * Action strings are fully-qualified so they never collide with other
 * BroadcastReceivers registered in the app (e.g. the legacy
 * `com.tt.honeyDue.NotificationActionReceiver` which handles task-state
 * transitions from widget-era notifications).
 */
object NotificationActions {
    const val COMPLETE: String = "com.tt.honeyDue.action.COMPLETE_TASK"
    const val SNOOZE: String = "com.tt.honeyDue.action.SNOOZE_TASK"
    const val OPEN: String = "com.tt.honeyDue.action.OPEN"
    const val ACCEPT_INVITE: String = "com.tt.honeyDue.action.ACCEPT_INVITE"
    const val DECLINE_INVITE: String = "com.tt.honeyDue.action.DECLINE_INVITE"

    /** Firing a SNOOZE fires this alarm action when the 30-min wait elapses. */
    const val SNOOZE_FIRE: String = "com.tt.honeyDue.action.SNOOZE_FIRE"

    const val EXTRA_TASK_ID: String = "task_id"
    const val EXTRA_RESIDENCE_ID: String = "residence_id"
    const val EXTRA_NOTIFICATION_ID: String = "notification_id"
    const val EXTRA_TITLE: String = "title"
    const val EXTRA_BODY: String = "body"
    const val EXTRA_TYPE: String = "type"
    const val EXTRA_DEEP_LINK: String = "deep_link"

    /** Snooze delay that matches `iosApp/iosApp/PushNotifications/NotificationCategories.swift`. */
    const val SNOOZE_DELAY_MS: Long = 30L * 60L * 1000L
}
