use serde::{Deserialize, Serialize};
use crate::models::Id;
#[derive(Debug, Clone, PartialEq, Default, Deserialize, Serialize)]
pub struct SystemMessageChannels {
#[serde(skip_serializing_if = "Option::is_none")]
pub user_joined: Option<Id>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_left: Option<Id>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_kicked: Option<Id>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_banned: Option<Id>,
}
impl SystemMessageChannels {
pub fn user_joined(mut self, id: &Id) -> Self {
self.user_joined = Some(id.clone());
self
}
pub fn user_left(mut self, id: &Id) -> Self {
self.user_left = Some(id.clone());
self
}
pub fn user_kicked(mut self, id: &Id) -> Self {
self.user_kicked = Some(id.clone());
self
}
pub fn user_banned(mut self, id: &Id) -> Self {
self.user_banned = Some(id.clone());
self
}
}