artifacts/models/
my_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 MyAccountDetails {
7    #[serde(rename = "username")]
9    pub username: String,
10    #[serde(rename = "email")]
12    pub email: String,
13    #[serde(rename = "member")]
15    pub member: bool,
16    #[serde(rename = "member_expiration", skip_serializing_if = "Option::is_none")]
18    pub member_expiration: Option<String>,
19    #[serde(rename = "status")]
21    pub status: models::AccountStatus,
22    #[serde(rename = "badges", skip_serializing_if = "Option::is_none")]
24    pub badges: Option<Vec<String>>,
25    #[serde(rename = "skins")]
27    pub skins: Vec<String>,
28    #[serde(rename = "gems")]
30    pub gems: i32,
31    #[serde(rename = "event_token")]
33    pub event_token: i32,
34    #[serde(rename = "achievements_points")]
36    pub achievements_points: i32,
37    #[serde(rename = "banned")]
39    pub banned: bool,
40    #[serde(rename = "ban_reason", skip_serializing_if = "Option::is_none")]
42    pub ban_reason: Option<String>,
43}
44
45impl MyAccountDetails {
46    pub fn new(
47        username: String,
48        email: String,
49        member: bool,
50        status: models::AccountStatus,
51        skins: Vec<String>,
52        gems: i32,
53        event_token: i32,
54        achievements_points: i32,
55        banned: bool,
56    ) -> MyAccountDetails {
57        MyAccountDetails {
58            username,
59            email,
60            member,
61            member_expiration: None,
62            status,
63            badges: None,
64            skins,
65            gems,
66            event_token,
67            achievements_points,
68            banned,
69            ban_reason: None,
70        }
71    }
72}