use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, Clone)]
pub struct AuthenticationPayload {
#[serde(rename = "EmailAddress")]
pub email_address: String,
#[serde(rename = "Password")]
pub password: String,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct SteamAuthenticationPayload {
#[serde(rename = "SteamTicket")]
pub steam_ticket: String,
#[serde(rename = "Demo")]
pub demo: bool,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct TokenPayload {
#[serde(rename = "PublicID")] pub public_id: String,
#[serde(rename = "Token")]
pub token: String,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct TempGetUserIdPayload {
#[serde(rename = "publicId")] pub public_id: String,
#[serde(rename = "token")]
pub token: String,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct TempGetUserIdResponse {
#[serde(rename = "publicId")] pub public_id: String,
#[serde(rename = "token")]
pub token: String,
#[serde(rename = "userId")]
pub user_id: i32,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct AuthenticationInfo {
#[serde(rename = "PublicId")]
pub public_id: String,
#[serde(rename = "EmailAddress")]
pub email_address: String,
#[serde(rename = "DisplayName")]
pub display_name: String,
#[serde(rename = "Purchases")]
pub purchases: Vec<usize>, #[serde(rename = "Flags")]
pub flags: Vec<String>, #[serde(rename = "Confirmed")]
pub confirmed: bool,
#[serde(rename = "Token")]
pub token: String,
#[serde(rename = "SteamId")]
pub steam_id: Option<String>, #[serde(rename = "ID")]
pub id: i32,
}
impl std::string::ToString for AuthenticationInfo {
fn to_string(&self) -> String {
format!("{} ({})", &self.display_name, &self.public_id)
}
}
#[derive(Deserialize, Serialize, Clone)]
pub struct LobbyPayload {
#[serde(rename = "PublicId")]
pub public_id: String,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct LobbyInfo {
#[serde(rename = "Games")]
pub games: Vec<LiveGameInfo>,
}
#[derive(Deserialize, Serialize, Clone)]
pub struct LiveGameInfo {
#[serde(rename = "Id")]
pub id: usize,
#[serde(rename = "WorldName")]
pub world_name: String,
#[serde(rename = "MaxPlayers")]
pub max_players: usize,
#[serde(rename = "CurrentPlayers")]
pub current_players: usize,
#[serde(rename = "GameVersion")]
pub game_version: String,
#[serde(rename = "Ping")]
pub ping: usize,
#[serde(rename = "HasPlayed")]
pub has_played: bool,
#[serde(rename = "HasPassword")]
pub has_password: bool,
#[serde(rename = "IsPvp")]
pub is_pvp: bool,
#[serde(rename = "IsAntiCheatEnabled")]
pub is_anticheat_enabled: bool,
#[serde(rename = "IsOfficial")]
pub is_official: bool,
#[serde(rename = "ModInfo")]
pub mod_info: String,
#[serde(rename = "Region")]
pub region: String,
}
impl std::string::ToString for LiveGameInfo {
fn to_string(&self) -> String {
format!("{} ({}):{}/{}", self.world_name, self.id, self.current_players, self.max_players)
}
}