use std::collections::HashMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use super::common::JsonObject;
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Booster {
#[serde(rename = "_id", default)]
pub id: String,
#[serde(rename = "purchaserUuid", default)]
pub purchaser_uuid: String,
#[serde(default)]
pub amount: f64,
#[serde(rename = "originalLength", default)]
pub original_length: i64,
#[serde(default)]
pub length: i64,
#[serde(rename = "gameType", default)]
pub game_type: i32,
#[serde(rename = "dateActivated", default)]
pub date_activated: i64,
#[serde(flatten)]
pub extra: JsonObject,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct BoostersResponse {
#[serde(default)]
pub boosters: Vec<Booster>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Counts {
#[serde(rename = "playerCount", default)]
pub player_count: i64,
#[serde(default)]
pub games: HashMap<String, GameCount>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct GameCount {
#[serde(default)]
pub players: i64,
#[serde(default)]
pub modes: HashMap<String, i64>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct PunishmentStats {
#[serde(rename = "watchdog_lastMinute", default)]
pub watchdog_last_minute: i64,
#[serde(rename = "watchdog_rollingDaily", default)]
pub watchdog_rolling_daily: i64,
#[serde(rename = "watchdog_total", default)]
pub watchdog_total: i64,
#[serde(rename = "staff_rollingDaily", default)]
pub staff_rolling_daily: i64,
#[serde(rename = "staff_total", default)]
pub staff_total: i64,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct Leaderboard {
#[serde(default)]
pub path: String,
#[serde(default)]
pub prefix: String,
#[serde(default)]
pub title: String,
#[serde(default)]
pub location: String,
#[serde(default)]
pub count: i64,
#[serde(default)]
pub leaders: Vec<String>,
#[serde(flatten)]
pub extra: JsonObject,
}
#[derive(Debug, Clone, Deserialize)]
pub(crate) struct LeaderboardsResponse {
#[serde(default)]
pub leaderboards: HashMap<String, Vec<Leaderboard>>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
pub struct HousingHouse {
#[serde(default)]
pub uuid: String,
#[serde(default)]
pub owner: String,
#[serde(default)]
pub name: Option<String>,
#[serde(rename = "createdAt", default)]
pub created_at: i64,
#[serde(default)]
pub players: i64,
#[serde(default)]
pub cookies: Value,
#[serde(flatten)]
pub extra: JsonObject,
}