use crate::models::payloads::{
APIGuildScheduledEvent, APIGuildScheduledEventEntityMetadata,
APIGuildScheduledEventRecurrenceRule, APIGuildScheduledEventUser,
GuildScheduledEventEntityType, GuildScheduledEventPrivacyLevel, GuildScheduledEventStatus,
};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub struct RESTGetAPIGuildScheduledEventsQuery {
#[serde(skip_serializing_if = "Option::is_none")]
pub with_user_count: Option<bool>,
}
pub type RESTGetAPIGuildScheduledEventsResult = Vec<APIGuildScheduledEvent>;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct RESTPostAPIGuildScheduledEventJSONBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_id: Option<String>,
pub name: String,
pub privacy_level: GuildScheduledEventPrivacyLevel,
pub scheduled_start_time: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_end_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub entity_type: Option<GuildScheduledEventEntityType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub entity_metadata: Option<APIGuildScheduledEventEntityMetadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image: Option<Option<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub recurrence_rule: Option<APIGuildScheduledEventRecurrenceRule>,
}
pub type RESTPostAPIGuildScheduledEventResult = APIGuildScheduledEvent;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub struct RESTGetAPIGuildScheduledEventQuery {
#[serde(skip_serializing_if = "Option::is_none")]
pub with_user_count: Option<bool>,
}
pub type RESTGetAPIGuildScheduledEventResult = APIGuildScheduledEvent;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub struct RESTPatchAPIGuildScheduledEventJSONBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<Option<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub entity_metadata: Option<Option<APIGuildScheduledEventEntityMetadata>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub recurrence_rule: Option<Option<APIGuildScheduledEventRecurrenceRule>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub privacy_level: Option<GuildScheduledEventPrivacyLevel>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_start_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub scheduled_end_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub entity_type: Option<GuildScheduledEventEntityType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image: Option<Option<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<GuildScheduledEventStatus>,
}
pub type RESTPatchAPIGuildScheduledEventResult = APIGuildScheduledEvent;
pub type RESTDeleteAPIGuildScheduledEventResult = ();
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub struct RESTGetAPIGuildScheduledEventUsersQuery {
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<u16>,
#[serde(skip_serializing_if = "Option::is_none")]
pub with_member: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub before: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub after: Option<String>,
}
pub type RESTGetAPIGuildScheduledEventUsersResult = Vec<APIGuildScheduledEventUser>;