| GET | /stock/{brand} | Get stock |
|---|
import 'package:servicestack/servicestack.dart';
class StockRequest implements IConvertible
{
/**
* Brand
*/
// @ApiMember(Description="Brand", IsRequired=true)
String brand = "";
/**
* POS Legacy
*/
// @ApiMember(Description="POS Legacy")
List<String>? posCodes;
/**
* Article Codes
*/
// @ApiMember(Description="Article Codes")
List<String>? articleCodes;
/**
* Include Extra Info
*/
// @ApiMember(Description="Include Extra Info")
bool? includeExtraInfo;
/**
* Cluster Id
*/
// @ApiMember(Description="Cluster Id")
List<String>? clusterIds;
/**
* Include Consignment NotAuthorized POS
*/
// @ApiMember(Description="Include Consignment NotAuthorized POS")
bool? includeConsignmentNotAuthorizedPOS;
/**
* Include Retail Sales Price in the Output, by default: false
*/
// @ApiMember(Description="Include Retail Sales Price in the Output, by default: false")
bool? includeRSP;
/**
* In Stock Since date from
*/
// @ApiMember(Description="In Stock Since date from ")
DateTime? dateFrom;
/**
* In Stock Since date to
*/
// @ApiMember(Description="In Stock Since date to")
DateTime? dateTo;
/**
* Item type, 'standard' OR 'consigned'. By default, all are coming
*/
// @ApiMember(Description="Item type, 'standard' OR 'consigned'. By default, all are coming")
String? type;
/**
* Storage Location Identifier e.g. CPO, NEW, REP
*/
// @ApiMember(Description="Storage Location Identifier e.g. CPO, NEW, REP")
String? storageLocationId;
/**
* Inventory segment e.g. CPO or null
*/
// @ApiMember(Description="Inventory segment e.g. CPO or null")
String? inventorySegment;
StockRequest({this.brand="",this.posCodes,this.articleCodes,this.includeExtraInfo,this.clusterIds,this.includeConsignmentNotAuthorizedPOS,this.includeRSP,this.dateFrom,this.dateTo,this.type,this.storageLocationId,this.inventorySegment});
StockRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
brand = json['brand'] ?? "";
posCodes = JsonConverters.fromJson(json['posCodes'],'List<String>',context!);
articleCodes = JsonConverters.fromJson(json['articleCodes'],'List<String>',context!);
includeExtraInfo = json['includeExtraInfo'];
clusterIds = JsonConverters.fromJson(json['clusterIds'],'List<String>',context!);
includeConsignmentNotAuthorizedPOS = json['includeConsignmentNotAuthorizedPOS'];
includeRSP = json['includeRSP'];
dateFrom = JsonConverters.fromJson(json['dateFrom'],'DateTime',context!);
dateTo = JsonConverters.fromJson(json['dateTo'],'DateTime',context!);
type = json['type'];
storageLocationId = json['storageLocationId'];
inventorySegment = json['inventorySegment'];
return this;
}
Map<String, dynamic> toJson() => {
'brand': brand,
'posCodes': JsonConverters.toJson(posCodes,'List<String>',context!),
'articleCodes': JsonConverters.toJson(articleCodes,'List<String>',context!),
'includeExtraInfo': includeExtraInfo,
'clusterIds': JsonConverters.toJson(clusterIds,'List<String>',context!),
'includeConsignmentNotAuthorizedPOS': includeConsignmentNotAuthorizedPOS,
'includeRSP': includeRSP,
'dateFrom': JsonConverters.toJson(dateFrom,'DateTime',context!),
'dateTo': JsonConverters.toJson(dateTo,'DateTime',context!),
'type': type,
'storageLocationId': storageLocationId,
'inventorySegment': inventorySegment
};
getTypeName() => "StockRequest";
TypeContext? context = _ctx;
}
class Pos implements IConvertible
{
/**
* Name of the POS
*/
// @ApiMember(Description="Name of the POS", IsRequired=true)
String name = "";
/**
* POS Code
*/
// @ApiMember(Description="POS Code", IsRequired=true)
String posCode = "";
/**
* Pos Code To Be Displayed
*/
// @ApiMember(Description="Pos Code To Be Displayed", IsRequired=true)
String posCodeToBeDisplayed = "";
/**
* Country of the POS
*/
// @ApiMember(Description="Country of the POS", IsRequired=true)
String country = "";
/**
* City of the POS
*/
// @ApiMember(Description="City of the POS", IsRequired=true)
String city = "";
/**
* Postal Code
*/
// @ApiMember(Description="Postal Code", IsRequired=true)
String postalCode = "";
/**
* State
*/
// @ApiMember(Description="State", IsRequired=true)
String state = "";
/**
* Street
*/
// @ApiMember(Description="Street", IsRequired=true)
String street = "";
Pos({this.name="",this.posCode="",this.posCodeToBeDisplayed="",this.country="",this.city="",this.postalCode="",this.state="",this.street=""});
Pos.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = json['name'] ?? "";
posCode = json['posCode'] ?? "";
posCodeToBeDisplayed = json['posCodeToBeDisplayed'] ?? "";
country = json['country'] ?? "";
city = json['city'] ?? "";
postalCode = json['postalCode'] ?? "";
state = json['state'] ?? "";
street = json['street'] ?? "";
return this;
}
Map<String, dynamic> toJson() => {
'name': name,
'posCode': posCode,
'posCodeToBeDisplayed': posCodeToBeDisplayed,
'country': country,
'city': city,
'postalCode': postalCode,
'state': state,
'street': street
};
getTypeName() => "Pos";
TypeContext? context = _ctx;
}
class UnitNetAmount implements IConvertible
{
/**
* Currency Iso Code
*/
// @ApiMember(Description="Currency Iso Code", IsRequired=true)
String currencyIsoCode = "";
/**
* Value
*/
// @ApiMember(Description="Value", IsRequired=true)
double value = 0;
UnitNetAmount({this.currencyIsoCode="",this.value=0});
UnitNetAmount.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
currencyIsoCode = json['currencyIsoCode'] ?? "";
value = JsonConverters.toDouble(json['value']) ?? 0;
return this;
}
Map<String, dynamic> toJson() => {
'currencyIsoCode': currencyIsoCode,
'value': value
};
getTypeName() => "UnitNetAmount";
TypeContext? context = _ctx;
}
class StorageLocation implements IConvertible
{
/**
* Storage Location Identifier
*/
// @ApiMember(Description="Storage Location Identifier", IsRequired=true)
String storageLocationId = "";
/**
* Storage Location Description
*/
// @ApiMember(Description="Storage Location Description")
String? storageLocationDs;
StorageLocation({this.storageLocationId="",this.storageLocationDs});
StorageLocation.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
storageLocationId = json['storageLocationId'] ?? "";
storageLocationDs = json['storageLocationDs'];
return this;
}
Map<String, dynamic> toJson() => {
'storageLocationId': storageLocationId,
'storageLocationDs': storageLocationDs
};
getTypeName() => "StorageLocation";
TypeContext? context = _ctx;
}
class StockPositionItem implements IConvertible
{
/**
* Quantity
*/
// @ApiMember(Description="Quantity", IsRequired=true)
int quantity = 0;
/**
* Serial Number
*/
// @ApiMember(Description="Serial Number")
String? serialNumber;
/**
* Stock Date
*/
// @ApiMember(Description="Stock Date", IsRequired=true)
String stockDate = "";
/**
* Loaded On Date
*/
// @ApiMember(Description="Loaded On Date", IsRequired=true)
String loadedOnDate = "";
/**
* Type e.g. consignment or standard
*/
// @ApiMember(Description="Type e.g. consignment or standard", IsRequired=true)
String type = "";
/**
* Is Consignment Sellable
*/
// @ApiMember(Description="Is Consignment Sellable ", IsRequired=true)
bool? isConsignmentSellable;
/**
* Sell-In Price. Disclaimer: this data will be arriving empty/null due to DealerCost project still being in test phase.
*/
// @ApiMember(Description="Sell-In Price. Disclaimer: this data will be arriving empty/null due to DealerCost project still being in test phase.")
UnitNetAmount? unitNetAmount;
/**
* Retail Sales Price
*/
// @ApiMember(Description="Retail Sales Price")
UnitNetAmount? retailSalesPrice;
/**
* Storage Location
*/
// @ApiMember(Description="Storage Location")
StorageLocation? storageLocation;
StockPositionItem({this.quantity=0,this.serialNumber,this.stockDate="",this.loadedOnDate="",this.type="",this.isConsignmentSellable,this.unitNetAmount,this.retailSalesPrice,this.storageLocation});
StockPositionItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
quantity = json['quantity'] ?? 0;
serialNumber = json['serialNumber'];
stockDate = json['stockDate'] ?? "";
loadedOnDate = json['loadedOnDate'] ?? "";
type = json['type'] ?? "";
isConsignmentSellable = json['isConsignmentSellable'];
unitNetAmount = JsonConverters.fromJson(json['unitNetAmount'],'UnitNetAmount',context!);
retailSalesPrice = JsonConverters.fromJson(json['retailSalesPrice'],'UnitNetAmount',context!);
storageLocation = JsonConverters.fromJson(json['storageLocation'],'StorageLocation',context!);
return this;
}
Map<String, dynamic> toJson() => {
'quantity': quantity,
'serialNumber': serialNumber,
'stockDate': stockDate,
'loadedOnDate': loadedOnDate,
'type': type,
'isConsignmentSellable': isConsignmentSellable,
'unitNetAmount': JsonConverters.toJson(unitNetAmount,'UnitNetAmount',context!),
'retailSalesPrice': JsonConverters.toJson(retailSalesPrice,'UnitNetAmount',context!),
'storageLocation': JsonConverters.toJson(storageLocation,'StorageLocation',context!)
};
getTypeName() => "StockPositionItem";
TypeContext? context = _ctx;
}
class StockItem implements IConvertible
{
/**
* Article Code
*/
// @ApiMember(Description="Article Code", IsRequired=true)
String articleCode = "";
/**
* Current Stock Quantity
*/
// @ApiMember(Description="Current Stock Quantity", IsRequired=true)
int currentStockQuantity = 0;
/**
* Serial Numbers
*/
// @ApiMember(Description="Serial Numbers")
List<String>? serialNumbers;
/**
* Stock Item in Details
*/
// @ApiMember(Description="Stock Item in Details", IsRequired=true)
List<StockPositionItem> stockPositions = [];
StockItem({this.articleCode="",this.currentStockQuantity=0,this.serialNumbers,this.stockPositions=const []});
StockItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
articleCode = json['articleCode'] ?? "";
currentStockQuantity = json['currentStockQuantity'] ?? 0;
serialNumbers = JsonConverters.fromJson(json['serialNumbers'],'List<String>',context!);
stockPositions = JsonConverters.fromJson(json['stockPositions'],'List<StockPositionItem>',context!) ?? [];
return this;
}
Map<String, dynamic> toJson() => {
'articleCode': articleCode,
'currentStockQuantity': currentStockQuantity,
'serialNumbers': JsonConverters.toJson(serialNumbers,'List<String>',context!),
'stockPositions': JsonConverters.toJson(stockPositions,'List<StockPositionItem>',context!)
};
getTypeName() => "StockItem";
TypeContext? context = _ctx;
}
class PosStockItem implements IConvertible
{
/**
* Brand
*/
// @ApiMember(Description="Brand", IsRequired=true)
String brand = "";
/**
* Pos Code
*/
// @ApiMember(Description="Pos Code", IsRequired=true)
String posCode = "";
/**
* Shared Stock Location
*/
// @ApiMember(Description="Shared Stock Location", IsRequired=true)
Pos? sharedStockLocation;
/**
* Stock Items
*/
// @ApiMember(Description="Stock Items")
List<StockItem>? stockItems;
PosStockItem({this.brand="",this.posCode="",this.sharedStockLocation,this.stockItems});
PosStockItem.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
brand = json['brand'] ?? "";
posCode = json['posCode'] ?? "";
sharedStockLocation = JsonConverters.fromJson(json['sharedStockLocation'],'Pos',context!);
stockItems = JsonConverters.fromJson(json['stockItems'],'List<StockItem>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'brand': brand,
'posCode': posCode,
'sharedStockLocation': JsonConverters.toJson(sharedStockLocation,'Pos',context!),
'stockItems': JsonConverters.toJson(stockItems,'List<StockItem>',context!)
};
getTypeName() => "PosStockItem";
TypeContext? context = _ctx;
}
class GetStockResponse extends ListBase<PosStockItem> implements IConvertible
{
final List<PosStockItem> l = [];
set length(int newLength) { l.length = newLength; }
int get length => l.length;
PosStockItem operator [](int index) => l[index];
void operator []=(int index, PosStockItem value) { l[index] = value; }
GetStockResponse();
GetStockResponse.fromJson(Map<String, dynamic> json) : super();
fromMap(Map<String, dynamic> json) {
return this;
}
Map<String, dynamic> toJson() => {};
getTypeName() => "GetStockResponse";
TypeContext? context = _ctx;
}
class GetStock extends StockRequest implements IConvertible
{
GetStock();
GetStock.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "GetStock";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'dev_api_booster.richemont.com', types: <String, TypeInfo> {
'StockRequest': TypeInfo(TypeOf.Class, create:() => StockRequest()),
'Pos': TypeInfo(TypeOf.Class, create:() => Pos()),
'UnitNetAmount': TypeInfo(TypeOf.Class, create:() => UnitNetAmount()),
'StorageLocation': TypeInfo(TypeOf.Class, create:() => StorageLocation()),
'StockPositionItem': TypeInfo(TypeOf.Class, create:() => StockPositionItem()),
'StockItem': TypeInfo(TypeOf.Class, create:() => StockItem()),
'List<StockPositionItem>': TypeInfo(TypeOf.Class, create:() => <StockPositionItem>[]),
'PosStockItem': TypeInfo(TypeOf.Class, create:() => PosStockItem()),
'List<StockItem>': TypeInfo(TypeOf.Class, create:() => <StockItem>[]),
'GetStockResponse': TypeInfo(TypeOf.Class, create:() => GetStockResponse()),
'GetStock': TypeInfo(TypeOf.Class, create:() => GetStock()),
});
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /stock/{brand} HTTP/1.1
Host: dev-api-booster.richemont.com
Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length [ ]