use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
pub struct AccountDetails {
#[serde(rename = "username")]
pub username: String,
#[serde(rename = "member")]
pub member: bool,
#[serde(rename = "status")]
pub status: models::AccountStatus,
#[serde(rename = "badges", skip_serializing_if = "Option::is_none")]
pub badges: Option<Vec<String>>,
#[serde(rename = "skins")]
pub skins: Vec<String>,
#[serde(rename = "achievements_points")]
pub achievements_points: i32,
#[serde(rename = "banned")]
pub banned: bool,
#[serde(rename = "ban_reason", skip_serializing_if = "Option::is_none")]
pub ban_reason: Option<String>,
}
impl AccountDetails {
pub fn new(
username: String,
member: bool,
status: models::AccountStatus,
skins: Vec<String>,
achievements_points: i32,
banned: bool,
) -> AccountDetails {
AccountDetails {
username,
member,
status,
badges: None,
skins,
achievements_points,
banned,
ban_reason: None,
}
}
}