Skip to main content

lichess_api/model/arena_tournaments/
mod.rs

1pub mod create;
2pub mod created_by_user;
3pub mod current;
4pub mod games;
5pub mod join;
6pub mod played_by_user;
7pub mod results;
8pub mod show;
9pub mod team_battle;
10pub mod teams;
11pub mod terminate;
12pub mod update;
13pub mod withdraw;
14
15use crate::model::{
16    ArenaMinRatedGames, ArenaRatingObj, ArenaSchedule, ArenaTournament, LightUser, PerfType, Title,
17    Verdicts,
18};
19use serde::{Deserialize, Serialize};
20use serde_with::skip_serializing_none;
21
22#[skip_serializing_none]
23#[derive(Clone, Debug, Deserialize, Serialize)]
24pub struct ArenaTournaments {
25    pub created: Vec<ArenaTournament>,
26    pub started: Vec<ArenaTournament>,
27    pub finished: Vec<ArenaTournament>,
28}
29
30#[skip_serializing_none]
31#[derive(Clone, Debug, Deserialize, Serialize)]
32#[serde(rename_all = "camelCase")]
33pub struct ArenaTournamentFull {
34    pub id: String,
35    pub full_name: String,
36    pub rated: Option<bool>,
37    pub spotlight: Option<ArenaSpotlight>,
38    pub berserkable: Option<bool>,
39    pub only_titled: Option<bool>,
40    pub clock: crate::model::ArenaClock,
41    pub minutes: u32,
42    pub created_by: Option<String>,
43    pub system: Option<String>,
44    pub seconds_to_start: Option<i32>,
45    pub seconds_to_finish: Option<i32>,
46    pub is_finished: Option<bool>,
47    pub is_recently_finished: Option<bool>,
48    pub pairings_closed: Option<bool>,
49    pub starts_at: Option<String>,
50    pub nb_players: u32,
51    pub verdicts: Option<Verdicts>,
52    pub quote: Option<ArenaQuote>,
53    pub great_player: Option<ArenaGreatPlayer>,
54    pub allow_list: Option<Vec<String>>,
55    pub has_max_rating: Option<bool>,
56    pub max_rating: Option<ArenaRatingObj>,
57    pub min_rating: Option<ArenaRatingObj>,
58    pub min_rated_games: Option<ArenaMinRatedGames>,
59    pub bots_allowed: Option<bool>,
60    pub min_account_age_in_days: Option<i32>,
61    pub perf: Option<ArenaFullPerf>,
62    pub schedule: Option<ArenaSchedule>,
63    pub description: Option<String>,
64    pub variant: Option<String>,
65    pub duels: Option<Vec<ArenaDuel>>,
66    pub standing: Option<ArenaStanding>,
67    pub featured: Option<ArenaFeaturedGame>,
68    pub podium: Option<Vec<ArenaPodiumPlayer>>,
69    pub stats: Option<ArenaStats>,
70    pub my_username: Option<String>,
71}
72
73#[derive(Clone, Debug, Deserialize, Serialize)]
74pub struct ArenaSpotlight {
75    pub headline: Option<String>,
76}
77
78#[derive(Clone, Debug, Deserialize, Serialize)]
79pub struct ArenaQuote {
80    pub text: Option<String>,
81    pub author: Option<String>,
82}
83
84#[derive(Clone, Debug, Deserialize, Serialize)]
85pub struct ArenaGreatPlayer {
86    pub name: Option<String>,
87    pub url: Option<String>,
88}
89
90#[skip_serializing_none]
91#[derive(Clone, Debug, Deserialize, Serialize)]
92pub struct ArenaFullPerf {
93    pub icon: Option<String>,
94    pub key: PerfType,
95    pub name: String,
96}
97
98#[skip_serializing_none]
99#[derive(Clone, Debug, Deserialize, Serialize)]
100pub struct ArenaDuel {
101    pub id: Option<String>,
102    pub p: Option<Vec<ArenaDuelPlayer>>,
103}
104
105#[skip_serializing_none]
106#[derive(Clone, Debug, Deserialize, Serialize)]
107pub struct ArenaDuelPlayer {
108    pub n: Option<String>,
109    pub r: Option<i32>,
110    pub k: Option<i32>,
111}
112
113#[skip_serializing_none]
114#[derive(Clone, Debug, Deserialize, Serialize)]
115pub struct ArenaStanding {
116    pub page: Option<i32>,
117    pub players: Vec<ArenaStandingPlayer>,
118}
119
120#[skip_serializing_none]
121#[derive(Clone, Debug, Deserialize, Serialize)]
122pub struct ArenaStandingPlayer {
123    pub name: String,
124    pub title: Option<Title>,
125    pub patron: Option<bool>,
126    #[serde(rename = "patronColor")]
127    pub patron_color: Option<u8>,
128    pub flair: Option<String>,
129    pub rank: Option<i32>,
130    pub rating: Option<i32>,
131    pub score: Option<i32>,
132    pub sheet: Option<ArenaSheet>,
133}
134
135#[skip_serializing_none]
136#[derive(Clone, Debug, Deserialize, Serialize)]
137pub struct ArenaSheet {
138    pub scores: String,
139    pub fire: Option<bool>,
140}
141
142#[skip_serializing_none]
143#[derive(Clone, Debug, Deserialize, Serialize)]
144pub struct ArenaFeaturedGame {
145    pub id: Option<String>,
146    pub fen: Option<String>,
147    pub orientation: Option<String>,
148    pub color: Option<String>,
149    #[serde(rename = "lastMove")]
150    pub last_move: Option<String>,
151    pub white: Option<ArenaFeaturedPlayer>,
152    pub black: Option<ArenaFeaturedPlayer>,
153    pub c: Option<ArenaFeaturedClock>,
154}
155
156#[skip_serializing_none]
157#[derive(Clone, Debug, Deserialize, Serialize)]
158pub struct ArenaFeaturedPlayer {
159    pub name: Option<String>,
160    pub id: Option<String>,
161    pub rank: Option<i32>,
162    pub rating: Option<i32>,
163}
164
165#[skip_serializing_none]
166#[derive(Clone, Debug, Deserialize, Serialize)]
167pub struct ArenaFeaturedClock {
168    pub white: Option<i32>,
169    pub black: Option<i32>,
170}
171
172#[skip_serializing_none]
173#[derive(Clone, Debug, Deserialize, Serialize)]
174pub struct ArenaPodiumPlayer {
175    pub name: String,
176    pub title: Option<Title>,
177    pub patron: Option<bool>,
178    #[serde(rename = "patronColor")]
179    pub patron_color: Option<u8>,
180    pub flair: Option<String>,
181    pub rank: Option<i32>,
182    pub rating: Option<i32>,
183    pub score: Option<i32>,
184    pub nb: Option<ArenaPodiumNb>,
185    pub performance: Option<i32>,
186}
187
188#[derive(Clone, Debug, Deserialize, Serialize)]
189pub struct ArenaPodiumNb {
190    pub game: Option<i32>,
191    pub berserk: Option<i32>,
192    pub win: Option<i32>,
193}
194
195#[derive(Clone, Debug, Deserialize, Serialize)]
196#[serde(rename_all = "camelCase")]
197pub struct ArenaStats {
198    pub games: i32,
199    pub moves: i32,
200    pub white_wins: i32,
201    pub black_wins: i32,
202    pub draws: i32,
203    pub berserks: i32,
204    pub average_rating: i32,
205}
206
207#[skip_serializing_none]
208#[derive(Clone, Debug, Deserialize, Serialize)]
209pub struct ArenaResult {
210    pub rank: i32,
211    pub score: i32,
212    pub rating: i32,
213    pub username: String,
214    pub performance: i32,
215    pub title: Option<Title>,
216    pub team: Option<String>,
217    pub flair: Option<String>,
218    #[serde(rename = "patronColor")]
219    pub patron_color: Option<u8>,
220    pub sheet: Option<ArenaSheet>,
221}
222
223#[derive(Clone, Debug, Deserialize, Serialize)]
224pub struct ArenaTeamStanding {
225    pub id: String,
226    pub teams: Vec<ArenaTeamStandingEntry>,
227}
228
229#[derive(Clone, Debug, Deserialize, Serialize)]
230pub struct ArenaTeamStandingEntry {
231    pub rank: i32,
232    pub id: String,
233    pub score: i32,
234    pub players: Vec<ArenaTeamStandingPlayer>,
235}
236
237#[skip_serializing_none]
238#[derive(Clone, Debug, Deserialize, Serialize)]
239pub struct ArenaTeamStandingPlayer {
240    pub user: LightUser,
241    pub score: Option<i32>,
242}
243
244#[derive(Clone, Debug, Deserialize, Serialize)]
245pub struct ArenaTournamentPlayed {
246    pub tournament: ArenaTournament,
247    pub player: ArenaTournamentPlayer,
248}
249
250#[skip_serializing_none]
251#[derive(Clone, Debug, Deserialize, Serialize)]
252pub struct ArenaTournamentPlayer {
253    pub games: i32,
254    pub score: i32,
255    pub rank: i32,
256    pub performance: Option<i32>,
257}