(* Options:
Date: 2025-05-03 19:16:52
Version: 8.51
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://blazor-gallery.servicestack.net

//GlobalNamespace: 
//MakeDataContractsExtensible: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//ExportValueTypes: False
IncludeTypes: CreatePlayer.*
//ExcludeTypes: 
//InitializeCollections: False
//AddNamespaces: 
*)

namespace MyApp.ServiceModel

open System
open System.IO
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    type PhoneKind =
        | Home = 0
        | Mobile = 1
        | Work = 2

    [<AllowNullLiteral>]
    type Phone() = 
        member val Kind:PhoneKind = new PhoneKind() with get,set
        member val Number:String = null with get,set
        member val Ext:String = null with get,set

    [<AllowNullLiteral>]
    type Player() = 
        inherit AuditBase()
        member val Id:Int32 = new Int32() with get,set
        [<Required>]
        member val FirstName:String = null with get,set

        member val LastName:String = null with get,set
        member val Email:String = null with get,set
        member val PhoneNumbers:ResizeArray<Phone> = null with get,set
        member val GameItems:ResizeArray<PlayerGameItem> = null with get,set
        member val Profile:Profile = null with get,set
        member val ProfileId:Int32 = new Int32() with get,set
        member val SavedLevelId:Guid = new Guid() with get,set
        member val RowVersion:UInt64 = new UInt64() with get,set

    [<AllowNullLiteral>]
    type CreatePlayer() = 
        interface IReturn<IdResponse>
        [<Validate(Validator="NotEmpty")>]
        member val FirstName:String = null with get,set

        member val LastName:String = null with get,set
        member val Email:String = null with get,set
        member val PhoneNumbers:ResizeArray<Phone> = null with get,set
        [<Validate(Validator="NotNull")>]
        member val ProfileId:Nullable<Int32> = new Nullable<Int32>() with get,set

        member val SavedLevelId:Nullable<Guid> = new Nullable<Guid>() with get,set