diff --git a/src/types/entities/guild.rs b/src/types/entities/guild.rs index 3f59055..65fc986 100644 --- a/src/types/entities/guild.rs +++ b/src/types/entities/guild.rs @@ -14,6 +14,7 @@ use crate::types::{ utils::Snowflake, Composite, }; +use bitflags::bitflags; /// See #[derive(Serialize, Deserialize, Debug, Default, Clone, Updateable, Composite)] @@ -33,7 +34,7 @@ pub struct Guild { #[cfg_attr(feature = "sqlx", sqlx(skip))] #[observe_option_vec] pub channels: Option>>>, - pub default_message_notifications: Option, + pub default_message_notifications: Option, pub description: Option, pub discovery_splash: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] @@ -57,9 +58,9 @@ pub struct Guild { #[cfg_attr(feature = "sqlx", sqlx(skip))] pub max_stage_video_channel_users: Option, pub max_video_channel_users: Option, - pub mfa_level: Option, + pub mfa_level: Option, pub name: Option, - pub nsfw_level: Option, + pub nsfw_level: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub owner: Option, // True if requesting user is owner @@ -69,7 +70,7 @@ pub struct Guild { pub preferred_locale: Option, pub premium_progress_bar_enabled: Option, pub premium_subscription_count: Option, - pub premium_tier: Option, + pub premium_tier: Option, pub primary_category_id: Option, pub public_updates_channel_id: Option, pub region: Option, @@ -82,11 +83,11 @@ pub struct Guild { pub splash: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub stickers: Option>, - pub system_channel_flags: Option, + pub system_channel_flags: Option, pub system_channel_id: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] pub vanity_url_code: Option, - pub verification_level: Option, + pub verification_level: Option, #[cfg_attr(feature = "sqlx", sqlx(skip))] #[observe_option_vec] pub voice_states: Option>>>, @@ -199,3 +200,95 @@ pub enum GuildScheduledEventEntityType { pub struct GuildScheduledEventEntityMetadata { pub location: Option, } + +#[derive(Serialize, Deserialize, Debug, Default, Clone, Eq, PartialEq)] +pub struct VoiceRegion { + id: String, + name: String, + optimal: bool, + deprecated: bool, + custom: bool, +} + +#[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, Eq, PartialEq)] +#[repr(u8)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +/// See +pub enum MessageNotificationLevel { + #[default] + AllMessages = 0, + OnlyMentions = 1, +} + +#[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, Eq, PartialEq)] +#[repr(u8)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +/// See +pub enum ExplicitContentFilterLevel { + #[default] + Disabled = 0, + MembersWithoutRoles = 1, + AllMembers = 2, +} + +#[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, Eq, PartialEq)] +#[repr(u8)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +/// See +pub enum VerificationLevel { + #[default] + None = 0, + Low = 1, + Medium = 2, + High = 3, + VeryHigh = 4, +} + +#[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, Eq, PartialEq)] +#[repr(u8)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +/// See +pub enum MFALevel { + #[default] + None = 0, + Elevated = 1, +} + +#[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, Eq, PartialEq)] +#[repr(u8)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +/// See +pub enum NSFWLevel { + #[default] + Default = 0, + Explicit = 1, + Safe = 2, + AgeRestricted = 3, +} + +#[derive(Serialize_repr, Deserialize_repr, Debug, Default, Clone, Eq, PartialEq)] +#[repr(u8)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +/// See +pub enum PremiumTier { + #[default] + None = 0, + Tier1 = 1, + Tier2 = 2, + Tier3 = 3, +} + +bitflags! { + #[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)] + /// # Reference + /// See + pub struct SystemChannelFlags: u64 { + /// Indicates if an app uses the Auto Moderation API + const SUPPRESS_JOIN_NOTIFICATIONS = 1 << 0; + const SUPPRESS_PREMIUM_SUBSCRIPTIONS = 1 << 1; + const SUPPRESS_GUILD_REMINDER_NOTIFICATIONS = 1 << 2; + const SUPPRESS_JOIN_NOTIFICATION_REPLIES = 1 << 3; + const SUPPRESS_ROLE_SUBSCRIPTION_PURCHASE_NOTIFICATIONS = 1 << 4; + const SUPPRESS_ROLE_SUBSCRIPTION_PURCHASE_NOTIFICATIONS_REPLIES = 1 << 5; + } +}