package ru.forbion.f7cloud.core.push

sealed class F7PushEvent {
    abstract val url: String?

    data class Call(
        val title: String,
        val body: String,
        val roomToken: String?,
        val acceptUrl: String?,
        override val url: String?,
    ) : F7PushEvent()

    data class Mail(
        val title: String,
        val body: String,
        val mailboxId: Int?,
        val messageId: Int?,
        override val url: String?,
    ) : F7PushEvent()

    data class Talk(
        val title: String,
        val body: String,
        val roomToken: String?,
        val messageId: Long?,
        override val url: String?,
    ) : F7PushEvent()

    data class Files(
        val title: String,
        val body: String,
        val fileId: Long?,
        override val url: String?,
    ) : F7PushEvent()

    data class Notification(
        val title: String,
        val body: String,
        val source: String?,
        override val url: String?,
    ) : F7PushEvent()
}
