# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-11-07 02:58:10 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: OpenLocation.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module IReturn def response_type() = T def get_type_name() = 'IReturn' 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 RefEx < Ref # @return [RecordDictionary] attr_accessor :data def self.properties { data: { name: 'data', type: RecordDictionary }, } end end class GPSCoordinates include ServiceStack::DTO # @return [Float] attr_accessor :lat # @return [Float] attr_accessor :lng def self.properties { lat: { name: 'lat' }, lng: { name: 'lng' }, } end end class Address include ServiceStack::DTO # @return [String] attr_accessor :street # @return [String] attr_accessor :city # @return [String] attr_accessor :state # @return [String] attr_accessor :postal_code # @return [Ref] attr_accessor :country # @return [GPSCoordinates] attr_accessor :gps # @return [RecordDictionary] attr_accessor :data def self.properties { street: { name: 'street' }, city: { name: 'city' }, state: { name: 'state' }, postal_code: { name: 'postalCode' }, country: { name: 'country', type: Ref }, gps: { name: 'gps', type: GPSCoordinates }, data: { name: 'data', type: RecordDictionary }, } end end class Device include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :name # @return [TrueClass] attr_accessor :is_active # @return [DeviceProfile] attr_accessor :profile # @return [RecordDictionary] attr_accessor :integrations_data def self.properties { id: { name: 'id' }, name: { name: 'name' }, is_active: { name: 'isActive' }, profile: { name: 'profile' }, integrations_data: { name: 'integrationsData', type: RecordDictionary }, } end 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 class ProductInstanceRef include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :name # @return [String] attr_accessor :title # @return [ProductReference] attr_accessor :product def self.properties { id: { name: 'id' }, name: { name: 'name' }, title: { name: 'title' }, product: { name: 'product', type: ProductReference }, } end end class Locale include ServiceStack::DTO # @return [Ref] attr_accessor :time_zone # @return [Ref] attr_accessor :currency # @return [Ref] attr_accessor :language def self.properties { time_zone: { name: 'timeZone', type: Ref }, currency: { name: 'currency', type: Ref }, language: { name: 'language', type: Ref }, } end end class RecordDictionary < Hash end class Device include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :name # @return [TrueClass] attr_accessor :is_active # @return [TrueClass] attr_accessor :is_retired # @return [DeviceOperationalStatus] attr_accessor :operational_status # @return [DeviceType] attr_accessor :type # @return [DeviceProfile] attr_accessor :profile # @return [RefEx] attr_accessor :location # @return [Ref] attr_accessor :location_group # @return [RefEx] attr_accessor :organization # @return [RecordDictionary] attr_accessor :integrations_data def self.properties { id: { name: 'id' }, name: { name: 'name' }, is_active: { name: 'isActive' }, is_retired: { name: 'isRetired' }, operational_status: { name: 'operationalStatus' }, type: { name: 'type' }, profile: { name: 'profile' }, location: { name: 'location', type: RefEx }, location_group: { name: 'locationGroup', type: Ref }, organization: { name: 'organization', type: RefEx }, integrations_data: { name: 'integrationsData', type: RecordDictionary }, } end end class Device include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :name # @return [TrueClass] attr_accessor :is_active # @return [TrueClass] attr_accessor :is_retired # @return [DeviceOperationalStatus] attr_accessor :operational_status # @return [DeviceType] attr_accessor :type # @return [RecordDictionary] attr_accessor :integrations_data # @return [DeviceProfile] attr_accessor :profile def self.properties { id: { name: 'id' }, name: { name: 'name' }, is_active: { name: 'isActive' }, is_retired: { name: 'isRetired' }, operational_status: { name: 'operationalStatus' }, type: { name: 'type' }, integrations_data: { name: 'integrationsData', type: RecordDictionary }, profile: { name: 'profile' }, } end end # @Route("/cmd/locations", "POST") class OpenLocation include ServiceStack::DTO # @return [String] attr_accessor :id # @return [String] attr_accessor :name # @return [RefEx] attr_accessor :organization # @return [Ref] attr_accessor :region # @return [Ref] attr_accessor :group # @return [Address] attr_accessor :address # @return [List] attr_accessor :devices # @return [List] attr_accessor :product_instances # @return [Locale] attr_accessor :locale # @return [Dictionary] attr_accessor :integrations_data def self.properties { id: { name: 'id' }, name: { name: 'name' }, organization: { name: 'organization', type: RefEx }, region: { name: 'region', type: Ref }, group: { name: 'group', type: Ref }, address: { name: 'address', type: Address }, devices: { name: 'devices', type: [Device] }, product_instances: { name: 'productInstances', type: [ProductInstanceRef] }, locale: { name: 'locale', type: Locale }, integrations_data: { name: 'integrationsData' }, } end def response_type() = ServiceStack::ResponseStatus def get_type_name() = 'OpenLocation' def get_method() = 'POST' end