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

//Package: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: QueryChinookEmployees.*
//ExcludeTypes: 
//InitializeCollections: False
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,java.io.InputStream,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.*
*/

import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


@Route(Path="/employees", Verbs="GET")
// @Route(Path="/employees/{EmployeeId}", Verbs="GET")
open class QueryChinookEmployees : QueryDb<Employees>(), IReturn<QueryResponse<Employees>>, IGet
{
    open var employeeId:Long? = null
    companion object { private val responseType = object : TypeToken<QueryResponse<Employees>>(){}.type }
    override fun getResponseType(): Any? = QueryChinookEmployees.responseType
}

@DataContract
open class QueryResponse<T>
{
    @DataMember(Order=1)
    open var offset:Int? = null

    @DataMember(Order=2)
    open var total:Int? = null

    @DataMember(Order=3)
    open var results:ArrayList<Employees>? = null

    @DataMember(Order=4)
    open var meta:HashMap<String,String>? = null

    @DataMember(Order=5)
    open var responseStatus:ResponseStatus? = null
}

open class QueryDb<T> : QueryBase()
{
}

open class Employees
{
    open var employeeId:Long? = null
    @Required()
    open var lastName:String? = null

    @Required()
    open var firstName:String? = null

    open var title:String? = null
    open var reportsTo:Long? = null
    open var birthDate:Date? = null
    open var hireDate:Date? = null
    open var address:String? = null
    open var city:String? = null
    open var state:String? = null
    open var country:String? = null
    open var postalCode:String? = null
    open var phone:String? = null
    open var fax:String? = null
    open var email:String? = null
}

@DataContract
open class QueryBase
{
    @DataMember(Order=1)
    open var skip:Int? = null

    @DataMember(Order=2)
    open var take:Int? = null

    @DataMember(Order=3)
    open var orderBy:String? = null

    @DataMember(Order=4)
    open var orderByDesc:String? = null

    @DataMember(Order=5)
    open var include:String? = null

    @DataMember(Order=6)
    open var fields:String? = null

    @DataMember(Order=7)
    open var meta:HashMap<String,String>? = null
}