/* Options:
Date: 2025-05-17 21:18:10
Version: 8.40
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://active-ewebservice.biz/aeservices30/api

//GlobalNamespace: 
//MakePropertiesOptional: False
//AddServiceStackTypes: True
//AddResponseStatus: False
//AddImplicitVersion: 
//AddDescriptionAsComments: True
IncludeTypes: InventoryLookupRequest.*
//ExcludeTypes: 
//DefaultImports: 
*/


export interface IReturn<T>
{
    createResponse(): T;
}

// @DataContract
export class BaseRequest
{
    /** @description 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 ApiKey: string;

    // @DataMember
    // @ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")
    public OAuthToken: string;

    public constructor(init?: Partial<BaseRequest>) { (Object as any).assign(this, init); }
}

// @DataContract
export class BaseSecureRequest extends BaseRequest
{
    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
    public Token: string;

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

    /** @description  */
    // @DataMember
    // @ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")
    public AppId: string;

    public constructor(init?: Partial<BaseSecureRequest>) { super(init); (Object as any).assign(this, init); }
}

// @DataContract
export class InventoryLookupObj
{
    // @DataMember
    public ResultType: string;

    // @DataMember
    public Sku: string;

    // @DataMember
    public Serial: string;

    // @DataMember
    public Category: number;

    // @DataMember
    public SubCategory: number;

    // @DataMember
    public Description: string;

    // @DataMember
    public ComputerQty: number;

    // @DataMember
    public AvailableQty: number;

    // @DataMember
    public SadPk: number;

    // @DataMember
    public SkuPk: number;

    // @DataMember
    public SasPk?: number;

    // @DataMember
    public InventoryType: string;

    // @DataMember
    public NicsPrice?: number;

    // @DataMember
    public ADBookItem: boolean;

    // @DataMember
    public LocationCode: string;

    public constructor(init?: Partial<InventoryLookupObj>) { (Object as any).assign(this, init); }
}

// @DataContract
export class BaseResponse
{
    /** @description  */
    // @DataMember
    // @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
    public Status: BaseResponseResult;

    public constructor(init?: Partial<BaseResponse>) { (Object as any).assign(this, init); }
}

// @DataContract
export class InventoryLookupResponse extends BaseResponse
{
    // @DataMember
    public Results: InventoryLookupObj[];

    public constructor(init?: Partial<InventoryLookupResponse>) { super(init); (Object as any).assign(this, init); }
}

/** @description InventoryLookupRequires active-e Inventory Service */
// @Route("/InventoryLookup", "GET")
// @DataContract
export class InventoryLookupRequest extends BaseSecureRequest implements IReturn<InventoryLookupResponse>
{
    // @DataMember
    public Item: string;

    // @DataMember
    public LocationCode: string;

    public constructor(init?: Partial<InventoryLookupRequest>) { super(init); (Object as any).assign(this, init); }
    public getTypeName() { return 'InventoryLookupRequest'; }
    public getMethod() { return 'GET'; }
    public createResponse() { return new InventoryLookupResponse(); }
}