1use serde::{Deserialize, Serialize};
2use std::collections::BTreeMap;
3
4#[derive(Debug, Deserialize)]
8pub struct ResponseCode {
9 pub code: i32,
10 pub message: String,
11}
12
13#[derive(Clone, Debug, Deserialize)]
15pub struct Platform {
16 pub id: i32,
22 pub name: String,
23}
24
25#[derive(Debug, Deserialize)]
27pub struct Season {
28 #[serde(rename = "seasonId")]
30 pub season_id: i64,
31 #[serde(rename = "startedOn")]
33 pub started_on: i64,
34 #[serde(rename = "endedOn")]
38 pub ended_on: Option<i64>,
39}
40
41#[derive(Debug, Deserialize)]
43pub struct Population {
44 pub players: i32,
46 #[serde(rename = "updatedAt")]
48 pub updated_at: i64,
49}
50
51#[derive(Debug, Deserialize)]
53pub struct Playlist {
54 pub id: i32,
55 #[serde(rename = "platformId")]
57 pub platform_id: i32,
58 pub name: String,
59 pub population: Population,
60}
61
62#[derive(Debug, Deserialize)]
64pub struct Tier {
65 #[serde(rename = "tierId")]
111 pub id: i32,
112 #[serde(rename = "tierName")]
113 pub name: String,
114}
115
116#[derive(Debug, Deserialize)]
118pub struct Stats {
119 pub wins: i32,
120 pub goals: i32,
121 pub mvps: i32,
122 pub saves: i32,
123 pub shots: i32,
124 pub assists: i32,
125}
126
127#[derive(Debug, Deserialize)]
129pub struct RankedData {
130 #[serde(rename = "rankPoints")]
131 pub rank_points: Option<i32>,
132 #[serde(rename = "matchesPlayed")]
133 pub matches_played: Option<i32>,
134 pub tier: Option<i32>,
135 pub division: Option<i32>,
136}
137
138#[derive(Debug, Deserialize)]
142pub struct Player {
143 #[serde(rename = "uniqueId")]
145 pub unique_id: String,
146 #[serde(rename = "displayName")]
147 pub display_name: String,
148 pub platform: Platform,
149 pub avatar: Option<String>,
150 #[serde(rename = "profileUrl")]
151 pub profile_url: String,
152 #[serde(rename = "signatureUrl")]
153 pub signature_url: String,
154 pub stats: Stats,
155 #[serde(rename = "rankedSeasons")]
156 pub ranked_seasons: BTreeMap<String, BTreeMap<String, RankedData>>,
157 #[serde(rename = "lastRequested")]
159 pub last_requested: i64,
160 #[serde(rename = "createdAt")]
162 pub created_at: i64,
163 #[serde(rename = "updatedAt")]
165 pub updated_at: i64,
166 #[serde(rename = "nextUpdateAt")]
168 pub next_update_at: i64,
169}
170
171#[derive(Debug, Deserialize)]
173pub struct SearchResponse {
174 pub page: Option<i32>,
175 pub results: i32,
176 #[serde(rename = "totalResults")]
178 pub total_results: i32,
179 #[serde(rename = "maxResultsPerPage")]
180 pub max_results_per_page: i32,
181 pub data: Vec<Player>,
182}
183
184#[derive(Debug, Serialize)]
186pub struct BatchPlayer {
187 #[serde(rename = "uniqueId")]
188 pub id: String,
189 #[serde(rename = "platformId")]
190 pub platform_id: i32,
191}