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