lichess_api/model/puzzles/
dashboard.rs1use serde::{Deserialize, Serialize};
2
3use std::collections::HashMap;
4
5#[derive(Default, Clone, Debug, Serialize)]
6pub struct GetQuery;
7
8pub type GetRequest = crate::model::Request<GetQuery>;
9
10impl GetRequest {
11 pub fn new(days: u32) -> Self {
12 Self::get(format!("/api/puzzle/dashboard/{days}"), None, None)
13 }
14}
15
16impl From<u32> for GetRequest {
17 fn from(days: u32) -> Self {
18 Self::new(days)
19 }
20}
21
22pub type Dashboard = PuzzleDashboard;
23
24#[derive(Clone, Debug, Serialize, Deserialize)]
25pub struct PuzzleDashboard {
26 days: i64,
27 global: PuzzlePerformance,
28 themes: HashMap<String, Theme>,
29}
30
31#[derive(Clone, Debug, Serialize, Deserialize)]
32pub struct Theme {
33 results: PuzzlePerformance,
34 theme: String,
35}
36
37#[derive(Clone, Debug, Serialize, Deserialize)]
38pub struct PuzzlePerformance {
39 #[serde(rename = "firstWins")]
40 first_wins: i64,
41 nb: i64,
42 performance: i64,
43 #[serde(rename = "puzzleRatingAvg")]
44 puzzle_rating_avg: i64,
45 #[serde(rename = "replayWins")]
46 replay_wins: i64,
47}