/* * This file is part of laurelin_client * Copyright (C) 2023 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use serde::{Deserialize, Serialize}; use super::user::User; mod forming; pub use forming::*; mod my_games; pub use my_games::*; mod join; pub use join::*; mod create; pub use create::*; mod create_action; pub use create_action::*; mod details; pub use details::*; #[derive(Deserialize, Serialize, Clone)] pub enum Command { /// draw N amount of cards from deck Draw { amount: u32 }, /// discard card from hand in slot N Discard { index: u32 }, /// shuffle discard pile to deck ShuffleDiscardToDeck { seed: u32 }, } #[derive(Deserialize)] pub struct Action { pub id: String, pub created_at: String, pub updated_at: String, pub game_id: String, pub invoker: String, pub target: String, pub command: Command, } #[derive(Deserialize)] pub struct Game { pub id: String, pub created_at: String, pub updated_at: String, pub ended_at: String, pub host_id: String, pub host: Option, pub guest_id: String, pub guest: Option, pub state: u8, pub turn: u8, pub actions: Option>, }