#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct ChannelOneOf2 {
#[serde(rename = "channel_type")]
pub channel_type: ChannelType,
#[serde(rename = "_id")]
pub _id: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "owner")]
pub owner: String,
#[serde(rename = "description", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub description: Option<Option<String>>,
#[serde(rename = "recipients")]
pub recipients: Vec<String>,
#[serde(rename = "icon", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub icon: Option<Option<Box<crate::models::ChannelOneOf2Icon>>>,
#[serde(rename = "last_message_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub last_message_id: Option<Option<String>>,
#[serde(rename = "permissions", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub permissions: Option<Option<i64>>,
#[serde(rename = "nsfw", skip_serializing_if = "Option::is_none")]
pub nsfw: Option<bool>,
}
impl ChannelOneOf2 {
pub fn new(channel_type: ChannelType, _id: String, name: String, owner: String, recipients: Vec<String>) -> ChannelOneOf2 {
ChannelOneOf2 {
channel_type,
_id,
name,
owner,
description: None,
recipients,
icon: None,
last_message_id: None,
permissions: None,
nsfw: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ChannelType {
#[serde(rename = "Group")]
Group,
}
impl Default for ChannelType {
fn default() -> ChannelType {
Self::Group
}
}