AIM Web Services

<back to all web services

InventoryDetailRequest

InventoryDetail
Requires active-e Inventory Service

The following routes are available for this service:
POST, GET/api/InventoryDetail
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
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 InventoryDetailResponse extends BaseResponse 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;

    // @DataMember
    double? ShipCharge;

    InventoryDetailResponse({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,this.ShipCharge});
    InventoryDetailResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(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'];
        ShipCharge = JsonConverters.toDouble(json['ShipCharge']);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        '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,
        'ShipCharge': ShipCharge
    });

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

/**
* InventoryDetailRequires active-e Inventory Service
*/
// @DataContract
class InventoryDetailRequest extends BaseSecureRequest implements IConvertible
{
    // @DataMember
    int? Pk;

    // @DataMember
    String? PkType;

    // @DataMember
    String? Model;

    // @DataMember
    bool? SkipImages;

    // @DataMember
    bool? IncludeSerialInfo;

    // @DataMember
    int? CustomerAcct;

    InventoryDetailRequest({this.Pk,this.PkType,this.Model,this.SkipImages,this.IncludeSerialInfo,this.CustomerAcct});
    InventoryDetailRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        Pk = json['Pk'];
        PkType = json['PkType'];
        Model = json['Model'];
        SkipImages = json['SkipImages'];
        IncludeSerialInfo = json['IncludeSerialInfo'];
        CustomerAcct = json['CustomerAcct'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'Pk': Pk,
        'PkType': PkType,
        'Model': Model,
        'SkipImages': SkipImages,
        'IncludeSerialInfo': IncludeSerialInfo,
        'CustomerAcct': CustomerAcct
    });

    getTypeName() => "InventoryDetailRequest";
    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()),
    '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()),
    'InventoryDetailResponse': TypeInfo(TypeOf.Class, create:() => InventoryDetailResponse()),
    'List<InventoryDetailByVariant>': TypeInfo(TypeOf.Class, create:() => <InventoryDetailByVariant>[]),
    'List<AddOnDetail>': TypeInfo(TypeOf.Class, create:() => <AddOnDetail>[]),
    'InventoryDetailRequest': TypeInfo(TypeOf.Class, create:() => InventoryDetailRequest()),
});

Dart InventoryDetailRequest DTOs

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

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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

POST /api/InventoryDetail HTTP/1.1 
Host: active-ewebservice.biz 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"Pk":0,"PkType":"String","Model":"String","SkipImages":false,"IncludeSerialInfo":false,"CustomerAcct":0,"Token":"String","DeviceId":"String","AppId":"String","ApiKey":"String","OAuthToken":"String"}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"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","ShipCharge":0,"Status":{"StatusCode":"String","Login":"String","ErrorCode":"String","ErrorDisplayText":"String","ErrorMessage":"String","DomainName":"String","IpAddress":"String"}}