# frozen_string_literal: true # encoding: utf-8 # Options: =begin Date: 2026-08-14 05:55:05 Version: 10.09 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net #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: QueryPlayer.* #ExcludeTypes: #AddNamespaces: #AddDefaultXmlNamespace: http://schemas.servicestack.net/types =end require 'json' require 'servicestack' module PhoneKind HOME = 'Home' MOBILE = 'Mobile' WORK = 'Work' end module PlayerRole LEADER = 'Leader' PLAYER = 'Player' NON_PLAYER = 'NonPlayer' end module PlayerRegion AFRICA = 'Africa' AMERICAS = 'Americas' ASIA = 'Asia' AUSTRALASIA = 'Australasia' EUROPE = 'Europe' end module IReturn def response_type() = T def get_type_name() = 'IReturn' end class Phone include ServiceStack::DTO # @return [PhoneKind] attr_accessor :kind # @return [String] attr_accessor :number # @return [String] attr_accessor :ext def self.properties { kind: { name: 'kind' }, number: { name: 'number' }, ext: { name: 'ext' }, } end end class PlayerGameItem include ServiceStack::DTO # @return [Integer] attr_accessor :id # @References('Player') # @return [Integer] attr_accessor :player_id # @References('GameItem') # @return [String] attr_accessor :game_item_name def self.properties { id: { name: 'id' }, player_id: { name: 'playerId' }, game_item_name: { name: 'gameItemName' }, } end end class Profile < ServiceStack::AuditBase # @return [Integer] attr_accessor :id # @return [PlayerRole] attr_accessor :role # @return [PlayerRegion] attr_accessor :region # @return [String] attr_accessor :username # @return [Integer] attr_accessor :high_score # @return [Integer] attr_accessor :games_played # @return [Integer] attr_accessor :energy # @return [String] attr_accessor :profile_url # @return [String] attr_accessor :cover_url # @return [Dictionary] attr_accessor :meta def self.properties { id: { name: 'id' }, role: { name: 'role' }, region: { name: 'region' }, username: { name: 'username' }, high_score: { name: 'highScore' }, games_played: { name: 'gamesPlayed' }, energy: { name: 'energy' }, profile_url: { name: 'profileUrl' }, cover_url: { name: 'coverUrl' }, meta: { name: 'meta' }, } end end class Player < ServiceStack::AuditBase # @return [Integer] attr_accessor :id # @Required # @return [String] attr_accessor :first_name # @return [String] attr_accessor :last_name # @return [String] attr_accessor :email # @return [List] attr_accessor :phone_numbers # @return [List] attr_accessor :game_items # @return [Profile] attr_accessor :profile # @return [Integer] attr_accessor :profile_id # @return [String] attr_accessor :saved_level_id # @return [Integer] attr_accessor :row_version def self.properties { id: { name: 'id' }, first_name: { name: 'firstName' }, last_name: { name: 'lastName' }, email: { name: 'email' }, phone_numbers: { name: 'phoneNumbers', type: [Phone] }, game_items: { name: 'gameItems', type: [PlayerGameItem] }, profile: { name: 'profile', type: Profile }, profile_id: { name: 'profileId' }, saved_level_id: { name: 'savedLevelId' }, row_version: { name: 'rowVersion' }, } end end class GameItem < ServiceStack::AuditBase # @StringLength(50) # @return [String] attr_accessor :name # @return [String] attr_accessor :image_url # @StringLength(2147483647) # @return [String] attr_accessor :description # @return [DateTime] attr_accessor :date_added def self.properties { name: { name: 'name' }, image_url: { name: 'imageUrl' }, description: { name: 'description' }, date_added: { name: 'dateAdded', type: DateTime }, } end end class QueryPlayer < ServiceStack::QueryDb def response_type() = ServiceStack::QueryResponse.of(Player) def get_type_name() = 'QueryPlayer' def get_method() = 'GET' end