/* Options: Date: 2026-11-07 04:09:19 Version: 10.42 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://s4w2.api.bettor.webhop.biz //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: ConfigureGame.* //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, PartialEq, Default)] #[serde(default)] pub struct CountdownConfiguration { #[serde(rename = "lockdownStepFromEnd")] pub lockdown_step_from_end: i32, #[serde(rename = "assertLockdownStepFromEnd")] pub assert_lockdown_step_from_end: i32, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct DrawConfiguration { #[serde(rename = "introIntervalInMs")] pub intro_interval_in_ms: i32, #[serde(rename = "animationIntervalInMs")] pub animation_interval_in_ms: i32, #[serde(rename = "outroIntervalInMs")] pub outro_interval_in_ms: i32, } #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum RTPStrategies { #[default] RNG = 0, Accumulator = 1, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct HappyHourConfiguration { #[serde(rename = "isHappyHour")] pub is_happy_hour: bool, #[serde(rename = "oddsModifier")] pub odds_modifier: f64, #[serde(rename = "roundPoolBonusPct")] pub round_pool_bonus_pct: f64, #[serde(rename = "useOnlyRoundPoolWithNoOptimizations")] pub use_only_round_pool_with_no_optimizations: bool, #[serde(rename = "overrideSyphonCombinationCountPerRoundThreshold")] pub override_syphon_combination_count_per_round_threshold: bool, #[serde(rename = "syphonCombinationCountPerRoundThresholdPctOverride")] pub syphon_combination_count_per_round_threshold_pct_override: f64, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RoundConfiguration { #[serde(default, skip_serializing_if = "Option::is_none")] pub coefficients: Option, #[serde(rename = "isDoubleTripleActive")] pub is_double_triple_active: bool, #[serde(rename = "isJackpot5Active")] pub is_jackpot5_active: bool, #[serde(rename = "countdownDurationInSeconds")] pub countdown_duration_in_seconds: i32, #[serde(rename = "countdownConfiguration")] #[serde(default, skip_serializing_if = "Option::is_none")] pub countdown_configuration: Option, #[serde(rename = "drawConfiguration")] #[serde(default, skip_serializing_if = "Option::is_none")] pub draw_configuration: Option, #[serde(rename = "resultsDurationInSeconds")] pub results_duration_in_seconds: i32, #[serde(rename = "rtpStrategy")] pub rtp_strategy: RTPStrategies, #[serde(rename = "happyHourConfiguration")] #[serde(default, skip_serializing_if = "Option::is_none")] pub happy_hour_configuration: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct TimePoint { pub hour: i32, pub minute: i32, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct TimeInterval { #[serde(default, skip_serializing_if = "Option::is_none")] pub start: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub end: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct HappyHourItem { pub id: i64, #[serde(default, skip_serializing_if = "Option::is_none")] pub interval: Option, #[serde(rename = "oddsModifier")] pub odds_modifier: f64, #[serde(rename = "roundPoolBonusPct")] pub round_pool_bonus_pct: f64, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct HappyHourConfig { #[serde(rename = "isActive")] pub is_active: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub items: Option>, #[serde(rename = "useOnlyRoundPoolWithNoOptimizations")] pub use_only_round_pool_with_no_optimizations: bool, #[serde(rename = "overrideSyphonCombinationCountPerRoundThreshold")] pub override_syphon_combination_count_per_round_threshold: bool, #[serde(rename = "syphonCombinationCountPerRoundThresholdPctOverride")] pub syphon_combination_count_per_round_threshold_pct_override: f64, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct GameConfiguration { #[serde(rename = "queueSize")] pub queue_size: i32, #[serde(rename = "roundConfiguration")] #[serde(default, skip_serializing_if = "Option::is_none")] pub round_configuration: Option, #[serde(rename = "happyHourConfig")] #[serde(default, skip_serializing_if = "Option::is_none")] pub happy_hour_config: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RecordList(pub Vec); #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum ResponseStatus { #[default] Failure = 0, Success = 1, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct ResponseStatus { #[serde(rename = "errorCode")] pub error_code: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub message: Option, #[serde(rename = "stackTrace")] #[serde(default, skip_serializing_if = "Option::is_none")] pub stack_trace: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub errors: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub meta: Option>, } // Route("/cmd/configure/game", "POST") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct ConfigureGame { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub configuration: Option, } impl IRequest for ConfigureGame { const NAME: &'static str = "ConfigureGame"; const VERB: &'static str = "POST"; } impl IReturn for ConfigureGame { type Response = ResponseStatus; }