/* Options:
Date: 2025-04-12 10:09:18
Version: 8.23
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.bokamera.se

//Package: 
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: CustomFieldSlotsQuery.*
//ExcludeTypes: 
//InitializeCollections: True
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

import java.math.*
import java.util.*
import net.servicestack.client.*


@Route(Path="/customfields/slots", Verbs="GET")
@ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
// @ApiResponse(Description="You have too low privilegies to call this service", StatusCode=403)
@ValidateRequest(Validator="IsAuthenticated")
open class CustomFieldSlotsQuery : IReturn<CustomFieldSlotsQueryResponse>, ICompany
{
    /**
    * Company id to find custom fields for
    */
    @ApiMember(Description="Company id to find custom fields for", ParameterType="query")
    var CompanyId:UUID? = null

    /**
    * Table to which the field belongs
    */
    @ApiMember(Description="Table to which the field belongs", IsRequired=true)
    var Table:String? = null

    /**
    * If you want to receive only free slots (not occupied).
    */
    @ApiMember(Description="If you want to receive only free slots (not occupied).")
    var FreeSlots:Boolean? = null
    companion object { private val responseType = CustomFieldSlotsQueryResponse::class.java }
    override fun getResponseType(): Any? = CustomFieldSlotsQuery.responseType
}

open class CustomFieldSlotsQueryResponse
{
    /**
    * Table to which the field belongs
    */
    @ApiMember(Description="Table to which the field belongs")
    var Table:String? = null

    /**
    * Custom field id
    */
    @ApiMember(Description="Custom field id")
    var Id:Int? = null

    /**
    * Custom field column name
    */
    @ApiMember(Description="Custom field column name")
    var Name:String? = null

    /**
    * The field datatype
    */
    @ApiMember(Description="The field datatype")
    var Datatype:String? = null

    /**
    * If the slot is free or occupied
    */
    @ApiMember(Description="If the slot is free or occupied")
    var Occupied:Boolean? = null
}

open interface ICompany
{
    var CompanyId:UUID?
}