1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4use serde_json::Value;
5
6use super::common::JsonObject;
7
8#[derive(Debug, Clone, Deserialize, Serialize)]
10pub struct Booster {
11 #[serde(rename = "_id", default)]
12 pub id: String,
13 #[serde(rename = "purchaserUuid", default)]
14 pub purchaser_uuid: String,
15 #[serde(default)]
16 pub amount: f64,
17 #[serde(rename = "originalLength", default)]
18 pub original_length: i64,
19 #[serde(default)]
20 pub length: i64,
21 #[serde(rename = "gameType", default)]
22 pub game_type: i32,
23 #[serde(rename = "dateActivated", default)]
24 pub date_activated: i64,
25 #[serde(flatten)]
26 pub extra: JsonObject,
27}
28
29#[derive(Debug, Clone, Deserialize)]
30pub(crate) struct BoostersResponse {
31 #[serde(default)]
32 pub boosters: Vec<Booster>,
33}
34
35#[derive(Debug, Clone, Deserialize, Serialize)]
37pub struct Counts {
38 #[serde(rename = "playerCount", default)]
39 pub player_count: i64,
40 #[serde(default)]
41 pub games: HashMap<String, GameCount>,
42}
43
44#[derive(Debug, Clone, Deserialize, Serialize)]
46pub struct GameCount {
47 #[serde(default)]
48 pub players: i64,
49 #[serde(default)]
50 pub modes: HashMap<String, i64>,
51}
52
53#[derive(Debug, Clone, Deserialize, Serialize)]
55pub struct PunishmentStats {
56 #[serde(rename = "watchdog_lastMinute", default)]
57 pub watchdog_last_minute: i64,
58 #[serde(rename = "watchdog_rollingDaily", default)]
59 pub watchdog_rolling_daily: i64,
60 #[serde(rename = "watchdog_total", default)]
61 pub watchdog_total: i64,
62 #[serde(rename = "staff_rollingDaily", default)]
63 pub staff_rolling_daily: i64,
64 #[serde(rename = "staff_total", default)]
65 pub staff_total: i64,
66}
67
68#[derive(Debug, Clone, Deserialize, Serialize)]
70pub struct Leaderboard {
71 #[serde(default)]
72 pub path: String,
73 #[serde(default)]
74 pub prefix: String,
75 #[serde(default)]
76 pub title: String,
77 #[serde(default)]
78 pub location: String,
79 #[serde(default)]
80 pub count: i64,
81 #[serde(default)]
82 pub leaders: Vec<String>,
83 #[serde(flatten)]
84 pub extra: JsonObject,
85}
86
87#[derive(Debug, Clone, Deserialize)]
88pub(crate) struct LeaderboardsResponse {
89 #[serde(default)]
90 pub leaderboards: HashMap<String, Vec<Leaderboard>>,
91}
92
93#[derive(Debug, Clone, Deserialize, Serialize)]
95pub struct HousingHouse {
96 #[serde(default)]
97 pub uuid: String,
98 #[serde(default)]
99 pub owner: String,
100 #[serde(default)]
101 pub name: Option<String>,
102 #[serde(rename = "createdAt", default)]
103 pub created_at: i64,
104 #[serde(default)]
105 pub players: i64,
106 #[serde(default)]
107 pub cookies: Value,
108 #[serde(flatten)]
109 pub extra: JsonObject,
110}