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<serde_json::Value>>,
19 #[serde(rename = "skins")]
21 pub skins: Vec<serde_json::Value>,
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<serde_json::Value>,
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}