1use connect4_lib::game::ChipDescrip;
2use connect4_lib::game::{BoardState, Game, Player};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Serialize, Deserialize)]
6pub struct Signin {
7 pub status: String,
8 pub tok: String,
9}
10#[derive(Debug, Serialize, Deserialize)]
11pub struct Refresh {
12 pub status: String,
13 pub new_tok: String,
14}
15#[derive(Debug, Serialize, Deserialize)]
16pub struct PlayMove {
17 pub status: String,
18 pub game_id: String,
19 pub column: isize,
20 pub chip_descrip: ChipDescrip,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24pub struct GameData {
25 pub roomcode: String,
26 pub board_state: BoardState,
27 pub users: Vec<String>,
28
29 #[serde(flatten)]
30 pub game: Game,
31}
32
33#[derive(Debug, Serialize, Deserialize)]
34pub struct GameDataResponse {
35 pub status: String,
36 pub game_data: Option<GameData>,
37}
38
39#[derive(Debug, Serialize, Deserialize)]
40pub enum ClaimPayload {
41 username(String),
42}
43
44#[derive(Debug, Serialize, Deserialize)]
45pub struct Claims {
46 pub data: ClaimPayload, pub exp: usize,
48}
49
50#[derive(Debug, Serialize, Deserialize)]
51pub struct GameStats {
52 pub game_id: String,
53 pub player: String,
54 pub games_won: isize,
55 pub games_lost: isize,
56 pub games_played: isize,
57}
58
59#[derive(Debug, Serialize, Deserialize)]
60pub struct GameStatsResponse {
61 pub status: String,
62 pub game_stats: Option<GameStats>,
63}
64
65#[derive(Debug, Serialize, Deserialize)]
66pub struct JoinPlayers {
67 pub players: Vec<i32>,
68}
69
70#[derive(Debug, Serialize, Deserialize)]
71pub struct JoinPlayersResponse {
72 pub status: String,
73 pub player_numbers: Vec<Option<isize>>,
74}