ProductData.fromJson constructor

ProductData.fromJson(
  1. String id,
  2. Map<String, dynamic> data, {
  3. bool local = false,
})

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,
  );
}