Add Types
This commit is contained in:
parent
13e7562c9d
commit
dd04b760a4
|
@ -14,6 +14,7 @@ use crate::types::{
|
||||||
utils::Snowflake,
|
utils::Snowflake,
|
||||||
Composite,
|
Composite,
|
||||||
};
|
};
|
||||||
|
use bitflags::bitflags;
|
||||||
|
|
||||||
/// See <https://discord.com/developers/docs/resources/guild>
|
/// See <https://discord.com/developers/docs/resources/guild>
|
||||||
#[derive(Serialize, Deserialize, Debug, Default, Clone, Updateable, Composite)]
|
#[derive(Serialize, Deserialize, Debug, Default, Clone, Updateable, Composite)]
|
||||||
|
@ -33,7 +34,7 @@ pub struct Guild {
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
#[observe_option_vec]
|
#[observe_option_vec]
|
||||||
pub channels: Option<Vec<Arc<RwLock<Channel>>>>,
|
pub channels: Option<Vec<Arc<RwLock<Channel>>>>,
|
||||||
pub default_message_notifications: Option<i32>,
|
pub default_message_notifications: Option<MessageNotificationLevel>,
|
||||||
pub description: Option<String>,
|
pub description: Option<String>,
|
||||||
pub discovery_splash: Option<String>,
|
pub discovery_splash: Option<String>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
|
@ -57,9 +58,9 @@ pub struct Guild {
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub max_stage_video_channel_users: Option<i32>,
|
pub max_stage_video_channel_users: Option<i32>,
|
||||||
pub max_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 name: Option<String>,
|
||||||
pub nsfw_level: Option<i32>,
|
pub nsfw_level: Option<NSFWLevel>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub owner: Option<bool>,
|
pub owner: Option<bool>,
|
||||||
// True if requesting user is owner
|
// True if requesting user is owner
|
||||||
|
@ -69,7 +70,7 @@ pub struct Guild {
|
||||||
pub preferred_locale: Option<String>,
|
pub preferred_locale: Option<String>,
|
||||||
pub premium_progress_bar_enabled: Option<bool>,
|
pub premium_progress_bar_enabled: Option<bool>,
|
||||||
pub premium_subscription_count: Option<i32>,
|
pub premium_subscription_count: Option<i32>,
|
||||||
pub premium_tier: Option<i32>,
|
pub premium_tier: Option<PremiumTier>,
|
||||||
pub primary_category_id: Option<Snowflake>,
|
pub primary_category_id: Option<Snowflake>,
|
||||||
pub public_updates_channel_id: Option<Snowflake>,
|
pub public_updates_channel_id: Option<Snowflake>,
|
||||||
pub region: Option<String>,
|
pub region: Option<String>,
|
||||||
|
@ -82,11 +83,11 @@ pub struct Guild {
|
||||||
pub splash: Option<String>,
|
pub splash: Option<String>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub stickers: Option<Vec<Sticker>>,
|
pub stickers: Option<Vec<Sticker>>,
|
||||||
pub system_channel_flags: Option<i32>,
|
pub system_channel_flags: Option<SystemChannelFlags>,
|
||||||
pub system_channel_id: Option<Snowflake>,
|
pub system_channel_id: Option<Snowflake>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub vanity_url_code: Option<String>,
|
pub vanity_url_code: Option<String>,
|
||||||
pub verification_level: Option<i32>,
|
pub verification_level: Option<VerificationLevel>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
#[observe_option_vec]
|
#[observe_option_vec]
|
||||||
pub voice_states: Option<Vec<Arc<RwLock<VoiceState>>>>,
|
pub voice_states: Option<Vec<Arc<RwLock<VoiceState>>>>,
|
||||||
|
@ -199,3 +200,95 @@ pub enum GuildScheduledEventEntityType {
|
||||||
pub struct GuildScheduledEventEntityMetadata {
|
pub struct GuildScheduledEventEntityMetadata {
|
||||||
pub location: Option<String>,
|
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