ProductData.fromJson constructor
Implementation
factory ProductData.fromJson(String id, Map<String, dynamic> data, {bool local = false}){
List<StringData> _name = [];
if (data['name'] != null)
for (var element in List.from(data['name'])) {
_name.add(StringData.fromJson(element));
}
List<StringData> _descTitle = [];
if (data['descTitle'] != null)
for (var element in List.from(data['descTitle'])) {
_descTitle.add(StringData.fromJson(element));
}
List<StringData> _desc = [];
if (data['desc'] != null)
for (var element in List.from(data['desc'])) {
_desc.add(StringData.fromJson(element));
}
List<PriceData> _price = [];
if (data['price'] != null)
for (var element in List.from(data['price'])) {
_price.add(PriceData.fromJson(element));
}
List<ImageData> _gallery = [];
if (data['gallery'] != null)
for (var element in List.from(data['gallery'])) {
_gallery.add(ImageData.fromJson(element));
}
List<String> _category = [];
if (data['category'] != null)
for (var element in List.from(data['category'])) {
_category.add(element);
}
List<String> _providers = [];
if (data['providers'] != null)
for (var element in List.from(data['providers'])) {
_providers.add(element);
}
List<AddonData> _addon = [];
if (data['addon'] != null)
for (var element in List.from(data['addon'])) {
_addon.add(AddonData.fromJson(element));
}
List<GroupData> _group = [];
if (data['group'] != null)
for (var element in List.from(data['group'])) {
_group.add(GroupData.fromJson(element));
}
var rating1 = (data["rating1"] != null) ? toInt(data["rating1"].toString()) : 0;
var rating2 = (data["rating2"] != null) ? toInt(data["rating2"].toString()) : 0;
var rating3 = (data["rating3"] != null) ? toInt(data["rating3"].toString()) : 0;
var rating4 = (data["rating4"] != null) ? toInt(data["rating4"].toString()) : 0;
var rating5 = (data["rating5"] != null) ? toInt(data["rating5"].toString()) : 0;
var _countRating = rating1+rating2+rating3+rating4+rating5;
double _rating = 0;
if (_countRating != 0)
_rating = (rating1*1 + rating2*2 + rating3*3 + rating4*4 + rating5*5)/_countRating;
var _favoritesCount = (data["favoritesCount"] != null) ? toInt(data["favoritesCount"].toString()) : 0;
if (_favoritesCount < 0)
_favoritesCount = 0;
return ProductData(
id,
_name,
delete: (data["delete"] != null) ? data["delete"] : false,
timeModify: !local ? (data["timeModify"] != null) ? data["timeModify"].toDate() : DateTime.now()
: DateTime.parse(data["timeModify"]),
tax: (data["tax"] != null) ? toDouble(data["tax"].toString()) : 0.0,
descTitle: _descTitle,
desc: _desc,
visible: (data["visible"] != null) ? data["visible"] : true,
price: _price,
gallery: _gallery,
duration: (data["duration"] != null) ? Duration(milliseconds : data["duration"]) : Duration(),
category: _category,
providers: _providers,
rating1: rating1,
rating2: rating2,
rating3: rating3,
rating4: rating4,
rating5: rating5,
countRating: _countRating,
rating: _rating,
taxAdmin: (data["taxAdmin"] != null) ? toDouble(data["taxAdmin"].toString()) : 0.0,
favoritesCount: _favoritesCount,
addon: _addon,
unavailable: (data["unavailable"] != null) ? data["unavailable"] : false,
priceProduct: (data["priceProduct"] != null) ? toDouble(data["priceProduct"].toString()) : 0.0,
discPriceProduct: (data["discPriceProduct"] != null) ? toDouble(data["discPriceProduct"].toString()) : 0.0,
group: _group,
unit: (data["unit"] != null) ? data["unit"] : "pcs",
thisIsArticle: (data["thisIsArticle"] != null) ? data["thisIsArticle"] : false,
countProduct: (data["countProduct"] != null) ? toInt(data["countProduct"].toString()) : 0,
video: (data["video"] != null) ? data["video"] : "",
videoType: (data["videoType"] != null) ? data["videoType"] : "",
stock: (data["stock"] != null) ? toInt(data["stock"].toString()) : 0,
);
}