AIM Web Services

<back to all web services

SearchInventoryRequest

SearchInventory
Requires active-e Inventory Service

The following routes are available for this service:
POST, GET/api/SearchInventory
import 'package:servicestack/servicestack.dart';

// @DataContract
class BaseRequest implements IConvertible
{
    /**
    * 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")
    String? ApiKey;

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

    BaseRequest({this.ApiKey,this.OAuthToken});
    BaseRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        ApiKey = json['ApiKey'];
        OAuthToken = json['OAuthToken'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'ApiKey': ApiKey,
        'OAuthToken': OAuthToken
    };

    getTypeName() => "BaseRequest";
    TypeContext? context = _ctx;
}

// @DataContract
class BaseSecureRequest extends BaseRequest implements IConvertible
{
    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="Token", ParameterType="Header")
    String? Token;

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

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

    BaseSecureRequest({this.Token,this.DeviceId,this.AppId});
    BaseSecureRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Token = json['Token'];
        DeviceId = json['DeviceId'];
        AppId = json['AppId'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Token': Token,
        'DeviceId': DeviceId,
        'AppId': AppId
    });

    getTypeName() => "BaseSecureRequest";
    TypeContext? context = _ctx;
}

// @DataContract
class BaseResponseResult implements IConvertible
{
    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="StatusCode", ParameterType="body")
    String? StatusCode;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="Login", ParameterType="body")
    String? Login;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorCode", ParameterType="body")
    String? ErrorCode;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorDisplayText", ParameterType="body")
    String? ErrorDisplayText;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", Name="ErrorMessage", ParameterType="body")
    String? ErrorMessage;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="DomainName", ParameterType="body")
    String? DomainName;

    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="", ExcludeInSchema=true, Name="IPAddress", ParameterType="body")
    String? IpAddress;

    BaseResponseResult({this.StatusCode,this.Login,this.ErrorCode,this.ErrorDisplayText,this.ErrorMessage,this.DomainName,this.IpAddress});
    BaseResponseResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        StatusCode = json['StatusCode'];
        Login = json['Login'];
        ErrorCode = json['ErrorCode'];
        ErrorDisplayText = json['ErrorDisplayText'];
        ErrorMessage = json['ErrorMessage'];
        DomainName = json['DomainName'];
        IpAddress = json['IpAddress'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'StatusCode': StatusCode,
        'Login': Login,
        'ErrorCode': ErrorCode,
        'ErrorDisplayText': ErrorDisplayText,
        'ErrorMessage': ErrorMessage,
        'DomainName': DomainName,
        'IpAddress': IpAddress
    };

    getTypeName() => "BaseResponseResult";
    TypeContext? context = _ctx;
}

// @DataContract
class BaseResponse implements IConvertible
{
    /**
    * 
    */
    // @DataMember
    // @ApiMember(DataType="BaseResponseResult", Description="", Name="Status", ParameterType="body")
    BaseResponseResult? Status;

    BaseResponse({this.Status});
    BaseResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Status = JsonConverters.fromJson(json['Status'],'BaseResponseResult',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Status': JsonConverters.toJson(Status,'BaseResponseResult',context!)
    };

    getTypeName() => "BaseResponse";
    TypeContext? context = _ctx;
}

// @DataContract
abstract class BindableObject
{
    BindableObject();
    BindableObject.fromJson(Map<String, dynamic> json) : super();
    fromMap(Map<String, dynamic> json) {
        return this;
    }

    Map<String, dynamic> toJson() => {};
    getTypeName() => "BindableObject";
    TypeContext? context = _ctx;
}

// @DataContract
class SearchInventoryResultSet extends BindableObject implements IAIMInventoryRecord, IConvertible
{
    // @DataMember
    int? Pk;

    // @DataMember
    String? Description;

    // @DataMember
    String? InventoryType;

    // @DataMember
    String? Manufacturer;

    // @DataMember
    String? Model;

    // @DataMember
    double? Category;

    // @DataMember
    String? CategoryDescription;

    // @DataMember
    double? SubCategory;

    // @DataMember
    String? SubCategoryDescription;

    // @DataMember
    String? SelectionCode;

    // @DataMember
    String? SelectionCodeDescription;

    // @DataMember
    String? Sku;

    // @DataMember
    String? Mpn;

    // @DataMember
    bool? Discontinued;

    // @DataMember
    String? Attribute1;

    // @DataMember
    String? Attribute2;

    // @DataMember
    String? Attribute3;

    // @DataMember
    String? Attribute4;

    // @DataMember
    String? Attribute5;

    // @DataMember
    String? Attribute6;

    // @DataMember
    String? Attribute7;

    // @DataMember
    String? Attribute8;

    // @DataMember
    String? Attribute9;

    // @DataMember
    String? Attribute10;

    // @DataMember
    String? Attribute11;

    // @DataMember
    String? Attribute12;

    // @DataMember
    String? Attribute13;

    // @DataMember
    String? Attribute14;

    // @DataMember
    String? Attribute15;

    // @DataMember
    String? Attribute16;

    // @DataMember
    String? Attribute17;

    // @DataMember
    String? Attribute18;

    // @DataMember
    String? Attribute19;

    // @DataMember
    String? Attribute20;

    // @DataMember
    double? ComputerQuantity;

    // @DataMember
    double? OurPrice;

    // @DataMember
    double? RetailPrice;

    // @DataMember
    double? ActiveePrice;

    // @DataMember
    double? PriceA;

    // @DataMember
    double? PriceB;

    // @DataMember
    double? PriceC;

    // @DataMember
    double? MinPrice;

    // @DataMember
    double? AvailableQuantity;

    // @DataMember
    bool? IsMedia;

    // @DataMember
    bool? IsPackage;

    // @DataMember
    bool? HasImage;

    // @DataMember
    String? SearchTerm;

    // @DataMember
    String? Keywords;

    // @DataMember
    String? KeywordsOrigin;

    // @DataMember
    bool? Deleted;

    // @DataMember
    DateTime? TimeStamp;

    SearchInventoryResultSet({this.Pk,this.Description,this.InventoryType,this.Manufacturer,this.Model,this.Category,this.CategoryDescription,this.SubCategory,this.SubCategoryDescription,this.SelectionCode,this.SelectionCodeDescription,this.Sku,this.Mpn,this.Discontinued,this.Attribute1,this.Attribute2,this.Attribute3,this.Attribute4,this.Attribute5,this.Attribute6,this.Attribute7,this.Attribute8,this.Attribute9,this.Attribute10,this.Attribute11,this.Attribute12,this.Attribute13,this.Attribute14,this.Attribute15,this.Attribute16,this.Attribute17,this.Attribute18,this.Attribute19,this.Attribute20,this.ComputerQuantity,this.OurPrice,this.RetailPrice,this.ActiveePrice,this.PriceA,this.PriceB,this.PriceC,this.MinPrice,this.AvailableQuantity,this.IsMedia,this.IsPackage,this.HasImage,this.SearchTerm,this.Keywords,this.KeywordsOrigin,this.Deleted,this.TimeStamp});
    SearchInventoryResultSet.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Pk = json['Pk'];
        Description = json['Description'];
        InventoryType = json['InventoryType'];
        Manufacturer = json['Manufacturer'];
        Model = json['Model'];
        Category = JsonConverters.toDouble(json['Category']);
        CategoryDescription = json['CategoryDescription'];
        SubCategory = JsonConverters.toDouble(json['SubCategory']);
        SubCategoryDescription = json['SubCategoryDescription'];
        SelectionCode = json['SelectionCode'];
        SelectionCodeDescription = json['SelectionCodeDescription'];
        Sku = json['Sku'];
        Mpn = json['Mpn'];
        Discontinued = json['Discontinued'];
        Attribute1 = json['Attribute1'];
        Attribute2 = json['Attribute2'];
        Attribute3 = json['Attribute3'];
        Attribute4 = json['Attribute4'];
        Attribute5 = json['Attribute5'];
        Attribute6 = json['Attribute6'];
        Attribute7 = json['Attribute7'];
        Attribute8 = json['Attribute8'];
        Attribute9 = json['Attribute9'];
        Attribute10 = json['Attribute10'];
        Attribute11 = json['Attribute11'];
        Attribute12 = json['Attribute12'];
        Attribute13 = json['Attribute13'];
        Attribute14 = json['Attribute14'];
        Attribute15 = json['Attribute15'];
        Attribute16 = json['Attribute16'];
        Attribute17 = json['Attribute17'];
        Attribute18 = json['Attribute18'];
        Attribute19 = json['Attribute19'];
        Attribute20 = json['Attribute20'];
        ComputerQuantity = JsonConverters.toDouble(json['ComputerQuantity']);
        OurPrice = JsonConverters.toDouble(json['OurPrice']);
        RetailPrice = JsonConverters.toDouble(json['RetailPrice']);
        ActiveePrice = JsonConverters.toDouble(json['ActiveePrice']);
        PriceA = JsonConverters.toDouble(json['PriceA']);
        PriceB = JsonConverters.toDouble(json['PriceB']);
        PriceC = JsonConverters.toDouble(json['PriceC']);
        MinPrice = JsonConverters.toDouble(json['MinPrice']);
        AvailableQuantity = JsonConverters.toDouble(json['AvailableQuantity']);
        IsMedia = json['IsMedia'];
        IsPackage = json['IsPackage'];
        HasImage = json['HasImage'];
        SearchTerm = json['SearchTerm'];
        Keywords = json['Keywords'];
        KeywordsOrigin = json['KeywordsOrigin'];
        Deleted = json['Deleted'];
        TimeStamp = JsonConverters.fromJson(json['TimeStamp'],'DateTime',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Pk': Pk,
        'Description': Description,
        'InventoryType': InventoryType,
        'Manufacturer': Manufacturer,
        'Model': Model,
        'Category': Category,
        'CategoryDescription': CategoryDescription,
        'SubCategory': SubCategory,
        'SubCategoryDescription': SubCategoryDescription,
        'SelectionCode': SelectionCode,
        'SelectionCodeDescription': SelectionCodeDescription,
        'Sku': Sku,
        'Mpn': Mpn,
        'Discontinued': Discontinued,
        'Attribute1': Attribute1,
        'Attribute2': Attribute2,
        'Attribute3': Attribute3,
        'Attribute4': Attribute4,
        'Attribute5': Attribute5,
        'Attribute6': Attribute6,
        'Attribute7': Attribute7,
        'Attribute8': Attribute8,
        'Attribute9': Attribute9,
        'Attribute10': Attribute10,
        'Attribute11': Attribute11,
        'Attribute12': Attribute12,
        'Attribute13': Attribute13,
        'Attribute14': Attribute14,
        'Attribute15': Attribute15,
        'Attribute16': Attribute16,
        'Attribute17': Attribute17,
        'Attribute18': Attribute18,
        'Attribute19': Attribute19,
        'Attribute20': Attribute20,
        'ComputerQuantity': ComputerQuantity,
        'OurPrice': OurPrice,
        'RetailPrice': RetailPrice,
        'ActiveePrice': ActiveePrice,
        'PriceA': PriceA,
        'PriceB': PriceB,
        'PriceC': PriceC,
        'MinPrice': MinPrice,
        'AvailableQuantity': AvailableQuantity,
        'IsMedia': IsMedia,
        'IsPackage': IsPackage,
        'HasImage': HasImage,
        'SearchTerm': SearchTerm,
        'Keywords': Keywords,
        'KeywordsOrigin': KeywordsOrigin,
        'Deleted': Deleted,
        'TimeStamp': JsonConverters.toJson(TimeStamp,'DateTime',context!)
    });

    getTypeName() => "SearchInventoryResultSet";
    TypeContext? context = _ctx;
}

// @DataContract
class ImageInfo implements IConvertible
{
    // @DataMember
    String? Url;

    // @DataMember
    String? ImageStream;

    // @DataMember
    String? ImageSize;

    // @DataMember
    String? ErrorMessage;

    // @DataMember
    int? UriPk;

    ImageInfo({this.Url,this.ImageStream,this.ImageSize,this.ErrorMessage,this.UriPk});
    ImageInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Url = json['Url'];
        ImageStream = json['ImageStream'];
        ImageSize = json['ImageSize'];
        ErrorMessage = json['ErrorMessage'];
        UriPk = json['UriPk'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Url': Url,
        'ImageStream': ImageStream,
        'ImageSize': ImageSize,
        'ErrorMessage': ErrorMessage,
        'UriPk': UriPk
    };

    getTypeName() => "ImageInfo";
    TypeContext? context = _ctx;
}

// @DataContract
class InventoryDetailAttribute implements IConvertible
{
    // @DataMember
    String? Name;

    // @DataMember
    String? Value;

    // @DataMember
    int? Priority;

    /**
    * 1 is 'Don't Send to Web', 2 is 'Guided Navigation'
    */
    // @DataMember
    // @ApiMember(DataType="int", Description="1 is 'Don't Send to Web', 2 is 'Guided Navigation'", Name="WebType", ParameterType="query")
    int? WebType;

    InventoryDetailAttribute({this.Name,this.Value,this.Priority,this.WebType});
    InventoryDetailAttribute.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Name = json['Name'];
        Value = json['Value'];
        Priority = json['Priority'];
        WebType = json['WebType'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Name': Name,
        'Value': Value,
        'Priority': Priority,
        'WebType': WebType
    };

    getTypeName() => "InventoryDetailAttribute";
    TypeContext? context = _ctx;
}

// @DataContract
class LocationInfo implements IConvertible
{
    // @DataMember
    int? Id;

    // @DataMember
    String? Desc;

    // @DataMember
    String? ShortDesc;

    // @DataMember
    String? Region;

    // @DataMember
    double? Latitude;

    // @DataMember
    double? Longitude;

    // @DataMember
    String? InStorePickup;

    // @DataMember
    bool? Active;

    // @DataMember
    int? CashSaleAcct;

    LocationInfo({this.Id,this.Desc,this.ShortDesc,this.Region,this.Latitude,this.Longitude,this.InStorePickup,this.Active,this.CashSaleAcct});
    LocationInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Id = json['Id'];
        Desc = json['Desc'];
        ShortDesc = json['ShortDesc'];
        Region = json['Region'];
        Latitude = JsonConverters.toDouble(json['Latitude']);
        Longitude = JsonConverters.toDouble(json['Longitude']);
        InStorePickup = json['InStorePickup'];
        Active = json['Active'];
        CashSaleAcct = json['CashSaleAcct'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Id': Id,
        'Desc': Desc,
        'ShortDesc': ShortDesc,
        'Region': Region,
        'Latitude': Latitude,
        'Longitude': Longitude,
        'InStorePickup': InStorePickup,
        'Active': Active,
        'CashSaleAcct': CashSaleAcct
    };

    getTypeName() => "LocationInfo";
    TypeContext? context = _ctx;
}

// @DataContract
class InventoryDetailBySerial implements IConvertible
{
    // @DataMember
    int? SasPk;

    // @DataMember
    String? Serial;

    // @DataMember
    double? Retail;

    // @DataMember
    double? OurPrice;

    // @DataMember
    double? SalePrice;

    // @DataMember
    String? Status;

    // @DataMember
    String? SaleInfo;

    // @DataMember
    double? PriceA;

    // @DataMember
    double? PriceB;

    // @DataMember
    double? PriceC;

    // @DataMember
    double? MinPrice;

    // @DataMember
    double? ActiveEPrice;

    // @DataMember
    bool? AllowPriceChange;

    // @DataMember
    double? Cost;

    // @DataMember
    double? WeightedCost;

    // @DataMember
    String? Notes;

    // @DataMember
    List<InventoryDetailAttribute>? Attributes;

    // @DataMember
    List<ImageInfo>? Images;

    // @DataMember
    bool? HasImages;

    // @DataMember
    bool? IsActiveeHoldback;

    // @DataMember
    int? CustomerAcct;

    // @DataMember
    bool? AvailableForSTR;

    InventoryDetailBySerial({this.SasPk,this.Serial,this.Retail,this.OurPrice,this.SalePrice,this.Status,this.SaleInfo,this.PriceA,this.PriceB,this.PriceC,this.MinPrice,this.ActiveEPrice,this.AllowPriceChange,this.Cost,this.WeightedCost,this.Notes,this.Attributes,this.Images,this.HasImages,this.IsActiveeHoldback,this.CustomerAcct,this.AvailableForSTR});
    InventoryDetailBySerial.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SasPk = json['SasPk'];
        Serial = json['Serial'];
        Retail = JsonConverters.toDouble(json['Retail']);
        OurPrice = JsonConverters.toDouble(json['OurPrice']);
        SalePrice = JsonConverters.toDouble(json['SalePrice']);
        Status = json['Status'];
        SaleInfo = json['SaleInfo'];
        PriceA = JsonConverters.toDouble(json['PriceA']);
        PriceB = JsonConverters.toDouble(json['PriceB']);
        PriceC = JsonConverters.toDouble(json['PriceC']);
        MinPrice = JsonConverters.toDouble(json['MinPrice']);
        ActiveEPrice = JsonConverters.toDouble(json['ActiveEPrice']);
        AllowPriceChange = json['AllowPriceChange'];
        Cost = JsonConverters.toDouble(json['Cost']);
        WeightedCost = JsonConverters.toDouble(json['WeightedCost']);
        Notes = json['Notes'];
        Attributes = JsonConverters.fromJson(json['Attributes'],'List<InventoryDetailAttribute>',context!);
        Images = JsonConverters.fromJson(json['Images'],'List<ImageInfo>',context!);
        HasImages = json['HasImages'];
        IsActiveeHoldback = json['IsActiveeHoldback'];
        CustomerAcct = json['CustomerAcct'];
        AvailableForSTR = json['AvailableForSTR'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SasPk': SasPk,
        'Serial': Serial,
        'Retail': Retail,
        'OurPrice': OurPrice,
        'SalePrice': SalePrice,
        'Status': Status,
        'SaleInfo': SaleInfo,
        'PriceA': PriceA,
        'PriceB': PriceB,
        'PriceC': PriceC,
        'MinPrice': MinPrice,
        'ActiveEPrice': ActiveEPrice,
        'AllowPriceChange': AllowPriceChange,
        'Cost': Cost,
        'WeightedCost': WeightedCost,
        'Notes': Notes,
        'Attributes': JsonConverters.toJson(Attributes,'List<InventoryDetailAttribute>',context!),
        'Images': JsonConverters.toJson(Images,'List<ImageInfo>',context!),
        'HasImages': HasImages,
        'IsActiveeHoldback': IsActiveeHoldback,
        'CustomerAcct': CustomerAcct,
        'AvailableForSTR': AvailableForSTR
    };

    getTypeName() => "InventoryDetailBySerial";
    TypeContext? context = _ctx;
}

// @DataContract
class InventoryDetailSubstitute implements IConvertible
{
    // @DataMember
    String? Model;

    // @DataMember
    String? Sku;

    // @DataMember
    String? Mfg;

    // @DataMember
    String? Description;

    // @DataMember
    double? Price;

    // @DataMember
    double? AvailableQty;

    InventoryDetailSubstitute({this.Model,this.Sku,this.Mfg,this.Description,this.Price,this.AvailableQty});
    InventoryDetailSubstitute.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Model = json['Model'];
        Sku = json['Sku'];
        Mfg = json['Mfg'];
        Description = json['Description'];
        Price = JsonConverters.toDouble(json['Price']);
        AvailableQty = JsonConverters.toDouble(json['AvailableQty']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Model': Model,
        'Sku': Sku,
        'Mfg': Mfg,
        'Description': Description,
        'Price': Price,
        'AvailableQty': AvailableQty
    };

    getTypeName() => "InventoryDetailSubstitute";
    TypeContext? context = _ctx;
}

// @DataContract
class InventoryDetailByLocation implements IConvertible
{
    // @DataMember
    int? SaqPk;

    // @DataMember
    LocationInfo? LocationInfo;

    // @DataMember
    List<InventoryDetailBySerial>? Serials;

    // @DataMember
    List<InventoryDetailSubstitute>? Substitutes;

    // @DataMember
    double? Retail;

    // @DataMember
    double? OurPrice;

    // @DataMember
    double? SalePrice;

    // @DataMember
    String? SaleInfo;

    // @DataMember
    double? PriceA;

    // @DataMember
    double? PriceB;

    // @DataMember
    double? PriceC;

    // @DataMember
    double? MinPrice;

    // @DataMember
    double? ActiveEPrice;

    // @DataMember
    double? CustomerPrice;

    // @DataMember
    bool? AllowPriceChange;

    // @DataMember
    double? Qty;

    // @DataMember
    double? QtyAvail;

    // @DataMember
    double? ActiveeHoldbackQty;

    // @DataMember
    int? ReorderMin;

    // @DataMember
    int? ReorderMax;

    // @DataMember
    double? AverageCost;

    // @DataMember
    double? WeightedCost;

    // @DataMember
    String? Locator;

    // @DataMember
    String? SelectionCode;

    // @DataMember
    String? SelectionCodeDescription;

    // @DataMember
    double? Spiff;

    // @DataMember
    double? CurrentSpotCheckQty;

    // @DataMember
    double? QtyOut;

    // @DataMember
    double? QtyOnOrder;

    // @DataMember
    double? AvailableForSTR;

    InventoryDetailByLocation({this.SaqPk,this.LocationInfo,this.Serials,this.Substitutes,this.Retail,this.OurPrice,this.SalePrice,this.SaleInfo,this.PriceA,this.PriceB,this.PriceC,this.MinPrice,this.ActiveEPrice,this.CustomerPrice,this.AllowPriceChange,this.Qty,this.QtyAvail,this.ActiveeHoldbackQty,this.ReorderMin,this.ReorderMax,this.AverageCost,this.WeightedCost,this.Locator,this.SelectionCode,this.SelectionCodeDescription,this.Spiff,this.CurrentSpotCheckQty,this.QtyOut,this.QtyOnOrder,this.AvailableForSTR});
    InventoryDetailByLocation.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SaqPk = json['SaqPk'];
        LocationInfo = JsonConverters.fromJson(json['LocationInfo'],'LocationInfo',context!);
        Serials = JsonConverters.fromJson(json['Serials'],'List<InventoryDetailBySerial>',context!);
        Substitutes = JsonConverters.fromJson(json['Substitutes'],'List<InventoryDetailSubstitute>',context!);
        Retail = JsonConverters.toDouble(json['Retail']);
        OurPrice = JsonConverters.toDouble(json['OurPrice']);
        SalePrice = JsonConverters.toDouble(json['SalePrice']);
        SaleInfo = json['SaleInfo'];
        PriceA = JsonConverters.toDouble(json['PriceA']);
        PriceB = JsonConverters.toDouble(json['PriceB']);
        PriceC = JsonConverters.toDouble(json['PriceC']);
        MinPrice = JsonConverters.toDouble(json['MinPrice']);
        ActiveEPrice = JsonConverters.toDouble(json['ActiveEPrice']);
        CustomerPrice = JsonConverters.toDouble(json['CustomerPrice']);
        AllowPriceChange = json['AllowPriceChange'];
        Qty = JsonConverters.toDouble(json['Qty']);
        QtyAvail = JsonConverters.toDouble(json['QtyAvail']);
        ActiveeHoldbackQty = JsonConverters.toDouble(json['ActiveeHoldbackQty']);
        ReorderMin = json['ReorderMin'];
        ReorderMax = json['ReorderMax'];
        AverageCost = JsonConverters.toDouble(json['AverageCost']);
        WeightedCost = JsonConverters.toDouble(json['WeightedCost']);
        Locator = json['Locator'];
        SelectionCode = json['SelectionCode'];
        SelectionCodeDescription = json['SelectionCodeDescription'];
        Spiff = JsonConverters.toDouble(json['Spiff']);
        CurrentSpotCheckQty = JsonConverters.toDouble(json['CurrentSpotCheckQty']);
        QtyOut = JsonConverters.toDouble(json['QtyOut']);
        QtyOnOrder = JsonConverters.toDouble(json['QtyOnOrder']);
        AvailableForSTR = JsonConverters.toDouble(json['AvailableForSTR']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SaqPk': SaqPk,
        'LocationInfo': JsonConverters.toJson(LocationInfo,'LocationInfo',context!),
        'Serials': JsonConverters.toJson(Serials,'List<InventoryDetailBySerial>',context!),
        'Substitutes': JsonConverters.toJson(Substitutes,'List<InventoryDetailSubstitute>',context!),
        'Retail': Retail,
        'OurPrice': OurPrice,
        'SalePrice': SalePrice,
        'SaleInfo': SaleInfo,
        'PriceA': PriceA,
        'PriceB': PriceB,
        'PriceC': PriceC,
        'MinPrice': MinPrice,
        'ActiveEPrice': ActiveEPrice,
        'CustomerPrice': CustomerPrice,
        'AllowPriceChange': AllowPriceChange,
        'Qty': Qty,
        'QtyAvail': QtyAvail,
        'ActiveeHoldbackQty': ActiveeHoldbackQty,
        'ReorderMin': ReorderMin,
        'ReorderMax': ReorderMax,
        'AverageCost': AverageCost,
        'WeightedCost': WeightedCost,
        'Locator': Locator,
        'SelectionCode': SelectionCode,
        'SelectionCodeDescription': SelectionCodeDescription,
        'Spiff': Spiff,
        'CurrentSpotCheckQty': CurrentSpotCheckQty,
        'QtyOut': QtyOut,
        'QtyOnOrder': QtyOnOrder,
        'AvailableForSTR': AvailableForSTR
    };

    getTypeName() => "InventoryDetailByLocation";
    TypeContext? context = _ctx;
}

// @DataContract
class InventoryDetailByVariant implements IConvertible
{
    // @DataMember
    int? SkuPk;

    // @DataMember
    String? Sku;

    // @DataMember
    double? VendorCost;

    // @DataMember
    String? VendorName;

    // @DataMember
    List<InventoryDetailAttribute>? Attributes;

    // @DataMember
    List<InventoryDetailByLocation>? LocationDetails;

    // @DataMember
    List<ImageInfo>? Images;

    // @DataMember
    bool? HasImages;

    // @DataMember
    List<String>? Barcodes;

    InventoryDetailByVariant({this.SkuPk,this.Sku,this.VendorCost,this.VendorName,this.Attributes,this.LocationDetails,this.Images,this.HasImages,this.Barcodes});
    InventoryDetailByVariant.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SkuPk = json['SkuPk'];
        Sku = json['Sku'];
        VendorCost = JsonConverters.toDouble(json['VendorCost']);
        VendorName = json['VendorName'];
        Attributes = JsonConverters.fromJson(json['Attributes'],'List<InventoryDetailAttribute>',context!);
        LocationDetails = JsonConverters.fromJson(json['LocationDetails'],'List<InventoryDetailByLocation>',context!);
        Images = JsonConverters.fromJson(json['Images'],'List<ImageInfo>',context!);
        HasImages = json['HasImages'];
        Barcodes = JsonConverters.fromJson(json['Barcodes'],'List<String>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SkuPk': SkuPk,
        'Sku': Sku,
        'VendorCost': VendorCost,
        'VendorName': VendorName,
        'Attributes': JsonConverters.toJson(Attributes,'List<InventoryDetailAttribute>',context!),
        'LocationDetails': JsonConverters.toJson(LocationDetails,'List<InventoryDetailByLocation>',context!),
        'Images': JsonConverters.toJson(Images,'List<ImageInfo>',context!),
        'HasImages': HasImages,
        'Barcodes': JsonConverters.toJson(Barcodes,'List<String>',context!)
    };

    getTypeName() => "InventoryDetailByVariant";
    TypeContext? context = _ctx;
}

// @DataContract
class AddOnDetail implements IConvertible
{
    // @DataMember
    int? SadPk;

    // @DataMember
    int? SkuPk;

    // @DataMember
    int? CatPk;

    // @DataMember
    int? SubPk;

    // @DataMember
    String? Item;

    // @DataMember
    String? Description;

    // @DataMember
    double? Price;

    AddOnDetail({this.SadPk,this.SkuPk,this.CatPk,this.SubPk,this.Item,this.Description,this.Price});
    AddOnDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SadPk = json['SadPk'];
        SkuPk = json['SkuPk'];
        CatPk = json['CatPk'];
        SubPk = json['SubPk'];
        Item = json['Item'];
        Description = json['Description'];
        Price = JsonConverters.toDouble(json['Price']);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SadPk': SadPk,
        'SkuPk': SkuPk,
        'CatPk': CatPk,
        'SubPk': SubPk,
        'Item': Item,
        'Description': Description,
        'Price': Price
    };

    getTypeName() => "AddOnDetail";
    TypeContext? context = _ctx;
}

// @DataContract
class ActiveEInfo implements IConvertible
{
    // @DataMember
    String? Dimension;

    // @DataMember
    String? WebDescription;

    // @DataMember
    String? Summary;

    // @DataMember
    String? SETitle;

    // @DataMember
    String? SEDescription;

    // @DataMember
    String? SEKeywords;

    // @DataMember
    String? SEAltText;

    // @DataMember
    String? SEHtmlFreeText;

    // @DataMember
    bool? Unpublished;

    // @DataMember
    bool? FreeShipping;

    // @DataMember
    bool? IsFeatured;

    // @DataMember
    List<int>? WebCategoryIds;

    ActiveEInfo({this.Dimension,this.WebDescription,this.Summary,this.SETitle,this.SEDescription,this.SEKeywords,this.SEAltText,this.SEHtmlFreeText,this.Unpublished,this.FreeShipping,this.IsFeatured,this.WebCategoryIds});
    ActiveEInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        Dimension = json['Dimension'];
        WebDescription = json['WebDescription'];
        Summary = json['Summary'];
        SETitle = json['SETitle'];
        SEDescription = json['SEDescription'];
        SEKeywords = json['SEKeywords'];
        SEAltText = json['SEAltText'];
        SEHtmlFreeText = json['SEHtmlFreeText'];
        Unpublished = json['Unpublished'];
        FreeShipping = json['FreeShipping'];
        IsFeatured = json['IsFeatured'];
        WebCategoryIds = JsonConverters.fromJson(json['WebCategoryIds'],'List<int>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'Dimension': Dimension,
        'WebDescription': WebDescription,
        'Summary': Summary,
        'SETitle': SETitle,
        'SEDescription': SEDescription,
        'SEKeywords': SEKeywords,
        'SEAltText': SEAltText,
        'SEHtmlFreeText': SEHtmlFreeText,
        'Unpublished': Unpublished,
        'FreeShipping': FreeShipping,
        'IsFeatured': IsFeatured,
        'WebCategoryIds': JsonConverters.toJson(WebCategoryIds,'List<int>',context!)
    };

    getTypeName() => "ActiveEInfo";
    TypeContext? context = _ctx;
}

// @DataContract
class InventoryDetail implements IConvertible
{
    // @DataMember
    int? SadPk;

    // @DataMember
    String? InvType;

    // @DataMember
    String? Model;

    // @DataMember
    String? Description;

    // @DataMember
    String? Mfg;

    // @DataMember
    int? Category;

    // @DataMember
    String? CategoryDescription;

    // @DataMember
    int? SubCategory;

    // @DataMember
    String? SubCategoryDescription;

    // @DataMember
    String? SelectionCode;

    // @DataMember
    String? SelectionCodeDescription;

    // @DataMember
    bool? SellSerialsOnline;

    // @DataMember
    String? Notes;

    // @DataMember
    List<ImageInfo>? Images;

    // @DataMember
    bool? HasImages;

    // @DataMember
    List<InventoryDetailByVariant>? VariantDetails;

    // @DataMember
    List<AddOnDetail>? AddOns;

    // @DataMember
    ActiveEInfo? ActiveEInfo;

    // @DataMember
    double? Weight;

    // @DataMember
    String? Unit;

    InventoryDetail({this.SadPk,this.InvType,this.Model,this.Description,this.Mfg,this.Category,this.CategoryDescription,this.SubCategory,this.SubCategoryDescription,this.SelectionCode,this.SelectionCodeDescription,this.SellSerialsOnline,this.Notes,this.Images,this.HasImages,this.VariantDetails,this.AddOns,this.ActiveEInfo,this.Weight,this.Unit});
    InventoryDetail.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        SadPk = json['SadPk'];
        InvType = json['InvType'];
        Model = json['Model'];
        Description = json['Description'];
        Mfg = json['Mfg'];
        Category = json['Category'];
        CategoryDescription = json['CategoryDescription'];
        SubCategory = json['SubCategory'];
        SubCategoryDescription = json['SubCategoryDescription'];
        SelectionCode = json['SelectionCode'];
        SelectionCodeDescription = json['SelectionCodeDescription'];
        SellSerialsOnline = json['SellSerialsOnline'];
        Notes = json['Notes'];
        Images = JsonConverters.fromJson(json['Images'],'List<ImageInfo>',context!);
        HasImages = json['HasImages'];
        VariantDetails = JsonConverters.fromJson(json['VariantDetails'],'List<InventoryDetailByVariant>',context!);
        AddOns = JsonConverters.fromJson(json['AddOns'],'List<AddOnDetail>',context!);
        ActiveEInfo = JsonConverters.fromJson(json['ActiveEInfo'],'ActiveEInfo',context!);
        Weight = JsonConverters.toDouble(json['Weight']);
        Unit = json['Unit'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'SadPk': SadPk,
        'InvType': InvType,
        'Model': Model,
        'Description': Description,
        'Mfg': Mfg,
        'Category': Category,
        'CategoryDescription': CategoryDescription,
        'SubCategory': SubCategory,
        'SubCategoryDescription': SubCategoryDescription,
        'SelectionCode': SelectionCode,
        'SelectionCodeDescription': SelectionCodeDescription,
        'SellSerialsOnline': SellSerialsOnline,
        'Notes': Notes,
        'Images': JsonConverters.toJson(Images,'List<ImageInfo>',context!),
        'HasImages': HasImages,
        'VariantDetails': JsonConverters.toJson(VariantDetails,'List<InventoryDetailByVariant>',context!),
        'AddOns': JsonConverters.toJson(AddOns,'List<AddOnDetail>',context!),
        'ActiveEInfo': JsonConverters.toJson(ActiveEInfo,'ActiveEInfo',context!),
        'Weight': Weight,
        'Unit': Unit
    };

    getTypeName() => "InventoryDetail";
    TypeContext? context = _ctx;
}

// @DataContract
class SearchInventoryApiResult extends SearchInventoryResultSet implements IConvertible
{
    // @DataMember
    InventoryDetail? Detail;

    // @DataMember
    ImageInfo? IconImage;

    // @DataMember
    double? CustomerPrice;

    SearchInventoryApiResult({this.Detail,this.IconImage,this.CustomerPrice});
    SearchInventoryApiResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Detail = JsonConverters.fromJson(json['Detail'],'InventoryDetail',context!);
        IconImage = JsonConverters.fromJson(json['IconImage'],'ImageInfo',context!);
        CustomerPrice = JsonConverters.toDouble(json['CustomerPrice']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Detail': JsonConverters.toJson(Detail,'InventoryDetail',context!),
        'IconImage': JsonConverters.toJson(IconImage,'ImageInfo',context!),
        'CustomerPrice': CustomerPrice
    });

    getTypeName() => "SearchInventoryApiResult";
    TypeContext? context = _ctx;
}

// @DataContract
class SearchInventoryResponse extends BaseResponse implements IConvertible
{
    // @DataMember
    int? StartOffset;

    // @DataMember
    int? RecordCount;

    // @DataMember
    int? RemainingRecords;

    // @DataMember
    int? TotalRecords;

    // @DataMember
    // @ApiMember(Name="Records", ParameterType="body")
    List<SearchInventoryApiResult>? Records;

    SearchInventoryResponse({this.StartOffset,this.RecordCount,this.RemainingRecords,this.TotalRecords,this.Records});
    SearchInventoryResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        StartOffset = json['StartOffset'];
        RecordCount = json['RecordCount'];
        RemainingRecords = json['RemainingRecords'];
        TotalRecords = json['TotalRecords'];
        Records = JsonConverters.fromJson(json['Records'],'List<SearchInventoryApiResult>',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'StartOffset': StartOffset,
        'RecordCount': RecordCount,
        'RemainingRecords': RemainingRecords,
        'TotalRecords': TotalRecords,
        'Records': JsonConverters.toJson(Records,'List<SearchInventoryApiResult>',context!)
    });

    getTypeName() => "SearchInventoryResponse";
    TypeContext? context = _ctx;
}

/**
* SearchInventoryRequires active-e Inventory Service
*/
// @DataContract
class SearchInventoryRequest extends BaseSecureRequest implements IConvertible
{
    /**
    * If sent, only items from the passed location will be returned
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="If sent, only items from the passed location will be returned", Format="int32", Name="LocFk")
    int? LocFk;

    /**
    * For Internal Use Only
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="MfgFk")
    int? MfgFk;

    /**
    * For Internal Use Only
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="CatFk")
    int? CatFk;

    /**
    * For Internal Use Only
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="SubFk")
    int? SubFk;

    /**
    * For Internal Use Only
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="For Internal Use Only", Format="int32", Name="SelFk")
    int? SelFk;

    /**
    * If sent, only items from the passed category# will be returned
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="If sent, only items from the passed category# will be returned", Format="int32", Name="Cat")
    int? Cat;

    /**
    * If sent, only items from the passed subcategory# will be returned. Must be used in conjunction with the Cat parameter.
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="If sent, only items from the passed subcategory# will be returned. Must be used in conjunction with the Cat parameter.", Format="int32", Name="Sub")
    int? Sub;

    /**
    * If sent, only items with the passed selection code will be returned
    */
    // @DataMember
    // @ApiMember(Description="If sent, only items with the passed selection code will be returned", Name="SelectionCode")
    String? SelectionCode;

    /**
    * If sent, only items with the passed mfg code will be returned
    */
    // @DataMember
    // @ApiMember(Description="If sent, only items with the passed mfg code will be returned", Name="Mfg")
    String? Mfg;

    /**
    * Serialized Items will be included in the search results
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="Serialized Items will be included in the search results", Name="IncludeSerials")
    bool? IncludeSerials;

    /**
    * Media Items will be included in the search results
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="Media Items will be included in the search results", Name="IncludeMedia")
    bool? IncludeMedia;

    /**
    * Non-Serialized, Non-Media Items will be included in the search results
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="Non-Serialized, Non-Media Items will be included in the search results", Name="IncludeAccessories")
    bool? IncludeAccessories;

    /**
    * Package Deal Items will be included in the search results
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="Package Deal Items will be included in the search results", Name="IncludePackages")
    bool? IncludePackages;

    /**
    * The string to be searched for
    */
    // @DataMember
    // @ApiMember(Description="The string to be searched for", Name="SearchStr")
    String? SearchStr;

    /**
    * If set, only items with the exact model contained in the search string will be returned
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="If set, only items with the exact model contained in the search string will be returned", Name="ExactModel")
    bool? ExactModel;

    /**
    * The Starting Offse
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="The Starting Offse", Format="int64", Name="StartOffset")
    int? StartOffset;

    /**
    * The # of records to be returned
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="The # of records to be returned", Format="int64", Name="RecordCount")
    int? RecordCount;

    /**
    * If set, Icon Image Urls will be included in the result, if available
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="If set, Icon Image Urls will be included in the result, if available", Name="IncludeIconImage")
    bool? IncludeIconImage;

    /**
    * If sent, only items from the passed category IDs will be returned
    */
    // @DataMember
    // @ApiMember(Description="If sent, only items from the passed category IDs will be returned", Name="CatIdList")
    List<int>? CatIdList;

    /**
    * If sent, only items from the passed subcategory IDs will be returned
    */
    // @DataMember
    // @ApiMember(Description="If sent, only items from the passed subcategory IDs will be returned", Name="SubIdList")
    List<int>? SubIdList;

    /**
    * If sent, only items from the passed mfg IDs will be returned
    */
    // @DataMember
    // @ApiMember(Description="If sent, only items from the passed mfg IDs will be returned", Name="MfgIdList")
    List<int>? MfgIdList;

    /**
    * If sent, only items from the passed selection code IDs will be returned
    */
    // @DataMember
    // @ApiMember(Description="If sent, only items from the passed selection code IDs will be returned", Name="SelIdList")
    List<int>? SelIdList;

    /**
    * Deleted Items will be included in the search results
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="Deleted Items will be included in the search results", Name="IncludeDeleted")
    bool? IncludeDeleted;

    /**
    * If sent, only inventory changed on or after this date/time will be included
    */
    // @DataMember
    // @ApiMember(DataType="string", Description="If sent, only inventory changed on or after this date/time will be included", Format="date", Name="ChangedDate", ParameterType="query")
    DateTime? ChangedDate;

    /**
    * Package Deal Line Items will be included
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="Package Deal Line Items will be included", Name="IncludePackageLineItems")
    bool? IncludePackageLineItems;

    /**
    * If set, the InventoryDetails object for each item will also be returned. This is much slower.
    */
    // @DataMember
    // @ApiMember(DataType="boolean", Description="If set, the InventoryDetails object for each item will also be returned. This is much slower.", Name="IncludeDetails")
    bool? IncludeDetails;

    /**
    * If sent, only items with an Available Quantity greater then or equal to the sent value will be returned. Use of this parameter requires that the LocFk parameter also be sent.
    */
    // @DataMember
    // @ApiMember(DataType="integer", Description="If sent, only items with an Available Quantity greater then or equal to the sent value will be returned. Use of this parameter requires that the LocFk parameter also be sent.", Format="int32", Name="MinimumAvailableQuantity")
    int? MinimumAvailableQuantity;

    SearchInventoryRequest({this.LocFk,this.MfgFk,this.CatFk,this.SubFk,this.SelFk,this.Cat,this.Sub,this.SelectionCode,this.Mfg,this.IncludeSerials,this.IncludeMedia,this.IncludeAccessories,this.IncludePackages,this.SearchStr,this.ExactModel,this.StartOffset,this.RecordCount,this.IncludeIconImage,this.CatIdList,this.SubIdList,this.MfgIdList,this.SelIdList,this.IncludeDeleted,this.ChangedDate,this.IncludePackageLineItems,this.IncludeDetails,this.MinimumAvailableQuantity});
    SearchInventoryRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        LocFk = json['LocFk'];
        MfgFk = json['MfgFk'];
        CatFk = json['CatFk'];
        SubFk = json['SubFk'];
        SelFk = json['SelFk'];
        Cat = json['Cat'];
        Sub = json['Sub'];
        SelectionCode = json['SelectionCode'];
        Mfg = json['Mfg'];
        IncludeSerials = json['IncludeSerials'];
        IncludeMedia = json['IncludeMedia'];
        IncludeAccessories = json['IncludeAccessories'];
        IncludePackages = json['IncludePackages'];
        SearchStr = json['SearchStr'];
        ExactModel = json['ExactModel'];
        StartOffset = json['StartOffset'];
        RecordCount = json['RecordCount'];
        IncludeIconImage = json['IncludeIconImage'];
        CatIdList = JsonConverters.fromJson(json['CatIdList'],'List<int>',context!);
        SubIdList = JsonConverters.fromJson(json['SubIdList'],'List<int>',context!);
        MfgIdList = JsonConverters.fromJson(json['MfgIdList'],'List<int>',context!);
        SelIdList = JsonConverters.fromJson(json['SelIdList'],'List<int>',context!);
        IncludeDeleted = json['IncludeDeleted'];
        ChangedDate = JsonConverters.fromJson(json['ChangedDate'],'DateTime',context!);
        IncludePackageLineItems = json['IncludePackageLineItems'];
        IncludeDetails = json['IncludeDetails'];
        MinimumAvailableQuantity = json['MinimumAvailableQuantity'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'LocFk': LocFk,
        'MfgFk': MfgFk,
        'CatFk': CatFk,
        'SubFk': SubFk,
        'SelFk': SelFk,
        'Cat': Cat,
        'Sub': Sub,
        'SelectionCode': SelectionCode,
        'Mfg': Mfg,
        'IncludeSerials': IncludeSerials,
        'IncludeMedia': IncludeMedia,
        'IncludeAccessories': IncludeAccessories,
        'IncludePackages': IncludePackages,
        'SearchStr': SearchStr,
        'ExactModel': ExactModel,
        'StartOffset': StartOffset,
        'RecordCount': RecordCount,
        'IncludeIconImage': IncludeIconImage,
        'CatIdList': JsonConverters.toJson(CatIdList,'List<int>',context!),
        'SubIdList': JsonConverters.toJson(SubIdList,'List<int>',context!),
        'MfgIdList': JsonConverters.toJson(MfgIdList,'List<int>',context!),
        'SelIdList': JsonConverters.toJson(SelIdList,'List<int>',context!),
        'IncludeDeleted': IncludeDeleted,
        'ChangedDate': JsonConverters.toJson(ChangedDate,'DateTime',context!),
        'IncludePackageLineItems': IncludePackageLineItems,
        'IncludeDetails': IncludeDetails,
        'MinimumAvailableQuantity': MinimumAvailableQuantity
    });

    getTypeName() => "SearchInventoryRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'active_ewebservice.biz', types: <String, TypeInfo> {
    'BaseRequest': TypeInfo(TypeOf.Class, create:() => BaseRequest()),
    'BaseSecureRequest': TypeInfo(TypeOf.Class, create:() => BaseSecureRequest()),
    'BaseResponseResult': TypeInfo(TypeOf.Class, create:() => BaseResponseResult()),
    'BaseResponse': TypeInfo(TypeOf.Class, create:() => BaseResponse()),
    'BindableObject': TypeInfo(TypeOf.AbstractClass),
    'SearchInventoryResultSet': TypeInfo(TypeOf.Class, create:() => SearchInventoryResultSet()),
    'ImageInfo': TypeInfo(TypeOf.Class, create:() => ImageInfo()),
    'InventoryDetailAttribute': TypeInfo(TypeOf.Class, create:() => InventoryDetailAttribute()),
    'LocationInfo': TypeInfo(TypeOf.Class, create:() => LocationInfo()),
    'InventoryDetailBySerial': TypeInfo(TypeOf.Class, create:() => InventoryDetailBySerial()),
    'List<InventoryDetailAttribute>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailAttribute>[]),
    'List<ImageInfo>': TypeInfo(TypeOf.Class, create:() => <ImageInfo>[]),
    'InventoryDetailSubstitute': TypeInfo(TypeOf.Class, create:() => InventoryDetailSubstitute()),
    'InventoryDetailByLocation': TypeInfo(TypeOf.Class, create:() => InventoryDetailByLocation()),
    'List<InventoryDetailBySerial>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailBySerial>[]),
    'List<InventoryDetailSubstitute>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailSubstitute>[]),
    'InventoryDetailByVariant': TypeInfo(TypeOf.Class, create:() => InventoryDetailByVariant()),
    'List<InventoryDetailByLocation>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailByLocation>[]),
    'AddOnDetail': TypeInfo(TypeOf.Class, create:() => AddOnDetail()),
    'ActiveEInfo': TypeInfo(TypeOf.Class, create:() => ActiveEInfo()),
    'InventoryDetail': TypeInfo(TypeOf.Class, create:() => InventoryDetail()),
    'List<InventoryDetailByVariant>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailByVariant>[]),
    'List<AddOnDetail>': TypeInfo(TypeOf.Class, create:() => <AddOnDetail>[]),
    'SearchInventoryApiResult': TypeInfo(TypeOf.Class, create:() => SearchInventoryApiResult()),
    'SearchInventoryResponse': TypeInfo(TypeOf.Class, create:() => SearchInventoryResponse()),
    'List<SearchInventoryApiResult>': TypeInfo(TypeOf.Class, create:() => <SearchInventoryApiResult>[]),
    'SearchInventoryRequest': TypeInfo(TypeOf.Class, create:() => SearchInventoryRequest()),
});

Dart SearchInventoryRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other

HTTP + OTHER

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /api/SearchInventory HTTP/1.1 
Host: active-ewebservice.biz 
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length

{"LocFk":0,"MfgFk":0,"CatFk":0,"SubFk":0,"SelFk":0,"Cat":0,"Sub":0,"SelectionCode":"String","Mfg":"String","IncludeSerials":false,"IncludeMedia":false,"IncludeAccessories":false,"IncludePackages":false,"SearchStr":"String","ExactModel":false,"StartOffset":0,"RecordCount":0,"IncludeIconImage":false,"CatIdList":[0],"SubIdList":[0],"MfgIdList":[0],"SelIdList":[0],"IncludeDeleted":false,"ChangedDate":"0001-01-01T00:00:00.0000000","IncludePackageLineItems":false,"IncludeDetails":false,"MinimumAvailableQuantity":0,"Token":"String","DeviceId":"String","AppId":"String","ApiKey":"String","OAuthToken":"String"}
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"StartOffset":0,"RecordCount":0,"RemainingRecords":0,"TotalRecords":0,"Records":[{"Detail":{"SadPk":0,"InvType":"String","Model":"String","Description":"String","Mfg":"String","Category":0,"CategoryDescription":"String","SubCategory":0,"SubCategoryDescription":"String","SelectionCode":"String","SelectionCodeDescription":"String","SellSerialsOnline":false,"Notes":"String","Images":[{"Url":"String","ImageStream":"String","ImageSize":"String","ErrorMessage":"String","UriPk":0}],"HasImages":true,"VariantDetails":[{}],"AddOns":[{}],"ActiveEInfo":{"Dimension":"String","WebDescription":"String","Summary":"String","SETitle":"String","SEDescription":"String","SEKeywords":"String","SEAltText":"String","SEHtmlFreeText":"String","Unpublished":false,"FreeShipping":false,"IsFeatured":false,"WebCategoryIds":[0]},"Weight":0,"Unit":"String"},"IconImage":{"Url":"String","ImageStream":"String","ImageSize":"String","ErrorMessage":"String","UriPk":0},"CustomerPrice":0,"Pk":0,"Description":"String","InventoryType":"String","Manufacturer":"String","Model":"String","Category":0,"CategoryDescription":"String","SubCategory":0,"SubCategoryDescription":"String","SelectionCode":"String","SelectionCodeDescription":"String","Sku":"String","Mpn":"String","Discontinued":false,"Attribute1":"String","Attribute2":"String","Attribute3":"String","Attribute4":"String","Attribute5":"String","Attribute6":"String","Attribute7":"String","Attribute8":"String","Attribute9":"String","Attribute10":"String","Attribute11":"String","Attribute12":"String","Attribute13":"String","Attribute14":"String","Attribute15":"String","Attribute16":"String","Attribute17":"String","Attribute18":"String","Attribute19":"String","Attribute20":"String","ComputerQuantity":0,"OurPrice":0,"RetailPrice":0,"ActiveePrice":0,"PriceA":0,"PriceB":0,"PriceC":0,"MinPrice":0,"AvailableQuantity":0,"IsMedia":false,"IsPackage":false,"HasImage":false,"SearchTerm":"String","Keywords":"String","KeywordsOrigin":"String","Deleted":false,"PackageLineItems":[{"Model":"String","Cat":0,"Sub":0,"Description":"String","Quantity":0,"Amount":0,"Discount":0,"ItemType":"String"}]}],"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}