use crate::gateway::PartialGuildMember;
use crate::{Snowflake, Identifiable};
#[object(both)]
pub struct User {
pub id: Snowflake,
pub username: String,
pub discriminator: String,
#[nullable]
pub avatar: Option<String>,
pub bot: Option<bool>,
pub mfa_enabled: Option<bool>,
pub locale: Option<String>,
pub verified: Option<bool>,
pub email: Option<String>,
pub flags: Option<i32>,
pub premium_type: Option<i32>,
#[cfg(feature = "storage")]
#[serde(default)]
pub guilds: std::collections::HashSet<Snowflake>
}
impl Identifiable for User {
fn id(&self) -> Snowflake {
self.id
}
}
#[object(server)]
pub struct PartialUser {
pub id: Snowflake,
pub username: Option<String>,
pub discriminator: Option<String>,
#[option_nullable]
pub avatar: Option<Option<String>>,
pub bot: Option<bool>,
pub mfa_enabled: Option<bool>,
pub locale: Option<String>,
pub verified: Option<bool>,
pub email: Option<String>,
pub flags: Option<i32>,
pub premium_type: Option<i32>
}
#[object(server)]
pub struct MentionnedUser {
pub id: Snowflake,
pub member: Option<PartialGuildMember>,
pub username: String,
pub discriminator: String,
#[nullable]
pub avatar: Option<String>,
pub bot: Option<bool>,
pub mfa_enabled: Option<bool>,
pub locale: Option<String>,
pub verified: Option<bool>,
pub email: Option<String>,
pub flags: Option<i32>,
pub premium_type: Option<i32>
}