artifacts/models/
account_details.rs1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5#[cfg_attr(feature = "specta", derive(specta::Type))]
6pub struct AccountDetails {
7    #[serde(rename = "username")]
9    pub username: String,
10    #[serde(rename = "member")]
12    pub member: bool,
13    #[serde(rename = "status")]
15    pub status: models::AccountStatus,
16    #[serde(rename = "badges", skip_serializing_if = "Option::is_none")]
18    pub badges: Option<Vec<String>>,
19    #[serde(rename = "skins")]
21    pub skins: Vec<String>,
22    #[serde(rename = "achievements_points")]
24    pub achievements_points: i32,
25    #[serde(rename = "banned")]
27    pub banned: bool,
28    #[serde(rename = "ban_reason", skip_serializing_if = "Option::is_none")]
30    pub ban_reason: Option<String>,
31}
32
33impl AccountDetails {
34    pub fn new(
35        username: String,
36        member: bool,
37        status: models::AccountStatus,
38        skins: Vec<String>,
39        achievements_points: i32,
40        banned: bool,
41    ) -> AccountDetails {
42        AccountDetails {
43            username,
44            member,
45            status,
46            badges: None,
47            skins,
48            achievements_points,
49            banned,
50            ban_reason: None,
51        }
52    }
53}