use serde::{Deserialize, Serialize};
use std::collections::BTreeMap;
#[derive(Debug, Deserialize)]
pub struct ResponseCode {
pub code: i32,
pub message: String,
}
#[derive(Clone, Debug, Deserialize)]
pub struct Platform {
pub id: i32,
pub name: String,
}
#[derive(Debug, Deserialize)]
pub struct Season {
#[serde(rename = "seasonId")]
pub season_id: i64,
#[serde(rename = "startedOn")]
pub started_on: i64,
#[serde(rename = "endedOn")]
pub ended_on: Option<i64>,
}
#[derive(Debug, Deserialize)]
pub struct Population {
pub players: i32,
#[serde(rename = "updatedAt")]
pub updated_at: i64,
}
#[derive(Debug, Deserialize)]
pub struct Playlist {
pub id: i32,
#[serde(rename = "platformId")]
pub platform_id: i32,
pub name: String,
pub population: Population,
}
#[derive(Debug, Deserialize)]
pub struct Tier {
#[serde(rename = "tierId")]
pub id: i32,
#[serde(rename = "tierName")]
pub name: String,
}
#[derive(Debug, Deserialize)]
pub struct Stats {
pub wins: i32,
pub goals: i32,
pub mvps: i32,
pub saves: i32,
pub shots: i32,
pub assists: i32,
}
#[derive(Debug, Deserialize)]
pub struct RankedData {
#[serde(rename = "rankPoints")]
pub rank_points: Option<i32>,
#[serde(rename = "matchesPlayed")]
pub matches_played: Option<i32>,
pub tier: Option<i32>,
pub division: Option<i32>,
}
#[derive(Debug, Deserialize)]
pub struct Player {
#[serde(rename = "uniqueId")]
pub unique_id: String,
#[serde(rename = "displayName")]
pub display_name: String,
pub platform: Platform,
pub avatar: Option<String>,
#[serde(rename = "profileUrl")]
pub profile_url: String,
#[serde(rename = "signatureUrl")]
pub signature_url: String,
pub stats: Stats,
#[serde(rename = "rankedSeasons")]
pub ranked_seasons: BTreeMap<String, BTreeMap<String, RankedData>>,
#[serde(rename = "lastRequested")]
pub last_requested: i64,
#[serde(rename = "createdAt")]
pub created_at: i64,
#[serde(rename = "updatedAt")]
pub updated_at: i64,
#[serde(rename = "nextUpdateAt")]
pub next_update_at: i64,
}
#[derive(Debug, Deserialize)]
pub struct SearchResponse {
pub page: Option<i32>,
pub results: i32,
#[serde(rename = "totalResults")]
pub total_results: i32,
#[serde(rename = "maxResultsPerPage")]
pub max_results_per_page: i32,
pub data: Vec<Player>,
}
#[derive(Debug, Serialize)]
pub struct BatchPlayer {
#[serde(rename = "uniqueId")]
pub id: String,
#[serde(rename = "platformId")]
pub platform_id: i32,
}