import 'package:cloud_firestore/cloud_firestore.dart'; class ProductModel { int? fats; String? vendorID; bool? veg; bool? publish; List? addOnsTitle; int? calories; int? proteins; List? addOnsPrice; num? reviewsSum; bool? takeawayOption; String? name; Map? reviewAttributes; Map? productSpecification; ItemAttribute? itemAttribute; String? id; int? quantity; int? grams; num? reviewsCount; String? disPrice; List? photos; bool? nonveg; String? photo; String? price; String? categoryID; String? description; Timestamp? createdAt; String? sectionId; String? brandId; bool? isDigitalProduct; String? digitalProduct; ProductModel({ this.fats, this.vendorID, this.veg, this.publish, this.addOnsTitle, this.calories, this.proteins, this.addOnsPrice, this.reviewsSum, this.takeawayOption, this.name, this.reviewAttributes, this.productSpecification, this.itemAttribute, this.id, this.quantity, this.grams, this.reviewsCount, this.disPrice, this.photos, this.nonveg, this.photo, this.price, this.categoryID, this.description, this.createdAt, this.sectionId, this.brandId, this.isDigitalProduct, this.digitalProduct, }); ProductModel.fromJson(Map json) { fats = json['fats']; vendorID = json['vendorID']; veg = json['veg']; publish = json['publish']; addOnsTitle = json['addOnsTitle']; calories = json['calories']; proteins = json['proteins']; addOnsPrice = json['addOnsPrice']; reviewsSum = json['reviewsSum'] ?? 0.0; takeawayOption = json['takeawayOption']; name = json['name']; reviewAttributes = json['reviewAttributes']; productSpecification = json['product_specification']; itemAttribute = json['item_attribute'] != null ? ItemAttribute.fromJson(json['item_attribute']) : null; id = json['id']; quantity = json['quantity']; grams = json['grams']; reviewsCount = json['reviewsCount'] ?? 0.0; disPrice = json['disPrice'] ?? "0"; photos = json['photos'] ?? []; nonveg = json['nonveg']; photo = json['photo']; price = json['price']; categoryID = json['categoryID']; description = json['description']; createdAt = json['createdAt']; sectionId = json['section_id']; brandId = json['brandID']; isDigitalProduct = json['isDigitalProduct']; digitalProduct = json['digitalProduct']; } Map toJson() { final Map data = {}; data['fats'] = fats; data['vendorID'] = vendorID; data['veg'] = veg; data['publish'] = publish; data['addOnsTitle'] = addOnsTitle; data['addOnsPrice'] = addOnsPrice; data['calories'] = calories; data['proteins'] = proteins; data['reviewsSum'] = reviewsSum; data['takeawayOption'] = takeawayOption; data['name'] = name; data['reviewAttributes'] = reviewAttributes; data['product_specification'] = productSpecification; if (itemAttribute != null) { data['item_attribute'] = itemAttribute!.toJson(); } data['id'] = id; data['quantity'] = quantity; data['grams'] = grams; data['reviewsCount'] = reviewsCount; data['disPrice'] = disPrice; data['photos'] = photos; data['nonveg'] = nonveg; data['photo'] = photo; data['price'] = price; data['categoryID'] = categoryID; data['description'] = description; data['createdAt'] = createdAt; data['section_id'] = sectionId; data['brandID'] = brandId; data['isDigitalProduct'] = isDigitalProduct; data['digitalProduct'] = digitalProduct; return data; } } class ItemAttribute { List? attributes; List? variants; ItemAttribute({this.attributes, this.variants}); ItemAttribute.fromJson(Map json) { if (json['attributes'] != null) { attributes = []; json['attributes'].forEach((v) { attributes!.add(Attributes.fromJson(v)); }); } if (json['variants'] != null) { variants = []; json['variants'].forEach((v) { variants!.add(Variants.fromJson(v)); }); } } Map toJson() { final Map data = {}; if (attributes != null) { data['attributes'] = attributes!.map((v) => v.toJson()).toList(); } if (variants != null) { data['variants'] = variants!.map((v) => v.toJson()).toList(); } return data; } } class Attributes { String? attributeId; List? attributeOptions; Attributes({this.attributeId, this.attributeOptions}); Attributes.fromJson(Map json) { attributeId = json['attribute_id']; attributeOptions = json['attribute_options'].cast(); } Map toJson() { final Map data = {}; data['attribute_id'] = attributeId; data['attribute_options'] = attributeOptions; return data; } } class Variants { String? variantId; String? variantImage; String? variantPrice; String? variantQuantity; String? variantSku; Variants({ this.variantId, this.variantImage, this.variantPrice, this.variantQuantity, this.variantSku, }); Variants.fromJson(Map json) { variantId = json['variant_id']; variantImage = json['variant_image']; variantPrice = json['variant_price'] ?? '0'; variantQuantity = json['variant_quantity'] ?? '0'; variantSku = json['variant_sku']; } Map toJson() { final Map data = {}; data['variant_id'] = variantId; data['variant_image'] = variantImage; data['variant_price'] = variantPrice; data['variant_quantity'] = variantQuantity; data['variant_sku'] = variantSku; return data; } } class ReviewsAttribute { num? reviewsCount; num? reviewsSum; ReviewsAttribute({this.reviewsCount, this.reviewsSum}); ReviewsAttribute.fromJson(Map json) { reviewsCount = json['reviewsCount'] ?? 0; reviewsSum = json['reviewsSum'] ?? 0; } Map toJson() { final Map data = {}; data['reviewsCount'] = reviewsCount; data['reviewsSum'] = reviewsSum; return data; } }