Add Types
This commit is contained in:
parent
4e56181486
commit
8b09d52ac8
|
@ -14,6 +14,7 @@ use crate::types::{
|
|||
utils::Snowflake,
|
||||
Composite,
|
||||
};
|
||||
use bitflags::bitflags;
|
||||
|
||||
/// See <https://discord.com/developers/docs/resources/guild>
|
||||
#[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<Vec<Arc<RwLock<Channel>>>>,
|
||||
pub default_message_notifications: Option<i32>,
|
||||
pub default_message_notifications: Option<MessageNotificationLevel>,
|
||||
pub description: Option<String>,
|
||||
pub discovery_splash: Option<String>,
|
||||
#[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<i32>,
|
||||
pub max_video_channel_users: Option<i32>,
|
||||
pub mfa_level: Option<i32>,
|
||||
pub mfa_level: Option<MFALevel>,
|
||||
pub name: Option<String>,
|
||||
pub nsfw_level: Option<i32>,
|
||||
pub nsfw_level: Option<NSFWLevel>,
|
||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||
pub owner: Option<bool>,
|
||||
// True if requesting user is owner
|
||||
|
@ -69,7 +70,7 @@ pub struct Guild {
|
|||
pub preferred_locale: Option<String>,
|
||||
pub premium_progress_bar_enabled: Option<bool>,
|
||||
pub premium_subscription_count: Option<i32>,
|
||||
pub premium_tier: Option<i32>,
|
||||
pub premium_tier: Option<PremiumTier>,
|
||||
pub primary_category_id: Option<Snowflake>,
|
||||
pub public_updates_channel_id: Option<Snowflake>,
|
||||
pub region: Option<String>,
|
||||
|
@ -82,11 +83,11 @@ pub struct Guild {
|
|||
pub splash: Option<String>,
|
||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||
pub stickers: Option<Vec<Sticker>>,
|
||||
pub system_channel_flags: Option<i32>,
|
||||
pub system_channel_flags: Option<SystemChannelFlags>,
|
||||
pub system_channel_id: Option<Snowflake>,
|
||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||
pub vanity_url_code: Option<String>,
|
||||
pub verification_level: Option<i32>,
|
||||
pub verification_level: Option<VerificationLevel>,
|
||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||
#[observe_option_vec]
|
||||
pub voice_states: Option<Vec<Arc<RwLock<VoiceState>>>>,
|
||||
|
@ -199,3 +200,95 @@ pub enum GuildScheduledEventEntityType {
|
|||
pub struct GuildScheduledEventEntityMetadata {
|
||||
pub location: Option<String>,
|
||||
}
|
||||
|
||||
#[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 <https://discord-userdoccers.vercel.app/resources/guild#message-notification-level>
|
||||
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 <https://discord-userdoccers.vercel.app/resources/guild#explicit-content-filter-level>
|
||||
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 <https://discord-userdoccers.vercel.app/resources/guild#verification-level>
|
||||
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 <https://discord-userdoccers.vercel.app/resources/guild#verification-level>
|
||||
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 <https://discord-userdoccers.vercel.app/resources/guild#verification-level>
|
||||
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 <https://discord-userdoccers.vercel.app/resources/guild#verification-level>
|
||||
pub enum PremiumTier {
|
||||
#[default]
|
||||
None = 0,
|
||||
Tier1 = 1,
|
||||
Tier2 = 2,
|
||||
Tier3 = 3,
|
||||
}
|
||||
|
||||
bitflags! {
|
||||
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)]
|
||||
/// # Reference
|
||||
/// See <https://discord-userdoccers.vercel.app/resources/guild#system-channel-flags>
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue