1use serde::{Deserialize, Serialize};
2
3use super::common::JsonObject;
4
5#[derive(Debug, Clone, Deserialize, Serialize)]
7pub struct Session {
8 #[serde(default)]
9 pub online: bool,
10 #[serde(rename = "gameType", default)]
11 pub game_type: Option<String>,
12 #[serde(default)]
13 pub mode: Option<String>,
14 #[serde(default)]
15 pub map: Option<String>,
16 #[serde(flatten)]
17 pub extra: JsonObject,
18}
19
20#[derive(Debug, Clone, Deserialize)]
21pub(crate) struct StatusResponse {
22 pub session: Session,
23}
24
25#[derive(Debug, Clone, Deserialize, Serialize)]
27pub struct RecentGame {
28 #[serde(default)]
29 pub date: i64,
30 #[serde(rename = "gameType", default)]
31 pub game_type: Option<String>,
32 #[serde(default)]
33 pub mode: Option<String>,
34 #[serde(default)]
35 pub map: Option<String>,
36 #[serde(default)]
37 pub ended: Option<i64>,
38 #[serde(flatten)]
39 pub extra: JsonObject,
40}
41
42#[derive(Debug, Clone, Deserialize)]
43pub(crate) struct RecentGamesResponse {
44 #[serde(default)]
45 pub games: Vec<RecentGame>,
46}