/* Options:
Date: 2025-04-08 02:47:45
Version: 5.140
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://api.clubmanagercentral.com

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

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


@Route("/api/Query/FileAttachment")
@AutoQueryViewer(Description="", IconUrl="octicon:database", Title="FileAttachment")
open class FindFileAttachment : QueryDb<FileAttachmentInstance>(), IReturn<QueryResponse<FileAttachmentInstance>>
{
    companion object { private val responseType = object : TypeToken<QueryResponse<FileAttachmentInstance>>(){}.type }
    override fun getResponseType(): Any? = FindFileAttachment.responseType
}

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

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

    @DataMember(Order=3)
    var Results:ArrayList<T> = ArrayList<T>()

    @DataMember(Order=4)
    var Meta:HashMap<String,String> = HashMap<String,String>()

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

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

open class FileAttachmentInstance
{
    var FileAttachmentId:Int? = null
    var FileData:ByteArray? = null
    var MimeType:String? = null
    var InstanceId:Int? = null
    var InstanceType:String? = null
    var UploadedByUserId:Int? = null
    var UploadedDate:Date? = null
    var FileSize:BigDecimal? = null
    var Filename:String? = null
    var Thumbnail:ByteArray? = null
    var PublicKey:UUID? = null
}

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

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

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

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

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

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

    @DataMember(Order=7)
    var Meta:HashMap<String,String> = HashMap<String,String>()
}