/* Options: Date: 2026-11-07 04:14:08 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: GetFeed.* //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 Ref { pub id: String, pub val: String, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct BettingApp { #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub version: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RefEx { #[serde(flatten)] pub r#ref: Ref, pub data: RecordDictionary, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Origin { #[serde(default, skip_serializing_if = "Option::is_none")] pub application: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub ip: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub organization: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub region: Option, #[serde(rename = "locationGroup")] #[serde(default, skip_serializing_if = "Option::is_none")] pub location_group: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub location: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub device: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub clerk: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RecordDictionary(pub 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 RecordList(pub Vec); #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum RoundStatus { #[default] Pending = 0, InProgress = 1, Ended = 2, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct JackPot5Winner { #[serde(rename = "betId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub bet_id: Option, #[serde(rename = "nrOfCombinations")] pub nr_of_combinations: i32, #[serde(rename = "winningsAmount")] pub winnings_amount: f64, #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub bettor: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub payload: Option>, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Jackpot5Info { #[serde(rename = "isHit")] pub is_hit: bool, #[serde(rename = "amountAccumulated")] pub amount_accumulated: f64, #[serde(rename = "amountAwarded")] pub amount_awarded: f64, #[serde(rename = "nrOfWinners")] pub nr_of_winners: i32, #[serde(rename = "jackPot5Winners")] #[serde(default, skip_serializing_if = "Option::is_none")] pub jack_pot5_winners: Option>, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct SuperWinInfo { #[serde(rename = "durationInMs")] pub duration_in_ms: i64, #[serde(default, skip_serializing_if = "Option::is_none")] pub reasoning: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct WinnerByCode { #[serde(rename = "roundId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub round_id: Option, #[serde(rename = "drawnAtUtc")] pub drawn_at_utc: String, #[serde(rename = "slipId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub slip_id: Option, #[serde(rename = "betId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub bet_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub code: Option, pub amount: f64, #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub bettor: Option, #[serde(rename = "locationAddressOrBettorInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub location_address_or_bettor_info: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct GlobalCodePotInfo { #[serde(rename = "isActive")] pub is_active: bool, #[serde(rename = "isDrawn")] pub is_drawn: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub winner: Option, #[serde(rename = "inertCode")] #[serde(default, skip_serializing_if = "Option::is_none")] pub inert_code: Option, pub accumulation: f64, } #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum Stages { #[default] None = 0, Countdown = 1, Processing = 2, Draw = 3, Results = 4, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RoundProgress { pub stage: Stages, pub step: i32, pub steps: i32, #[serde(rename = "utcTimestamp")] pub utc_timestamp: String, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Round { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(rename = "createdAt")] pub created_at: String, #[serde(rename = "updatedAt")] pub updated_at: String, #[serde(rename = "shouldStartAtUtc")] pub should_start_at_utc: String, #[serde(rename = "startedAtUtc")] pub started_at_utc: String, pub status: RoundStatus, #[serde(default, skip_serializing_if = "Option::is_none")] pub configuration: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub sequence: Option, #[serde(rename = "jackpot5Info")] #[serde(default, skip_serializing_if = "Option::is_none")] pub jackpot5_info: Option, #[serde(rename = "superWinInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub super_win_info: Option, #[serde(rename = "globalCodePotInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub global_code_pot_info: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub progress: Option, #[serde(rename = "isLocked")] pub is_locked: bool, #[serde(rename = "isCalculated")] pub is_calculated: bool, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct SuperWinInfo { #[serde(rename = "isActive")] pub is_active: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub winner: Option, #[serde(rename = "availableAmount")] pub available_amount: f64, #[serde(rename = "allPrizesAwarded")] pub all_prizes_awarded: bool, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Feed { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub round: Option, #[serde(rename = "lastJackpot5Info")] #[serde(default, skip_serializing_if = "Option::is_none")] pub last_jackpot5_info: Option, #[serde(rename = "superWinInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub super_win_info: Option, #[serde(rename = "globalCodePotInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub global_code_pot_info: Option, } // Route("/qry/feed") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct GetFeed {} impl IRequest for GetFeed { const NAME: &'static str = "GetFeed"; const VERB: &'static str = "POST"; } impl IReturn for GetFeed { type Response = Feed; }