244 lines
6.3 KiB
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;
|
|
}
|
|
}
|