use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DiscordScheduledEvent {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "guild_id", skip_serializing_if = "Option::is_none")]
pub guild_id: Option<String>,
#[serde(
rename = "channel_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub channel_id: Option<Option<String>>,
#[serde(
rename = "creator_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub creator_id: Option<Option<String>>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(
rename = "description",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub description: Option<Option<String>>,
#[serde(
rename = "scheduled_start_time",
skip_serializing_if = "Option::is_none"
)]
pub scheduled_start_time: Option<String>,
#[serde(
rename = "scheduled_end_time",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub scheduled_end_time: Option<Option<String>>,
#[serde(rename = "privacy_level", skip_serializing_if = "Option::is_none")]
pub privacy_level: Option<PrivacyLevel>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[serde(rename = "entity_type", skip_serializing_if = "Option::is_none")]
pub entity_type: Option<EntityType>,
#[serde(
rename = "entity_id",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub entity_id: Option<Option<String>>,
#[serde(rename = "entity_metadata", skip_serializing_if = "Option::is_none")]
pub entity_metadata: Option<Box<models::DiscordScheduledEventEntityMetadata>>,
#[serde(rename = "user_count", skip_serializing_if = "Option::is_none")]
pub user_count: Option<i32>,
#[serde(
rename = "image",
default,
with = "::serde_with::rust::double_option",
skip_serializing_if = "Option::is_none"
)]
pub image: Option<Option<String>>,
}
impl DiscordScheduledEvent {
pub fn new() -> DiscordScheduledEvent {
DiscordScheduledEvent {
id: None,
guild_id: None,
channel_id: None,
creator_id: None,
name: None,
description: None,
scheduled_start_time: None,
scheduled_end_time: None,
privacy_level: None,
status: None,
entity_type: None,
entity_id: None,
entity_metadata: None,
user_count: None,
image: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum PrivacyLevel {
#[serde(rename = "2")]
Variant2,
}
impl Default for PrivacyLevel {
fn default() -> PrivacyLevel {
Self::Variant2
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "1")]
Variant1,
#[serde(rename = "2")]
Variant2,
#[serde(rename = "3")]
Variant3,
#[serde(rename = "4")]
Variant4,
}
impl Default for Status {
fn default() -> Status {
Self::Variant1
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EntityType {
#[serde(rename = "1")]
Variant1,
#[serde(rename = "2")]
Variant2,
#[serde(rename = "3")]
Variant3,
}
impl Default for EntityType {
fn default() -> EntityType {
Self::Variant1
}
}