use crate::models::payloads::{
APIApplicationRoleConnection, APIChannel, APIConnection, APIGuildMember, APIUser, GuildFeature,
};
use serde::{Deserialize, Serialize};
use serde_json::Value;
use std::collections::HashMap;
pub type RESTGetAPICurrentUserResult = APIUser;
pub type RESTGetAPIUserResult = APIUser;
pub type RESTGetCurrentUserGuildMemberResult = APIGuildMember;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct RESTPatchAPICurrentUserJSONBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<Option<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub banner: Option<Option<String>>,
}
pub type RESTPatchAPICurrentUserResult = APIUser;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Default)]
pub struct RESTGetAPICurrentUserGuildsQuery {
#[serde(skip_serializing_if = "Option::is_none")]
pub before: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub after: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<u16>,
#[serde(skip_serializing_if = "Option::is_none")]
pub with_counts: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct RESTAPIPartialCurrentUserGuild {
pub id: String,
pub name: String,
pub icon: Option<String>,
pub banner: Option<String>,
pub owner: bool,
pub features: Vec<GuildFeature>,
pub permissions: String,
pub approximate_member_count: Option<u64>,
pub approximate_presence_count: Option<u64>,
}
pub type RESTGetAPICurrentUserGuildsResult = Vec<RESTAPIPartialCurrentUserGuild>;
pub type RESTDeleteAPICurrentUserGuildResult = ();
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct RESTPostAPICurrentUserCreateDMChannelJSONBody {
pub recipient_id: String,
}
pub type RESTPostAPICurrentUserCreateDMChannelResult = APIChannel;
pub type RESTGetAPICurrentUserConnectionsResult = Vec<APIConnection>;
pub type RESTGetAPICurrentUserApplicationRoleConnectionResult = APIApplicationRoleConnection;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct RESTPutAPICurrentUserApplicationRoleConnectionJSONBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub platform_username: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<HashMap<String, Value>>,
}
pub type RESTPutAPICurrentUserApplicationRoleConnectionResult = APIApplicationRoleConnection;