use crate::models::{Snowflake, Timestamp, channel::Channel};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct GuildRoleMembers {
#[serde(default)]
pub data: Vec<Member>,
#[serde(default)]
pub next: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct MemberAddRoleBody {
pub channel: Option<Channel>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct MemberDeleteOptions {
pub add_blacklist: bool,
pub delete_history_msg_days: i32,
}
pub fn normalize_delete_history_msg_days(days: i32) -> i32 {
match days {
3 | 7 | 15 | 30 | -1 => days,
_ => 0,
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
pub struct Member {
#[serde(default)]
pub guild_id: Snowflake,
#[serde(default)]
pub user: Option<crate::models::User>,
#[serde(default)]
pub nick: String,
#[serde(default)]
pub roles: Vec<Snowflake>,
#[serde(default)]
pub joined_at: Timestamp,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub op_user_id: Snowflake,
}