/* Options: Date: 2026-11-07 04:16:35 Version: 10.42 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://s4w1.api.bettor.webhop.biz //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetDraw.* //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 Pool { pub id: i32, #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, pub coefficient: f64, pub rtp: f64, pub threshold: f64, pub balance: f64, pub rrtp: f64, #[serde(rename = "rBalance")] pub r_balance: f64, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Pool { pub id: i32, #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, pub rtp: f64, #[serde(rename = "reserveRTP")] pub reserve_r_t_p: f64, #[serde(rename = "totalRTP")] pub total_r_t_p: f64, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Pool { pub id: i32, #[serde(default, skip_serializing_if = "Option::is_none")] pub name: Option, pub treshold: f64, } #[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 = "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 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, 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 DrawItem { pub ordinal: i32, pub number: i32, pub coefficient: f32, #[serde(rename = "isDoubleTriple")] pub is_double_triple: bool, #[serde(rename = "constitutesJackpot")] pub constitutes_jackpot: bool, pub hits: i32, pub win: f64, } #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum CustomBetType { #[default] FirstNumberOdd = 4, FirstNumberEven = 5, FirstNumberLessThan24_5 = 6, FirstNumberGreaterThan24_5 = 7, SumOfFirstFiveLessThan122_5 = 8, SumOfFirstFiveGreaterThan122_5 = 9, FirstColor1 = 10, FirstColor2 = 11, FirstColor3 = 12, FirstColor4 = 13, FirstColor5 = 14, FirstColor6 = 15, FirstColor7 = 16, FirstColor8 = 17, MoreOddNumbers = 18, MoreEvenNumbers = 19, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct CustomBetOutcome { pub r#type: CustomBetType, pub coef: f32, #[serde(rename = "winCount")] pub win_count: i32, pub win: f64, #[serde(rename = "isWin")] pub is_win: bool, #[serde(default, skip_serializing_if = "Option::is_none")] pub results: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct RoundOutcome { #[serde(default, skip_serializing_if = "Option::is_none")] pub draw: Option>, #[serde(rename = "customBetOutcomes")] #[serde(default, skip_serializing_if = "Option::is_none")] pub custom_bet_outcomes: Option>, #[serde(rename = "lcpWinners")] #[serde(default, skip_serializing_if = "Option::is_none")] pub lcp_winners: Option>, #[serde(rename = "superWinInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub super_win_info: Option, #[serde(rename = "jackpot5Info")] #[serde(default, skip_serializing_if = "Option::is_none")] pub jackpot5_info: Option, #[serde(rename = "globalCodePotInfo")] #[serde(default, skip_serializing_if = "Option::is_none")] pub global_code_pot_info: Option, pub stake: f64, #[serde(rename = "betCount")] pub bet_count: i32, pub winnings: f64, pub balance: f64, #[serde(rename = "returnToPlayer")] pub return_to_player: f64, #[serde(rename = "winCount")] pub win_count: i32, #[serde(rename = "slipWinCount")] pub slip_win_count: i32, #[serde(rename = "winCountPct")] pub win_count_pct: f32, #[serde(rename = "slipCount")] pub slip_count: i32, #[serde(rename = "unitBetCount")] pub unit_bet_count: i32, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct Draw { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub sequence: Option, #[serde(rename = "inputAccumulation")] #[serde(default, skip_serializing_if = "Option::is_none")] pub input_accumulation: Option>, #[serde(rename = "outputAccumulation")] #[serde(default, skip_serializing_if = "Option::is_none")] pub output_accumulation: Option>, #[serde(default, skip_serializing_if = "Option::is_none")] pub outcome: Option, } // Route("/qry/rounds/draw") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct GetDraw { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, } impl IRequest for GetDraw { const NAME: &'static str = "GetDraw"; const VERB: &'static str = "POST"; } impl IReturn for GetDraw { type Response = Draw; }