(* Options:
Date: 2025-05-22 09:14:58
Version: 8.40
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://active-ewebservice.biz/aeservices30/api

//GlobalNamespace: 
//MakeDataContractsExtensible: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//ExportValueTypes: False
IncludeTypes: InventoryDetailRequest.*
//ExcludeTypes: 
//InitializeCollections: True
//AddNamespaces: 
*)

namespace AIM

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<DataContract>]
    [<AllowNullLiteral>]
    type BaseRequest() = 
        ///<summary>
        ///This is your AIM API Key provided by Tri-Tech
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="This is your AIM API Key provided by Tri-Tech", IsRequired=true, Name="ApiKey", ParameterType="header")>]
        member val ApiKey:String = null with get,set

        [<DataMember>]
        [<ApiMember(DataType="string", Name="OAuthToken", ParameterType="header")>]
        member val OAuthToken:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type BaseSecureRequest() = 
        inherit BaseRequest()
        ///<summary>
        ///
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")>]
        member val Token:String = null with get,set

        ///<summary>
        ///
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="", Name="DeviceId", ParameterType="Header")>]
        member val DeviceId:String = null with get,set

        ///<summary>
        ///
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="string", Description="", IsRequired=true, Name="AppId", ParameterType="Header")>]
        member val AppId:String = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type LocationInfo() = 
        [<DataMember>]
        member val Id:Int64 = new Int64() with get,set

        [<DataMember>]
        member val Desc:String = null with get,set

        [<DataMember>]
        member val ShortDesc:String = null with get,set

        [<DataMember>]
        member val Region:String = null with get,set

        [<DataMember>]
        member val Latitude:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val Longitude:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val InStorePickup:String = null with get,set

        [<DataMember>]
        member val Active:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val CashSaleAcct:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type ImageInfo() = 
        [<DataMember>]
        member val Url:String = null with get,set

        [<DataMember>]
        member val ImageStream:String = null with get,set

        [<DataMember>]
        member val ImageSize:String = null with get,set

        [<DataMember>]
        member val ErrorMessage:String = null with get,set

        [<DataMember>]
        member val UriPk:Nullable<Int64> = new Nullable<Int64>() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailAttribute() = 
        [<DataMember>]
        member val Name:String = null with get,set

        [<DataMember>]
        member val Value:String = null with get,set

        [<DataMember>]
        member val Priority:Int32 = new Int32() with get,set

        ///<summary>
        ///1 is 'Don't Send to Web', 2 is 'Guided Navigation'
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="int", Description="1 is 'Don't Send to Web', 2 is 'Guided Navigation'", Name="WebType", ParameterType="query")>]
        member val WebType:Int32 = new Int32() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailBySerial() = 
        [<DataMember>]
        member val SasPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val Serial:String = null with get,set

        [<DataMember>]
        member val Retail:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val OurPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val SalePrice:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val Status:String = null with get,set

        [<DataMember>]
        member val SaleInfo:String = null with get,set

        [<DataMember>]
        member val PriceA:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val PriceB:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val PriceC:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val MinPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val ActiveEPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val AllowPriceChange:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val Cost:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val WeightedCost:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val Notes:String = null with get,set

        [<DataMember>]
        member val Attributes:ResizeArray<InventoryDetailAttribute> = new ResizeArray<InventoryDetailAttribute>() with get,set

        [<DataMember>]
        member val Images:ResizeArray<ImageInfo> = new ResizeArray<ImageInfo>() with get,set

        [<DataMember>]
        member val HasImages:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val IsActiveeHoldback:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val CustomerAcct:Nullable<Int32> = new Nullable<Int32>() with get,set

        [<DataMember>]
        member val AvailableForSTR:Boolean = new Boolean() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailSubstitute() = 
        [<DataMember>]
        member val Model:String = null with get,set

        [<DataMember>]
        member val Sku:String = null with get,set

        [<DataMember>]
        member val Mfg:String = null with get,set

        [<DataMember>]
        member val Description:String = null with get,set

        [<DataMember>]
        member val Price:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val AvailableQty:Decimal = new Decimal() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailByLocation() = 
        [<DataMember>]
        member val SaqPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val LocationInfo:LocationInfo = null with get,set

        [<DataMember>]
        member val Serials:ResizeArray<InventoryDetailBySerial> = new ResizeArray<InventoryDetailBySerial>() with get,set

        [<DataMember>]
        member val Substitutes:ResizeArray<InventoryDetailSubstitute> = new ResizeArray<InventoryDetailSubstitute>() with get,set

        [<DataMember>]
        member val Retail:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val OurPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val SalePrice:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val SaleInfo:String = null with get,set

        [<DataMember>]
        member val PriceA:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val PriceB:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val PriceC:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val MinPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val ActiveEPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val CustomerPrice:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val AllowPriceChange:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val Qty:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val QtyAvail:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val ActiveeHoldbackQty:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val ReorderMin:Int32 = new Int32() with get,set

        [<DataMember>]
        member val ReorderMax:Int32 = new Int32() with get,set

        [<DataMember>]
        member val AverageCost:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val WeightedCost:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val Locator:String = null with get,set

        [<DataMember>]
        member val SelectionCode:String = null with get,set

        [<DataMember>]
        member val SelectionCodeDescription:String = null with get,set

        [<DataMember>]
        member val Spiff:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val CurrentSpotCheckQty:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val QtyOut:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val QtyOnOrder:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val AvailableForSTR:Decimal = new Decimal() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailByVariant() = 
        [<DataMember>]
        member val SkuPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val Sku:String = null with get,set

        [<DataMember>]
        member val VendorCost:Nullable<Decimal> = new Nullable<Decimal>() with get,set

        [<DataMember>]
        member val VendorName:String = null with get,set

        [<DataMember>]
        member val Attributes:ResizeArray<InventoryDetailAttribute> = new ResizeArray<InventoryDetailAttribute>() with get,set

        [<DataMember>]
        member val LocationDetails:ResizeArray<InventoryDetailByLocation> = new ResizeArray<InventoryDetailByLocation>() with get,set

        [<DataMember>]
        member val Images:ResizeArray<ImageInfo> = new ResizeArray<ImageInfo>() with get,set

        [<DataMember>]
        member val HasImages:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val Barcodes:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type AddOnDetail() = 
        [<DataMember>]
        member val SadPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val SkuPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val CatPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val SubPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val Item:String = null with get,set

        [<DataMember>]
        member val Description:String = null with get,set

        [<DataMember>]
        member val Price:Decimal = new Decimal() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type ActiveEInfo() = 
        [<DataMember>]
        member val Dimension:String = null with get,set

        [<DataMember>]
        member val WebDescription:String = null with get,set

        [<DataMember>]
        member val Summary:String = null with get,set

        [<DataMember>]
        member val SETitle:String = null with get,set

        [<DataMember>]
        member val SEDescription:String = null with get,set

        [<DataMember>]
        member val SEKeywords:String = null with get,set

        [<DataMember>]
        member val SEAltText:String = null with get,set

        [<DataMember>]
        member val SEHtmlFreeText:String = null with get,set

        [<DataMember>]
        member val Unpublished:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val FreeShipping:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val IsFeatured:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val WebCategoryIds:ResizeArray<Int64> = new ResizeArray<Int64>() with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type BaseResponse() = 
        ///<summary>
        ///
        ///</summary>
        [<DataMember>]
        [<ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")>]
        member val Status:BaseResponseResult = null with get,set

    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailResponse() = 
        inherit BaseResponse()
        [<DataMember>]
        member val SadPk:Int64 = new Int64() with get,set

        [<DataMember>]
        member val InvType:String = null with get,set

        [<DataMember>]
        member val Model:String = null with get,set

        [<DataMember>]
        member val Description:String = null with get,set

        [<DataMember>]
        member val Mfg:String = null with get,set

        [<DataMember>]
        member val Category:Int32 = new Int32() with get,set

        [<DataMember>]
        member val CategoryDescription:String = null with get,set

        [<DataMember>]
        member val SubCategory:Int32 = new Int32() with get,set

        [<DataMember>]
        member val SubCategoryDescription:String = null with get,set

        [<DataMember>]
        member val SelectionCode:String = null with get,set

        [<DataMember>]
        member val SelectionCodeDescription:String = null with get,set

        [<DataMember>]
        member val SellSerialsOnline:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val Notes:String = null with get,set

        [<DataMember>]
        member val Images:ResizeArray<ImageInfo> = new ResizeArray<ImageInfo>() with get,set

        [<DataMember>]
        member val HasImages:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val VariantDetails:ResizeArray<InventoryDetailByVariant> = new ResizeArray<InventoryDetailByVariant>() with get,set

        [<DataMember>]
        member val AddOns:ResizeArray<AddOnDetail> = new ResizeArray<AddOnDetail>() with get,set

        [<DataMember>]
        member val ActiveEInfo:ActiveEInfo = null with get,set

        [<DataMember>]
        member val Weight:Decimal = new Decimal() with get,set

        [<DataMember>]
        member val Unit:String = null with get,set

        [<DataMember>]
        member val ShipCharge:Decimal = new Decimal() with get,set

    ///<summary>
    ///InventoryDetailRequires active-e Inventory Service
    ///</summary>
    [<Route("/InventoryDetail", "POST, GET")>]
    [<DataContract>]
    [<AllowNullLiteral>]
    type InventoryDetailRequest() = 
        inherit BaseSecureRequest()
        interface IReturn<InventoryDetailResponse>
        [<DataMember>]
        member val Pk:Nullable<Int64> = new Nullable<Int64>() with get,set

        [<DataMember>]
        member val PkType:String = null with get,set

        [<DataMember>]
        member val Model:String = null with get,set

        [<DataMember>]
        member val SkipImages:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val IncludeSerialInfo:Boolean = new Boolean() with get,set

        [<DataMember>]
        member val CustomerAcct:Nullable<Int32> = new Nullable<Int32>() with get,set