use crate::jwt::decode::Topic;
use serde::{Deserialize, Serialize};
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum WatchType {
Subscriber,
Publisher,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum WatchStatus {
Accepted,
Queued,
Delivered,
}
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum WatchAction {
#[serde(rename = "irn_watchRegister")]
Register,
#[serde(rename = "irn_watchUnregister")]
Unregister,
#[serde(rename = "irn_watchEvent")]
WatchEvent,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WatchEventPayload {
pub status: WatchStatus,
pub topic: Topic,
pub message: String,
pub published_at: i64,
pub tag: u32,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WatchWebhookPayload {
pub event_auth: String,
}