use serde::{Deserialize, Serialize};
#[derive(Debug, Default, Clone, PartialEq, Deserialize, Serialize)]
pub struct Notification {}
#[derive(Debug, Default, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all(deserialize = "camelCase"))]
pub struct NotificationOption {
notification_type: NotificationType,
enabled: bool,
}
#[derive(Debug, Default, Clone, Eq, Hash, PartialEq, Deserialize, Serialize)]
#[serde(rename_all(deserialize = "SCREAMING_SNAKE_CASE"))]
pub enum NotificationType {
#[default]
ActivityMessage,
ActivityReply,
Following,
ActivityMention,
ThreadCommentMention,
Airing,
ActivityLike,
ActivityReplyLike,
ThreadLike,
ActivityReplySubscribed,
RelatedMediaAddition,
MediaDataChange,
MediaMerge,
MediaDeletion,
}
impl std::fmt::Display for NotificationType {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
NotificationType::ActivityMessage => write!(f, "Activity Message"),
NotificationType::ActivityReply => write!(f, "Activity Reply"),
NotificationType::Following => write!(f, "Following"),
NotificationType::ActivityMention => write!(f, "Activity Mention"),
NotificationType::ThreadCommentMention => write!(f, "Thread Comment Mention"),
NotificationType::Airing => write!(f, "Airing"),
NotificationType::ActivityLike => write!(f, "Activity Like"),
NotificationType::ActivityReplyLike => write!(f, "Activity Reply Like"),
NotificationType::ThreadLike => write!(f, "Thread Like"),
NotificationType::ActivityReplySubscribed => write!(f, "Activity Reply Subscribed"),
NotificationType::RelatedMediaAddition => write!(f, "Related Media Addition"),
NotificationType::MediaDataChange => write!(f, "Media Data Change"),
NotificationType::MediaMerge => write!(f, "Media Merge"),
NotificationType::MediaDeletion => write!(f, "Media Deletion"),
}
}
}