# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-11-07 02:58:09 Version: 10.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://api.bettor.webhop.biz #MakePartial: True #MakeVirtual: True #MakeInternal: False #MakeDataContractsExtensible: False #AddReturnMarker: True #AddDescriptionAsComments: True #AddDataContractAttributes: False #AddIndexesToDataMembers: False #AddGeneratedCodeAttributes: False #AddResponseStatus: False #AddImplicitVersion: #InitializeCollections: False #ExportValueTypes: False IncludeTypes: InstallProductInstance.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module PayinConstraintType SINGLE_BET = 0 MULTI_BET = 1 SYSTEM_BET = 2 end module WinningsCapType SINGLE_BET = 0 MULTI_BET = 1 SYSTEM_BET = 2 end module IReturn def response_type() = T def get_type_name() = 'IReturn' end class Money include ServiceStack::DTO # @return [BigDecimal] attr_accessor :amount # @return [String] attr_accessor :currency def self.properties { amount: { name: 'amount' }, currency: { name: 'currency' }, } end end class PayinConstraint include ServiceStack::DTO # @return [PayinConstraintType] attr_accessor :type # @return [Money] attr_accessor :min # @return [Money] attr_accessor :default # @return [Money] attr_accessor :warning_threshold # @return [Money] attr_accessor :max def self.properties { type: { name: 'type' }, min: { name: 'min', type: Money }, default: { name: 'default', type: Money }, warning_threshold: { name: 'warningThreshold', type: Money }, max: { name: 'max', type: Money }, } end end class WinningsCap include ServiceStack::DTO # @return [WinningsCapType] attr_accessor :type # @return [Money] attr_accessor :cap def self.properties { type: { name: 'type' }, cap: { name: 'cap', type: Money }, } end end class BettingPolicies include ServiceStack::DTO # @return [RecordList] attr_accessor :payin_constraints # @return [String] attr_accessor :payin_taxation_policy_id # @return [RecordList] attr_accessor :winnings_caps # @return [String] attr_accessor :winnings_taxation_policy_id def self.properties { payin_constraints: { name: 'payinConstraints', type: RecordList }, payin_taxation_policy_id: { name: 'payinTaxationPolicyId' }, winnings_caps: { name: 'winningsCaps', type: RecordList }, winnings_taxation_policy_id: { name: 'winningsTaxationPolicyId' }, } end end class Ref include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :val def self.properties { id: { name: 'id' }, val: { name: 'val' }, } end end class RecordList < Array end class ProductReference include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :value # @return [String] attr_accessor :category # @return [Ref] attr_accessor :product_provider def self.properties { id: { name: 'id' }, value: { name: 'value' }, category: { name: 'category' }, product_provider: { name: 'productProvider', type: Ref }, } end end # @Route("/cmd/products/instances", "POST") class InstallProductInstance include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :name # @return [String] attr_accessor :title # @return [ProductReference] attr_accessor :product # @return [Ref] attr_accessor :currency # @return [BettingPolicies] attr_accessor :betting_policies # @return [String] attr_accessor :api_url # @return [String] attr_accessor :back_office_url # @return [String] attr_accessor :instance_url # @return [String] attr_accessor :feed_player_url def self.properties { id: { name: 'id' }, name: { name: 'name' }, title: { name: 'title' }, product: { name: 'product', type: ProductReference }, currency: { name: 'currency', type: Ref }, betting_policies: { name: 'bettingPolicies', type: BettingPolicies }, api_url: { name: 'apiUrl' }, back_office_url: { name: 'backOfficeUrl' }, instance_url: { name: 'instanceUrl' }, feed_player_url: { name: 'feedPlayerUrl' }, } end def response_type() = ServiceStack::ResponseStatus def get_type_name() = 'InstallProductInstance' def get_method() = 'POST' end