/* Options:
Date: 2025-05-18 07:26:26
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: ECommerceOrderStatusRequest.*
//ExcludeTypes: 
//TreatTypesAsStrings: 
//DefaultImports: java.math.*,java.util.*,net.servicestack.client.*
*/

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

public class dtos
{

    /**
    * ECommerceOrderStatusRequires active-e 3rd Party E-Commerce or active-e Vortx E-Commerce.
    */
    @Route(Path="/ECommerceOrderStatus", Verbs="GET")
    @DataContract
    public static class ECommerceOrderStatusRequest extends BaseSecureRequest implements IReturn<ECommerceOrderStatusResponse>
    {
        @DataMember
        public String OrderNumber = null;

        /**
        * 3 is 3rd Party, C is AIMStoreFront, E is Ebay, A is Amazon, B is Excel Import, R is Reverb, G is Gunbroker, M is Ammoready. Defaults to 3
        */
        @DataMember
        @ApiMember(DataType="string", Description="3 is 3rd Party, C is AIMStoreFront, E is Ebay, A is Amazon, B is Excel Import, R is Reverb, G is Gunbroker, M is Ammoready. Defaults to 3", Name="OrderType", ParameterType="query")
        public String OrderType = null;
        
        public String getOrderNumber() { return OrderNumber; }
        public ECommerceOrderStatusRequest setOrderNumber(String value) { this.OrderNumber = value; return this; }
        public String getOrderType() { return OrderType; }
        public ECommerceOrderStatusRequest setOrderType(String value) { this.OrderType = value; return this; }
        private static Object responseType = ECommerceOrderStatusResponse.class;
        public Object getResponseType() { return responseType; }
    }

    @DataContract
    public static class ECommerceOrderStatusResponse extends BaseResponse
    {
        @DataMember
        public String OrderStatus = null;

        @DataMember
        public String OrderStatusDescription = null;

        @DataMember
        public ArrayList<ECommerceOrderLineItem> LineItems = null;

        @DataMember
        public ArrayList<ECommerceOrderShippingInfo> ShippingInfo = null;
        
        public String getOrderStatus() { return OrderStatus; }
        public ECommerceOrderStatusResponse setOrderStatus(String value) { this.OrderStatus = value; return this; }
        public String getOrderStatusDescription() { return OrderStatusDescription; }
        public ECommerceOrderStatusResponse setOrderStatusDescription(String value) { this.OrderStatusDescription = value; return this; }
        public ArrayList<ECommerceOrderLineItem> getLineItems() { return LineItems; }
        public ECommerceOrderStatusResponse setLineItems(ArrayList<ECommerceOrderLineItem> value) { this.LineItems = value; return this; }
        public ArrayList<ECommerceOrderShippingInfo> getShippingInfo() { return ShippingInfo; }
        public ECommerceOrderStatusResponse setShippingInfo(ArrayList<ECommerceOrderShippingInfo> value) { this.ShippingInfo = 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 BaseSecureRequest extends BaseRequest
    {
        /**
        * 
        */
        @DataMember
        @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
        public String Token = null;

        /**
        * 
        */
        @DataMember
        @ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")
        public String DeviceId = null;

        /**
        * 
        */
        @DataMember
        @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
        public String AppId = null;
        
        public String getToken() { return Token; }
        public BaseSecureRequest setToken(String value) { this.Token = value; return this; }
        public String getDeviceId() { return DeviceId; }
        public BaseSecureRequest setDeviceId(String value) { this.DeviceId = value; return this; }
        public String getAppId() { return AppId; }
        public BaseSecureRequest setAppId(String value) { this.AppId = value; return this; }
    }

    @DataContract
    public static class ECommerceOrderLineItem
    {
        @DataMember
        public String Sku = null;

        @DataMember
        public BigDecimal Quantity = null;

        @DataMember
        public String ItemStatus = null;

        @DataMember
        public Integer ShipmentId = null;
        
        public String getSku() { return Sku; }
        public ECommerceOrderLineItem setSku(String value) { this.Sku = value; return this; }
        public BigDecimal getQuantity() { return Quantity; }
        public ECommerceOrderLineItem setQuantity(BigDecimal value) { this.Quantity = value; return this; }
        public String getItemStatus() { return ItemStatus; }
        public ECommerceOrderLineItem setItemStatus(String value) { this.ItemStatus = value; return this; }
        public Integer getShipmentId() { return ShipmentId; }
        public ECommerceOrderLineItem setShipmentId(Integer value) { this.ShipmentId = value; return this; }
    }

    @DataContract
    public static class ECommerceOrderShippingInfo
    {
        @DataMember
        public Integer ShipmentId = null;

        @DataMember
        public String ShipVia = null;

        @DataMember
        public ArrayList<String> TrackingNumbers = null;
        
        public Integer getShipmentId() { return ShipmentId; }
        public ECommerceOrderShippingInfo setShipmentId(Integer value) { this.ShipmentId = value; return this; }
        public String getShipVia() { return ShipVia; }
        public ECommerceOrderShippingInfo setShipVia(String value) { this.ShipVia = value; return this; }
        public ArrayList<String> getTrackingNumbers() { return TrackingNumbers; }
        public ECommerceOrderShippingInfo setTrackingNumbers(ArrayList<String> value) { this.TrackingNumbers = 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; }
    }

}