/* Options: Date: 2026-11-07 02:58:16 Version: 10.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bettor.webhop.biz //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: GetProductInstanceConfiguration.* //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 Money { pub amount: f64, pub currency: String, } #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum PayinConstraintType { #[default] SingleBet = 0, MultiBet = 1, SystemBet = 2, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct PayinConstraint { pub r#type: PayinConstraintType, #[serde(default, skip_serializing_if = "Option::is_none")] pub min: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub default: Option, #[serde(rename = "warningThreshold")] #[serde(default, skip_serializing_if = "Option::is_none")] pub warning_threshold: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub max: Option, } #[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Eq, Hash, Default)] #[repr(i32)] pub enum WinningsCapType { #[default] SingleBet = 0, MultiBet = 1, SystemBet = 2, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct WinningsCap { pub r#type: WinningsCapType, #[serde(default, skip_serializing_if = "Option::is_none")] pub cap: Option, } #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct BettingPolicies { #[serde(rename = "payinConstraints")] #[serde(default, skip_serializing_if = "Option::is_none")] pub payin_constraints: Option, #[serde(rename = "payinTaxationPolicyId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub payin_taxation_policy_id: Option, #[serde(rename = "winningsCaps")] #[serde(default, skip_serializing_if = "Option::is_none")] pub winnings_caps: Option, #[serde(rename = "winningsTaxationPolicyId")] #[serde(default, skip_serializing_if = "Option::is_none")] pub winnings_taxation_policy_id: Option, } #[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 RefEx { #[serde(flatten)] pub r#ref: Ref, pub data: RecordDictionary, } #[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 RecordList(pub Vec); #[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 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 ProductInstanceConfiguration { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(rename = "bettingPolicies")] #[serde(default, skip_serializing_if = "Option::is_none")] pub betting_policies: Option, #[serde(rename = "apiUrl")] #[serde(default, skip_serializing_if = "Option::is_none")] pub api_url: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub settings: Option>, } // Route("/qry/configurations/productInstances") #[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Default)] #[serde(default)] pub struct GetProductInstanceConfiguration { #[serde(default, skip_serializing_if = "Option::is_none")] pub id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub origin: Option, } impl IRequest for GetProductInstanceConfiguration { const NAME: &'static str = "GetProductInstanceConfiguration"; const VERB: &'static str = "POST"; } impl IReturn for GetProductInstanceConfiguration { type Response = ProductInstanceConfiguration; }