Skip to main content

lichess_api/model/arena_tournaments/
create.rs

1use crate::model::{Body, Request, VariantKey};
2use serde::Serialize;
3use serde_with::skip_serializing_none;
4
5#[skip_serializing_none]
6#[derive(Default, Clone, Debug, Serialize)]
7pub struct CreateArenaTournamentForm {
8    pub name: Option<String>,
9    #[serde(rename = "clockTime")]
10    pub clock_time: f64,
11    #[serde(rename = "clockIncrement")]
12    pub clock_increment: u32,
13    pub minutes: u32,
14    #[serde(rename = "waitMinutes")]
15    pub wait_minutes: Option<u32>,
16    #[serde(rename = "startDate")]
17    pub start_date: Option<i64>,
18    pub variant: Option<VariantKey>,
19    pub rated: Option<bool>,
20    pub position: Option<String>,
21    pub berserkable: Option<bool>,
22    pub streakable: Option<bool>,
23    #[serde(rename = "hasChat")]
24    pub has_chat: Option<bool>,
25    pub description: Option<String>,
26    pub password: Option<String>,
27    #[serde(rename = "teamBattleByTeam")]
28    pub team_battle_by_team: Option<String>,
29    #[serde(rename = "conditions.teamMember.teamId")]
30    pub conditions_team_member_team_id: Option<String>,
31    #[serde(rename = "conditions.minRating.rating")]
32    pub conditions_min_rating: Option<u32>,
33    #[serde(rename = "conditions.maxRating.rating")]
34    pub conditions_max_rating: Option<u32>,
35    #[serde(rename = "conditions.nbRatedGame.nb")]
36    pub conditions_nb_rated_game: Option<u32>,
37    #[serde(rename = "conditions.allowList")]
38    pub conditions_allow_list: Option<String>,
39    #[serde(rename = "conditions.bots")]
40    pub conditions_bots: Option<bool>,
41    #[serde(rename = "conditions.accountAge")]
42    pub conditions_account_age: Option<u32>,
43}
44
45#[derive(Default, Clone, Debug, Serialize)]
46pub struct PostQuery;
47
48pub type PostRequest = Request<PostQuery, CreateArenaTournamentForm>;
49
50impl PostRequest {
51    pub fn new(form: CreateArenaTournamentForm) -> Self {
52        Self::post("/api/tournament", None, Body::Form(form), None)
53    }
54}
55
56impl From<CreateArenaTournamentForm> for PostRequest {
57    fn from(form: CreateArenaTournamentForm) -> Self {
58        Self::new(form)
59    }
60}