use serde::Serialize;
use twilight_model::{
guild::{
DefaultMessageNotificationLevel, ExplicitContentFilter, MfaLevel, Permissions, PremiumTier,
SystemChannelFlags, VerificationLevel,
},
id::{ApplicationId, ChannelId, GuildId, UserId},
};
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct CachedGuild {
pub id: GuildId,
pub afk_channel_id: Option<ChannelId>,
pub afk_timeout: u64,
pub application_id: Option<ApplicationId>,
pub banner: Option<String>,
pub default_message_notifications: DefaultMessageNotificationLevel,
pub description: Option<String>,
pub discovery_splash: Option<String>,
pub embed_channel_id: Option<ChannelId>,
pub embed_enabled: Option<bool>,
pub explicit_content_filter: ExplicitContentFilter,
pub features: Vec<String>,
pub icon: Option<String>,
pub joined_at: Option<String>,
pub large: bool,
pub lazy: Option<bool>,
pub max_members: Option<u64>,
pub max_presences: Option<u64>,
pub member_count: Option<u64>,
pub mfa_level: MfaLevel,
pub name: String,
pub owner: Option<bool>,
pub owner_id: UserId,
pub permissions: Option<Permissions>,
pub preferred_locale: String,
pub premium_subscription_count: Option<u64>,
pub premium_tier: PremiumTier,
pub region: String,
pub rules_channel_id: Option<ChannelId>,
pub splash: Option<String>,
pub system_channel_id: Option<ChannelId>,
pub system_channel_flags: SystemChannelFlags,
pub unavailable: bool,
pub verification_level: VerificationLevel,
pub vanity_url_code: Option<String>,
pub widget_channel_id: Option<ChannelId>,
pub widget_enabled: Option<bool>,
}