artifacts/models/
my_account_details.rs

1use 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    /// Username.
8    #[serde(rename = "username")]
9    pub username: String,
10    /// Email.
11    #[serde(rename = "email")]
12    pub email: String,
13    /// Member status.
14    #[serde(rename = "member")]
15    pub member: bool,
16    /// Member expiration date.
17    #[serde(rename = "member_expiration", skip_serializing_if = "Option::is_none")]
18    pub member_expiration: Option<String>,
19    /// Account status.
20    #[serde(rename = "status")]
21    pub status: models::AccountStatus,
22    /// Account badges.
23    #[serde(rename = "badges", skip_serializing_if = "Option::is_none")]
24    pub badges: Option<Vec<String>>,
25    /// Skins owned.
26    #[serde(rename = "skins")]
27    pub skins: Vec<String>,
28    /// Gems.
29    #[serde(rename = "gems")]
30    pub gems: i32,
31    /// Event tokens for spawning events.
32    #[serde(rename = "event_token")]
33    pub event_token: i32,
34    /// Achievement points.
35    #[serde(rename = "achievements_points")]
36    pub achievements_points: i32,
37    /// Banned.
38    #[serde(rename = "banned")]
39    pub banned: bool,
40    /// Ban reason.
41    #[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}