lichess_api/model/broadcasts/
create_round.rs1use crate::model::broadcasts::{BroadcastCustomPointsPerColor, BroadcastCustomScoring};
2use crate::model::{Body, Request};
3use serde::Serialize;
4use serde_with::skip_serializing_none;
5
6#[skip_serializing_none]
7#[derive(Default, Clone, Debug, Serialize)]
8pub struct BroadcastRoundForm {
9 pub name: String,
10 #[serde(rename = "syncUrl")]
11 pub sync_url: Option<String>,
12 #[serde(rename = "syncUrls")]
13 pub sync_urls: Option<String>,
14 #[serde(rename = "syncIds")]
15 pub sync_ids: Option<String>,
16 #[serde(rename = "syncUsers")]
17 pub sync_users: Option<String>,
18 #[serde(rename = "onlyRound")]
19 pub only_round: Option<i32>,
20 pub slices: Option<String>,
21 #[serde(rename = "syncSource")]
22 pub sync_source: Option<String>,
23 #[serde(rename = "startsAt")]
24 pub starts_at: Option<i64>,
25 #[serde(rename = "startsAfterPrevious")]
26 pub starts_after_previous: Option<bool>,
27 pub delay: Option<i32>,
28 pub status: Option<String>,
29 pub rated: Option<bool>,
30 #[serde(rename = "customScoring")]
31 pub custom_scoring: Option<BroadcastCustomScoring>,
32 #[serde(rename = "teamCustomScoring")]
33 pub team_custom_scoring: Option<BroadcastCustomPointsPerColor>,
34 pub period: Option<i32>,
35}
36
37#[derive(Default, Clone, Debug, Serialize)]
38pub struct PostQuery;
39
40pub type PostRequest = Request<PostQuery, BroadcastRoundForm>;
41
42impl PostRequest {
43 pub fn new(broadcast_tournament_id: &str, form: BroadcastRoundForm) -> Self {
44 Self::post(
45 format!("/broadcast/{broadcast_tournament_id}/new"),
46 None,
47 Body::Form(form),
48 None,
49 )
50 }
51}