/* Options: Date: 2026-08-13 23:51:07 Version: 10.09 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: UpdateProfile.* //ExcludeTypes: //DefaultImports: serde::{Deserialize, Serialize},serde_json::Value,std::collections::HashMap */ #![allow( dead_code, non_camel_case_types, non_snake_case, clippy::upper_case_acronyms )] use serde::{Deserialize, Serialize}; use serde_json::Value; use servicestack::*; use std::collections::HashMap; #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] pub enum PlayerRole { #[default] #[serde(rename = "Leader")] Leader, #[serde(rename = "Player")] Player, #[serde(rename = "NonPlayer")] NonPlayer, } #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] pub enum PlayerRegion { #[default] #[serde(rename = "Africa")] Africa, #[serde(rename = "Americas")] Americas, #[serde(rename = "Asia")] Asia, #[serde(rename = "Australasia")] Australasia, #[serde(rename = "Europe")] Europe, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Profile { #[serde(flatten)] pub audit_base: AuditBase, pub id: i32, pub role: PlayerRole, pub region: PlayerRegion, #[serde(default, skip_serializing_if = "Option::is_none")] pub username: Option, #[serde(rename = "highScore")] pub high_score: i64, #[serde(rename = "gamesPlayed")] pub games_played: i64, pub energy: i32, #[serde(rename = "profileUrl")] #[serde(default, skip_serializing_if = "Option::is_none")] pub profile_url: Option, #[serde(rename = "coverUrl")] #[serde(default, skip_serializing_if = "Option::is_none")] pub cover_url: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub meta: Option>, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct UpdateProfile { pub id: i32, #[serde(default, skip_serializing_if = "Option::is_none")] pub role: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub region: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub username: Option, #[serde(rename = "highScore")] #[serde(default, skip_serializing_if = "Option::is_none")] pub high_score: Option, #[serde(rename = "gamesPlayed")] #[serde(default, skip_serializing_if = "Option::is_none")] pub games_played: Option, // Validate(Validator="InclusiveBetween(0,100)") #[serde(default, skip_serializing_if = "Option::is_none")] pub energy: Option, #[serde(rename = "profileUrl")] #[serde(default, skip_serializing_if = "Option::is_none")] pub profile_url: Option, #[serde(rename = "coverUrl")] #[serde(default, skip_serializing_if = "Option::is_none")] pub cover_url: Option, } impl IRequest for UpdateProfile { const NAME: &'static str = "UpdateProfile"; const VERB: &'static str = "PATCH"; } impl IReturn for UpdateProfile { type Response = IdResponse; }