use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
pub struct AuthCode {
#[serde(rename = "@value")]
pub value: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct AuthToken {
#[serde(rename = "@value")]
pub value: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Challenge {
#[serde(rename = "@key")]
pub key: String,
#[serde(rename = "@version")]
pub version: String,
#[serde(rename = "@build")]
pub build: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ChallengeAccepted {
#[serde(rename = "@response")]
pub response: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct ChallengeResponse {
#[serde(rename = "@response")]
pub response: String,
#[serde(rename = "@key")]
pub key: String,
#[serde(rename = "@version")]
pub protocol_version: String,
#[serde(rename = "ContentId")]
pub content_id: String,
#[serde(rename = "Title")]
pub title: String,
#[serde(rename = "MultiplayerId")]
pub multiplayer_id: String,
#[serde(rename = "Language")]
pub language: String,
#[serde(rename = "Version")]
pub sdk_version: String,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GetAuthCode {
#[serde(rename = "@UserId")]
pub user_id: u64,
#[serde(rename = "@ClientId")]
pub client_id: String,
#[serde(rename = "@Scope")]
pub scope: String,
#[serde(rename = "@AppendAuthSource")]
pub append_auth_source: bool,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct GetAuthToken;
#[derive(Debug, Serialize, Deserialize)]
pub struct Login {
#[serde(rename = "@IsLoggedIn")]
pub is_logged_in: bool,
#[serde(rename = "@UserIndex")]
pub user_index: i32,
#[serde(rename = "@LoginReasonCode")]
pub login_reason_code: LoginReasonCode,
}
#[derive(Debug, Serialize, Deserialize)]
pub enum LoginReasonCode {
#[serde(rename = "UNDEFINED")]
Undefined,
#[serde(rename = "USER_INITIATED")]
UserInitiated,
#[serde(rename = "ALREADY_ONLINE")]
AlreadyOnline,
#[serde(rename = "NETWORK_ERROR")]
NetworkError,
#[serde(rename = "INVALID_CREDENTIALS")]
InvalidCredentials,
#[serde(rename = "ACCESSTOKEN_REFRESH_ERROR")]
AccesstokenRefreshError,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Logout {
#[serde(rename = "@UserIndex")]
pub user_index: i32,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct PostWincodes {
#[serde(rename = "Code", default)]
pub codes: Vec<Wincode>,
#[serde(rename = "@AuthCode")]
pub auth_code: String,
#[serde(rename = "@UserId")]
pub user_id: u64,
#[serde(rename = "@PersonaId")]
pub persona_id: u64,
}
#[derive(Debug, Serialize, Deserialize)]
pub struct Wincode {
#[serde(rename = "@key")]
pub key: String,
#[serde(rename = "@value")]
pub value: String,
}