use spacetimedb::{SpacetimeType, table}; use jong_types::{ tiles::Tile, states::{GameState, TurnState}, }; pub mod player; pub use player::*; #[derive(Debug, Clone)] #[table(name = lobby, public)] pub struct Lobby { #[primary_key] #[auto_inc] pub id: u32, #[unique] pub host_player_id: u32, pub players: Vec, pub dealer_idx: u8, pub current_idx: u8, pub game_state: GameState, pub turn_state: TurnState, } #[table(name = wall)] pub struct DbWall { #[primary_key] pub lobby_id: u32, pub tiles: Vec, } #[table(name = tile)] #[derive(Debug, Clone, Copy)] pub struct DbTile { #[primary_key] #[auto_inc] pub id: u32, pub tile: Tile, } #[derive(Debug, Clone, SpacetimeType)] pub enum PlayerOrBot { Player { id: u32 }, Bot { id: u32 }, }