Files
Fondex/lib/models/product_model.dart

244 lines
6.3 KiB
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
class ProductModel {
int? fats;
String? vendorID;
bool? veg;
bool? publish;
List<dynamic>? addOnsTitle;
int? calories;
int? proteins;
List<dynamic>? addOnsPrice;
num? reviewsSum;
bool? takeawayOption;
String? name;
Map<String, dynamic>? reviewAttributes;
Map<String, dynamic>? productSpecification;
ItemAttribute? itemAttribute;
String? id;
int? quantity;
int? grams;
num? reviewsCount;
String? disPrice;
List<dynamic>? 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<String, dynamic> 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<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
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>? attributes;
List<Variants>? variants;
ItemAttribute({this.attributes, this.variants});
ItemAttribute.fromJson(Map<String, dynamic> json) {
if (json['attributes'] != null) {
attributes = <Attributes>[];
json['attributes'].forEach((v) {
attributes!.add(Attributes.fromJson(v));
});
}
if (json['variants'] != null) {
variants = <Variants>[];
json['variants'].forEach((v) {
variants!.add(Variants.fromJson(v));
});
}
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
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<String>? attributeOptions;
Attributes({this.attributeId, this.attributeOptions});
Attributes.fromJson(Map<String, dynamic> json) {
attributeId = json['attribute_id'];
attributeOptions = json['attribute_options'].cast<String>();
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
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<String, dynamic> json) {
variantId = json['variant_id'];
variantImage = json['variant_image'];
variantPrice = json['variant_price'] ?? '0';
variantQuantity = json['variant_quantity'] ?? '0';
variantSku = json['variant_sku'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
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<String, dynamic> json) {
reviewsCount = json['reviewsCount'] ?? 0;
reviewsSum = json['reviewsSum'] ?? 0;
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['reviewsCount'] = reviewsCount;
data['reviewsSum'] = reviewsSum;
return data;
}
}