# 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: NotifyFrontend.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module SlipSubmissionStatus PENDING = 0 ACCEPTED = 2 REJECTED = 3 FAILED = 4 end 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 RecordDictionary < Hash end class BettingApp include ServiceStack::DTO # @return [String] attr_accessor :name # @return [String] attr_accessor :version def self.properties { name: { name: 'name' }, version: { name: 'version' }, } end end class Origin include ServiceStack::DTO # @return [BettingApp] attr_accessor :application # @return [String] attr_accessor :ip # @return [RefEx] attr_accessor :organization # @return [Ref] attr_accessor :region # @return [Ref] attr_accessor :location_group # @return [RefEx] attr_accessor :location # @return [RefEx] attr_accessor :device # @return [Ref] attr_accessor :clerk def self.properties { application: { name: 'application', type: BettingApp }, ip: { name: 'ip' }, organization: { name: 'organization', type: RefEx }, region: { name: 'region', type: Ref }, location_group: { name: 'locationGroup', type: Ref }, location: { name: 'location', type: RefEx }, device: { name: 'device', type: RefEx }, clerk: { name: 'clerk', type: Ref }, } end end class AcceptedSlipInfo include ServiceStack::DTO # @return [String] attr_accessor :id # @return [Origin] attr_accessor :origin # @return [Ref] attr_accessor :bettor # @return [SlipSubmissionStatus] attr_accessor :slip_submission_status # @return [RecordDictionary] attr_accessor :payload def self.properties { id: { name: 'id' }, origin: { name: 'origin', type: Origin }, bettor: { name: 'bettor', type: Ref }, slip_submission_status: { name: 'slipSubmissionStatus' }, payload: { name: 'payload', type: RecordDictionary }, } end end class ErrorInfo include ServiceStack::DTO # @return [Origin] attr_accessor :origin # @return [String] attr_accessor :error_code # @return [String] attr_accessor :error_description # @return [Dictionary] attr_accessor :payload def self.properties { origin: { name: 'origin', type: Origin }, error_code: { name: 'errorCode' }, error_description: { name: 'errorDescription' }, payload: { name: 'payload' }, } end end class ConfirmationInfo include ServiceStack::DTO # @return [Ref] attr_accessor :bettor # @return [Origin] attr_accessor :origin # @return [String] attr_accessor :confirmation_code # @return [String] attr_accessor :confirmation_description # @return [Dictionary] attr_accessor :payload def self.properties { bettor: { name: 'bettor', type: Ref }, origin: { name: 'origin', type: Origin }, confirmation_code: { name: 'confirmationCode' }, confirmation_description: { name: 'confirmationDescription' }, payload: { name: 'payload' }, } end end class WalletTransactionInfo include ServiceStack::DTO # @return [String] attr_accessor :reason def self.properties { reason: { name: 'reason' }, } end end class WalletUpdateInfo include ServiceStack::DTO # @return [Ref] attr_accessor :bettor # @return [Origin] attr_accessor :origin # @return [WalletTransactionInfo] attr_accessor :transaction_info def self.properties { bettor: { name: 'bettor', type: Ref }, origin: { name: 'origin', type: Origin }, transaction_info: { name: 'transactionInfo', type: WalletTransactionInfo }, } end end class UserNotificationsUpdatedInfo include ServiceStack::DTO # @return [String] attr_accessor :id def self.properties { id: { name: 'id' }, } end end class ApplicationEventsUpdated include ServiceStack::DTO end class SlipDeliveryIssueRefundRequestUpdated include ServiceStack::DTO end # @Route("/cmd/notify/frontend/") class NotifyFrontend include ServiceStack::DTO # @return [AcceptedSlipInfo] attr_accessor :accepted_slip_info # @return [ErrorInfo] attr_accessor :error_info # @return [ConfirmationInfo] attr_accessor :confirmation_info # @return [String] attr_accessor :slip_cancellation_id # @return [WalletUpdateInfo] attr_accessor :wallet_updated_info # @return [UserNotificationsUpdatedInfo] attr_accessor :user_notifications_updated # @return [ApplicationEventsUpdated] attr_accessor :application_events_updated # @return [SlipDeliveryIssueRefundRequestUpdated] attr_accessor :slip_delivery_issue_refund_request_updated def self.properties { accepted_slip_info: { name: 'acceptedSlipInfo', type: AcceptedSlipInfo }, error_info: { name: 'errorInfo', type: ErrorInfo }, confirmation_info: { name: 'confirmationInfo', type: ConfirmationInfo }, slip_cancellation_id: { name: 'slipCancellationId' }, wallet_updated_info: { name: 'walletUpdatedInfo', type: WalletUpdateInfo }, user_notifications_updated: { name: 'userNotificationsUpdated', type: UserNotificationsUpdatedInfo }, application_events_updated: { name: 'applicationEventsUpdated', type: ApplicationEventsUpdated }, slip_delivery_issue_refund_request_updated: { name: 'slipDeliveryIssueRefundRequestUpdated', type: SlipDeliveryIssueRefundRequestUpdated }, } end def response_type() = ServiceStack::ResponseStatus def get_type_name() = 'NotifyFrontend' def get_method() = 'POST' end