/* Options: Date: 2026-08-14 05:56:27 Version: 10.09 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://blazor-gallery.servicestack.net //GlobalNamespace: //MakePropertiesOptional: False //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: QueryPlayer.* //ExcludeTypes: //DefaultImports: */ package dtos import ( ss "github.com/ServiceStack/servicestack-go" "time" ) type PhoneKind string const ( PhoneKindHome PhoneKind = "Home" PhoneKindMobile = "Mobile" PhoneKindWork = "Work" ) type Phone struct { Kind PhoneKind `json:"kind,omitempty"` Number string `json:"number"` Ext string `json:"ext"` } type PlayerGameItem struct { Id int `json:"id,omitempty"` // @References("typeof(MyApp.ServiceModel.Player)") PlayerId int `json:"playerId,omitempty"` // @References("typeof(MyApp.ServiceModel.GameItem)") GameItemName string `json:"gameItemName"` } type PlayerRole string const ( PlayerRoleLeader PlayerRole = "Leader" PlayerRolePlayer = "Player" PlayerRoleNonPlayer = "NonPlayer" ) type PlayerRegion string const ( PlayerRegionAfrica PlayerRegion = "Africa" PlayerRegionAmericas = "Americas" PlayerRegionAsia = "Asia" PlayerRegionAustralasia = "Australasia" PlayerRegionEurope = "Europe" ) type Profile struct { ss.AuditBase Id int `json:"id,omitempty"` Role PlayerRole `json:"role,omitempty"` Region PlayerRegion `json:"region,omitempty"` Username *string `json:"username,omitempty"` HighScore int64 `json:"highScore,omitempty"` GamesPlayed int64 `json:"gamesPlayed,omitempty"` Energy int `json:"energy,omitempty"` ProfileUrl *string `json:"profileUrl,omitempty"` CoverUrl *string `json:"coverUrl,omitempty"` Meta map[string]string `json:"meta,omitempty"` } type Player struct { ss.AuditBase Id int `json:"id,omitempty"` // @Required() FirstName string `json:"firstName"` LastName string `json:"lastName"` Email string `json:"email"` PhoneNumbers []Phone `json:"phoneNumbers"` GameItems []PlayerGameItem `json:"gameItems"` Profile Profile `json:"profile"` ProfileId int `json:"profileId,omitempty"` SavedLevelId string `json:"savedLevelId,omitempty"` RowVersion uint64 `json:"rowVersion,omitempty"` } type GameItem struct { ss.AuditBase // @StringLength(50) Name string `json:"name"` ImageUrl string `json:"imageUrl"` // @StringLength(2147483647) Description *string `json:"description,omitempty"` DateAdded time.Time `json:"dateAdded,omitempty"` } type QueryPlayer struct { ss.QueryDb } func (QueryPlayer) CreateResponse() (r ss.QueryResponse[Player]) { return } func (QueryPlayer) HttpMethod() string { return "GET" }