/* Options:
Date: 2025-05-30 15:04:12
Version: 8.40
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://active-ewebservice.biz/aeservices30/api

//Package: 
//GlobalNamespace: dtos
//AddPropertyAccessors: True
//SettersReturnThis: True
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddDescriptionAsComments: True
//AddImplicitVersion: 
IncludeTypes: StockCheckRequest.*
//ExcludeTypes: 
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

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

public class dtos
{

    /**
    * StockCheckRequires active-e Inventory Service or active-e Vortx E-Commerce or active-e 3rd Party E-Commerce
    */
    @Route(Path="/StockCheck", Verbs="POST")
    @DataContract
    public static class StockCheckRequest extends BaseRequest implements IReturn<StockCheckResponse>
    {
        @DataMember
        public ArrayList<StockCheckItem> Items = null;
        
        public ArrayList<StockCheckItem> getItems() { return Items; }
        public StockCheckRequest setItems(ArrayList<StockCheckItem> value) { this.Items = value; return this; }
        private static Object responseType = StockCheckResponse.class;
        public Object getResponseType() { return responseType; }
    }

    @DataContract
    public static class StockCheckResponse extends BaseResponse
    {
        @DataMember
        public Boolean EverythingAvailable = null;

        @DataMember
        public ArrayList<StockCheckErrorItem> OutOfStockItems = null;
        
        public Boolean isEverythingAvailable() { return EverythingAvailable; }
        public StockCheckResponse setEverythingAvailable(Boolean value) { this.EverythingAvailable = value; return this; }
        public ArrayList<StockCheckErrorItem> getOutOfStockItems() { return OutOfStockItems; }
        public StockCheckResponse setOutOfStockItems(ArrayList<StockCheckErrorItem> value) { this.OutOfStockItems = value; return this; }
    }

    @DataContract
    public static class BaseRequest
    {
        /**
        * This is your AIM API Key provided by Tri-Tech
        */
        @DataMember
        @ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")
        public String ApiKey = null;

        @DataMember
        @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
        public String OAuthToken = null;
        
        public String getApiKey() { return ApiKey; }
        public BaseRequest setApiKey(String value) { this.ApiKey = value; return this; }
        public String getOAuthToken() { return OAuthToken; }
        public BaseRequest setOAuthToken(String value) { this.OAuthToken = value; return this; }
    }

    @DataContract
    public static class StockCheckItem
    {
        @DataMember
        public String SKU = null;

        @DataMember
        public Long LocationId = null;

        @DataMember
        public String SerialNumber = null;

        @DataMember
        public BigDecimal QtyRequested = null;
        
        public String getSku() { return SKU; }
        public StockCheckItem setSku(String value) { this.SKU = value; return this; }
        public Long getLocationId() { return LocationId; }
        public StockCheckItem setLocationId(Long value) { this.LocationId = value; return this; }
        public String getSerialNumber() { return SerialNumber; }
        public StockCheckItem setSerialNumber(String value) { this.SerialNumber = value; return this; }
        public BigDecimal getQtyRequested() { return QtyRequested; }
        public StockCheckItem setQtyRequested(BigDecimal value) { this.QtyRequested = value; return this; }
    }

    @DataContract
    public static class StockCheckErrorItem
    {
        @DataMember
        public String SKU = null;

        @DataMember
        public Long LocationId = null;

        @DataMember
        public String SerialNumber = null;

        @DataMember
        public BigDecimal QtyRequested = null;

        @DataMember
        public String Message = null;
        
        public String getSku() { return SKU; }
        public StockCheckErrorItem setSku(String value) { this.SKU = value; return this; }
        public Long getLocationId() { return LocationId; }
        public StockCheckErrorItem setLocationId(Long value) { this.LocationId = value; return this; }
        public String getSerialNumber() { return SerialNumber; }
        public StockCheckErrorItem setSerialNumber(String value) { this.SerialNumber = value; return this; }
        public BigDecimal getQtyRequested() { return QtyRequested; }
        public StockCheckErrorItem setQtyRequested(BigDecimal value) { this.QtyRequested = value; return this; }
        public String getMessage() { return Message; }
        public StockCheckErrorItem setMessage(String value) { this.Message = value; return this; }
    }

    @DataContract
    public static class BaseResponse
    {
        /**
        * 
        */
        @DataMember
        @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
        public BaseResponseResult Status = null;
        
        public BaseResponseResult getStatus() { return Status; }
        public BaseResponse setStatus(BaseResponseResult value) { this.Status = value; return this; }
    }

}