/* Options: Date: 2026-08-21 17:59:44 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: CreatePlayer.* //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 PhoneKind { #[default] #[serde(rename = "Home")] Home, #[serde(rename = "Mobile")] Mobile, #[serde(rename = "Work")] Work, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Phone { pub kind: PhoneKind, pub number: String, pub ext: String, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Player { #[serde(flatten)] pub audit_base: AuditBase, pub id: i32, // Required #[serde(rename = "firstName")] pub first_name: String, #[serde(rename = "lastName")] pub last_name: String, pub email: String, #[serde(rename = "phoneNumbers")] pub phone_numbers: Vec, #[serde(rename = "gameItems")] pub game_items: Vec, pub profile: Profile, #[serde(rename = "profileId")] pub profile_id: i32, #[serde(rename = "savedLevelId")] pub saved_level_id: String, #[serde(rename = "rowVersion")] pub row_version: u64, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct CreatePlayer { // Validate(Validator="NotEmpty") #[serde(rename = "firstName")] pub first_name: String, #[serde(rename = "lastName")] #[serde(default, skip_serializing_if = "Option::is_none")] pub last_name: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub email: Option, #[serde(rename = "phoneNumbers")] #[serde(default, skip_serializing_if = "Option::is_none")] pub phone_numbers: Option>, // Validate(Validator="NotNull") #[serde(rename = "profileId")] pub profile_id: Option, #[serde(rename = "savedLevelId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub saved_level_id: Option, } impl IRequest for CreatePlayer { const NAME: &'static str = "CreatePlayer"; const VERB: &'static str = "POST"; } impl IReturn for CreatePlayer { type Response = IdResponse; }