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

//Package: 
//GlobalNamespace: dtos
//AddPropertyAccessors: True
//SettersReturnThis: True
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddDescriptionAsComments: True
//AddImplicitVersion: 
IncludeTypes: FindFileAttachment.*
//ExcludeTypes: 
//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.*;

public class dtos
{

    @Route("/api/Query/FileAttachment")
    @AutoQueryViewer(Description="", IconUrl="octicon:database", Title="FileAttachment")
    public static class FindFileAttachment extends QueryDb<FileAttachmentInstance> implements IReturn<QueryResponse<FileAttachmentInstance>>
    {
        
        private static Object responseType = new TypeToken<QueryResponse<FileAttachmentInstance>>(){}.getType();
        public Object getResponseType() { return responseType; }
    }

    @DataContract
    public static class QueryResponse<T>
    {
        @DataMember(Order=1)
        public Integer Offset = null;

        @DataMember(Order=2)
        public Integer Total = null;

        @DataMember(Order=3)
        public ArrayList<T> Results = null;

        @DataMember(Order=4)
        public HashMap<String,String> Meta = null;

        @DataMember(Order=5)
        public ResponseStatus ResponseStatus = null;
        
        public Integer getOffset() { return Offset; }
        public QueryResponse<T> setOffset(Integer value) { this.Offset = value; return this; }
        public Integer getTotal() { return Total; }
        public QueryResponse<T> setTotal(Integer value) { this.Total = value; return this; }
        public ArrayList<T> getResults() { return Results; }
        public QueryResponse<T> setResults(ArrayList<T> value) { this.Results = value; return this; }
        public HashMap<String,String> getMeta() { return Meta; }
        public QueryResponse<T> setMeta(HashMap<String,String> value) { this.Meta = value; return this; }
        public ResponseStatus getResponseStatus() { return ResponseStatus; }
        public QueryResponse<T> setResponseStatus(ResponseStatus value) { this.ResponseStatus = value; return this; }
    }

    public static class QueryDb<T> extends QueryBase
    {
        
    }

    public static class FileAttachmentInstance
    {
        public Integer FileAttachmentId = null;
        public byte[] FileData = null;
        public String MimeType = null;
        public Integer InstanceId = null;
        public String InstanceType = null;
        public Integer UploadedByUserId = null;
        public Date UploadedDate = null;
        public BigDecimal FileSize = null;
        public String Filename = null;
        public byte[] Thumbnail = null;
        public UUID PublicKey = null;
        
        public Integer getFileAttachmentId() { return FileAttachmentId; }
        public FileAttachmentInstance setFileAttachmentId(Integer value) { this.FileAttachmentId = value; return this; }
        public byte[] getFileData() { return FileData; }
        public FileAttachmentInstance setFileData(byte[] value) { this.FileData = value; return this; }
        public String getMimeType() { return MimeType; }
        public FileAttachmentInstance setMimeType(String value) { this.MimeType = value; return this; }
        public Integer getInstanceId() { return InstanceId; }
        public FileAttachmentInstance setInstanceId(Integer value) { this.InstanceId = value; return this; }
        public String getInstanceType() { return InstanceType; }
        public FileAttachmentInstance setInstanceType(String value) { this.InstanceType = value; return this; }
        public Integer getUploadedByUserId() { return UploadedByUserId; }
        public FileAttachmentInstance setUploadedByUserId(Integer value) { this.UploadedByUserId = value; return this; }
        public Date getUploadedDate() { return UploadedDate; }
        public FileAttachmentInstance setUploadedDate(Date value) { this.UploadedDate = value; return this; }
        public BigDecimal getFileSize() { return FileSize; }
        public FileAttachmentInstance setFileSize(BigDecimal value) { this.FileSize = value; return this; }
        public String getFilename() { return Filename; }
        public FileAttachmentInstance setFilename(String value) { this.Filename = value; return this; }
        public byte[] getThumbnail() { return Thumbnail; }
        public FileAttachmentInstance setThumbnail(byte[] value) { this.Thumbnail = value; return this; }
        public UUID getPublicKey() { return PublicKey; }
        public FileAttachmentInstance setPublicKey(UUID value) { this.PublicKey = value; return this; }
    }

    @DataContract
    public static class QueryBase
    {
        @DataMember(Order=1)
        public Integer Skip = null;

        @DataMember(Order=2)
        public Integer Take = null;

        @DataMember(Order=3)
        public String OrderBy = null;

        @DataMember(Order=4)
        public String OrderByDesc = null;

        @DataMember(Order=5)
        public String Include = null;

        @DataMember(Order=6)
        public String Fields = null;

        @DataMember(Order=7)
        public HashMap<String,String> Meta = null;
        
        public Integer getSkip() { return Skip; }
        public QueryBase setSkip(Integer value) { this.Skip = value; return this; }
        public Integer getTake() { return Take; }
        public QueryBase setTake(Integer value) { this.Take = value; return this; }
        public String getOrderBy() { return OrderBy; }
        public QueryBase setOrderBy(String value) { this.OrderBy = value; return this; }
        public String getOrderByDesc() { return OrderByDesc; }
        public QueryBase setOrderByDesc(String value) { this.OrderByDesc = value; return this; }
        public String getInclude() { return Include; }
        public QueryBase setInclude(String value) { this.Include = value; return this; }
        public String getFields() { return Fields; }
        public QueryBase setFields(String value) { this.Fields = value; return this; }
        public HashMap<String,String> getMeta() { return Meta; }
        public QueryBase setMeta(HashMap<String,String> value) { this.Meta = value; return this; }
    }

}