productdetails

This commit is contained in:
2025-01-31 19:02:20 +05:30
parent 028155a1d7
commit 42aaa7cdad
32 changed files with 2803 additions and 1987 deletions

View File

@@ -1,327 +1,72 @@
// // To parse this JSON data, do
// //
// // final allCartItems = allCartItemsFromJson(jsondynamic);
// import 'dart:convert';
// import 'package:grocery_app/src/data/allProduct_model.dart';
// AllCartItems allCartItemsFromJson(dynamic str) =>
// AllCartItems.fromJson(json.decode(str));
// dynamic allCartItemsToJson(AllCartItems data) => json.encode(data.toJson());
// class AllCartItems {
// dynamic id;
// dynamic userId;
// dynamic subtotal;
// DateTime? createdAt;
// DateTime? updatedAt;
// List<Item>? items;
// AllCartItems({
// this.id,
// this.userId,
// this.subtotal,
// this.createdAt,
// this.updatedAt,
// this.items,
// });
// factory AllCartItems.fromJson(Map<dynamic, dynamic> json) => AllCartItems(
// id: json["id"],
// userId: json["userId"],
// subtotal: json["subtotal"],
// createdAt: DateTime.parse(json["createdAt"]),
// updatedAt: DateTime.parse(json["updatedAt"]),
// items: List<Item>.from(json["items"].map((x) => Item.fromJson(x))),
// );
// Map<dynamic, dynamic> toJson() => {
// "id": id,
// "userId": userId,
// "subtotal": subtotal,
// "createdAt": createdAt,
// "updatedAt": updatedAt,
// "items": List<dynamic>.from(items!.map((x) => x.toJson())),
// };
// }
// class Item {
// dynamic id;
// dynamic quantity;
// dynamic priceSnapshot;
// dynamic cartId;
// dynamic productId;
// dynamic storeId;
// DateTime? createdAt;
// DateTime? updatedAt;
// Product? product;
// Store? store;
// Item({
// this.id,
// this.quantity,
// this.priceSnapshot,
// this.cartId,
// this.productId,
// this.storeId,
// this.createdAt,
// this.updatedAt,
// this.product,
// this.store,
// });
// factory Item.fromJson(Map<dynamic, dynamic> json) => Item(
// id: json["id"],
// quantity: json["quantity"],
// priceSnapshot: json["priceSnapshot"],
// cartId: json["cartId"],
// productId: json["productId"],
// storeId: json["storeId"],
// createdAt: DateTime.parse(json["createdAt"]),
// updatedAt: DateTime.parse(json["updatedAt"]),
// product: Product.fromJson(json["product"]),
// store: Store.fromJson(json["store"]),
// );
// Map<dynamic, dynamic> toJson() => {
// "id": id,
// "quantity": quantity,
// "priceSnapshot": priceSnapshot,
// "cartId": cartId,
// "productId": productId,
// "storeId": storeId,
// "createdAt": createdAt,
// "updatedAt": updatedAt,
// "product": product!.toJson(),
// "store": store!.toJson(),
// };
// }
// class Category {
// dynamic id;
// dynamic name;
// dynamic description;
// dynamic image;
// dynamic slug;
// dynamic level;
// bool? isActive;
// DateTime? createdAt;
// DateTime? updatedAt;
// dynamic parentCategoryId;
// dynamic path;
// Category({
// this.id,
// this.name,
// this.description,
// this.image,
// this.slug,
// this.level,
// this.isActive,
// this.createdAt,
// this.updatedAt,
// this.parentCategoryId,
// this.path,
// });
// factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
// id: json["id"],
// name: json["name"],
// description: json["description"],
// image: json["image"],
// slug: json["slug"],
// level: json["level"],
// isActive: json["isActive"],
// createdAt: DateTime.parse(json["createdAt"]),
// updatedAt: DateTime.parse(json["updatedAt"]),
// parentCategoryId: json["parentCategoryId"],
// path: json["path"],
// );
// Map<dynamic, dynamic> toJson() => {
// "id": id,
// "name": name,
// "description": description,
// "image": image,
// "slug": slug,
// "level": level,
// "isActive": isActive,
// "createdAt": createdAt,
// "updatedAt": updatedAt,
// "parentCategoryId": parentCategoryId,
// "path": path,
// };
// }
// class ProductImage {
// dynamic id;
// dynamic url;
// bool? isDefault;
// dynamic productId;
// ProductImage({
// this.id,
// this.url,
// this.isDefault,
// this.productId,
// });
// factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
// id: json["id"],
// url: json["url"],
// isDefault: json["isDefault"],
// productId: json["productId"],
// );
// Map<dynamic, dynamic> toJson() => {
// "id": id,
// "url": url,
// "isDefault": isDefault,
// "productId": productId,
// };
// }
// class Store {
// dynamic id;
// dynamic storeName;
// dynamic storeDescription;
// dynamic officialPhoneNumber;
// dynamic storeAddress;
// dynamic gstNumber;
// dynamic gumastaNumber;
// dynamic storePicture;
// DateTime? createdAt;
// DateTime? updatedAt;
// dynamic vendorId;
// bool? isActive;
// dynamic couponId;
// Store({
// this.id,
// this.storeName,
// this.storeDescription,
// this.officialPhoneNumber,
// this.storeAddress,
// this.gstNumber,
// this.gumastaNumber,
// this.storePicture,
// this.createdAt,
// this.updatedAt,
// this.vendorId,
// this.isActive,
// this.couponId,
// });
// factory Store.fromJson(Map<dynamic, dynamic> json) => Store(
// id: json["id"],
// storeName: json["storeName"],
// storeDescription: json["storeDescription"],
// officialPhoneNumber: json["officialPhoneNumber"],
// storeAddress: json["storeAddress"],
// gstNumber: json["gstNumber"],
// gumastaNumber: json["gumastaNumber"],
// storePicture: json["storePicture"],
// createdAt: DateTime.parse(json["createdAt"]),
// updatedAt: DateTime.parse(json["updatedAt"]),
// vendorId: json["vendorId"],
// isActive: json["isActive"],
// couponId: json["couponId"],
// );
// Map<dynamic, dynamic> toJson() => {
// "id": id,
// "storeName": storeName,
// "storeDescription": storeDescription,
// "officialPhoneNumber": officialPhoneNumber,
// "storeAddress": storeAddress,
// "gstNumber": gstNumber,
// "gumastaNumber": gumastaNumber,
// "storePicture": storePicture,
// "createdAt": createdAt,
// "updatedAt": updatedAt,
// "vendorId": vendorId,
// "isActive": isActive,
// "couponId": couponId,
// };
// }
// To parse this JSON data, do
//
// final allCartItems = allCartItemsFromJson(jsondynamic);
import 'dart:convert';
import 'package:grocery_app/src/data/allProduct_model.dart';
AllCartItems allCartItemsFromJson(String str) =>
AllCartItems.fromJson(json.decode(str));
AllCartItems allCartItemsFromJson(dynamic str) => AllCartItems.fromJson(json.decode(str));
dynamic allCartItemsToJson(AllCartItems data) => json.encode(data.toJson());
String allCartItemsToJson(AllCartItems data) => json.encode(data.toJson());
class AllCartItems {
dynamic id;
dynamic userId;
dynamic subtotal;
DateTime? createdAt;
DateTime? updatedAt;
List<Item>? items;
String? id;
String? userId;
String? subtotal;
DateTime? createdAt;
DateTime? updatedAt;
List<Item>? items;
AllCartItems({
this.id,
this.userId,
this.subtotal,
this.createdAt,
this.updatedAt,
this.items,
});
AllCartItems({
this.id,
this.userId,
this.subtotal,
this.createdAt,
this.updatedAt,
this.items,
});
factory AllCartItems.fromJson(Map<dynamic, dynamic> json) => AllCartItems(
factory AllCartItems.fromJson(Map<String, dynamic> json) => AllCartItems(
id: json["id"],
userId: json["userId"],
subtotal: json["subtotal"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
items: List<Item>.from(json["items"].map((x) => Item.fromJson(x))),
);
);
Map<dynamic, dynamic> toJson() => {
Map<String, dynamic> toJson() => {
"id": id,
"userId": userId,
"subtotal": subtotal,
"createdAt": createdAt,
"updatedAt": updatedAt,
"items": List<dynamic>.from(items!.map((x) => x.toJson())),
};
};
}
class Item {
dynamic id;
dynamic quantity;
dynamic priceSnapshot;
dynamic cartId;
dynamic productId;
dynamic storeId;
DateTime? createdAt;
DateTime? updatedAt;
Product? product;
Store? store;
String? id;
int? quantity;
String? priceSnapshot;
String? cartId;
String? productId;
String? storeId;
DateTime? createdAt;
DateTime? updatedAt;
ItemProduct? product;
Store? store;
Item({
this.id,
this.quantity,
this.priceSnapshot,
this.cartId,
this.productId,
this.storeId,
this.createdAt,
this.updatedAt,
this.product,
this.store,
});
Item({
this.id,
this.quantity,
this.priceSnapshot,
this.cartId,
this.productId,
this.storeId,
this.createdAt,
this.updatedAt,
this.product,
this.store,
});
factory Item.fromJson(Map<dynamic, dynamic> json) => Item(
factory Item.fromJson(Map<String, dynamic> json) => Item(
id: json["id"],
quantity: json["quantity"],
priceSnapshot: json["priceSnapshot"],
@@ -330,11 +75,11 @@ class Item {
storeId: json["storeId"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
product: Product.fromJson(json["product"]),
product: ItemProduct.fromJson(json["product"]),
store: Store.fromJson(json["store"]),
);
);
Map<dynamic, dynamic> toJson() => {
Map<String, dynamic> toJson() => {
"id": id,
"quantity": quantity,
"priceSnapshot": priceSnapshot,
@@ -345,149 +90,152 @@ class Item {
"updatedAt": updatedAt,
"product": product!.toJson(),
"store": store!.toJson(),
};
};
}
// class Product {
// dynamic id;
// dynamic name;
// dynamic description;
// dynamic additionalInfo;
// dynamic brand;
// dynamic basePrice;
// dynamic discountPrice;
// int stock;
// int quantity;
// dynamic unit;
// dynamic slug;
// dynamic averageRating;
// bool isInStock;
// bool isActive;
// DateTime createdAt;
// DateTime updatedAt;
// dynamic storeId;
// dynamic categoryId;
// dynamic productTypeId;
// dynamic timeSlotId;
// List<ProductImage> productImages;
// Category category;
// List<ProductTag> productTags;
// List<dynamic> zones;
// List<dynamic> productReview;
class ItemProduct {
String? id;
String? name;
String? description;
String? additionalInfo;
dynamic brand;
String? basePrice;
String? discountPrice;
int? stock;
int? quantity;
String? unit;
String? slug;
dynamic? averageRating;
bool? isInStock;
bool? isActive;
DateTime? createdAt;
DateTime? updatedAt;
String? storeId;
String? categoryId;
dynamic? productTypeId;
dynamic? timeSlotId;
List<ProductImage>? productImages;
Category? category;
List<ProductTag>? productTags;
List<dynamic>? zones;
List<dynamic>? productReview;
// Product({
// this.id,
// this.name,
// this.description,
// this.additionalInfo,
// this.brand,
// this.basePrice,
// this.discountPrice,
// this.stock,
// this.quantity,
// this.unit,
// this.slug,
// this.averageRating,
// this.isInStock,
// this.isActive,
// this.createdAt,
// this.updatedAt,
// this.storeId,
// this.categoryId,
// this.productTypeId,
// this.timeSlotId,
// this.productImages,
// this.category,
// this.productTags,
// this.zones,
// this.productReview,
// });
ItemProduct({
this.id,
this.name,
this.description,
this.additionalInfo,
this.brand,
this.basePrice,
this.discountPrice,
this.stock,
this.quantity,
this.unit,
this.slug,
this.averageRating,
this.isInStock,
this.isActive,
this.createdAt,
this.updatedAt,
this.storeId,
this.categoryId,
this.productTypeId,
this.timeSlotId,
this.productImages,
this.category,
this.productTags,
this.zones,
this.productReview,
});
// factory Product.fromJson(Map<dynamic, dynamic> json) => Product(
// id: json["id"],
// name: json["name"],
// description: json["description"],
// additionalInfo: json["additionalInfo"],
// brand: json["brand"],
// basePrice: json["basePrice"],
// discountPrice: json["discountPrice"],
// stock: json["stock"],
// quantity: json["quantity"],
// unit: json["unit"],
// slug: json["slug"],
// averageRating: json["averageRating"],
// isInStock: json["isInStock"],
// isActive: json["isActive"],
// createdAt: DateTime.parse(json["createdAt"]),
// updatedAt: DateTime.parse(json["updatedAt"]),
// storeId: json["storeId"],
// categoryId: json["categoryId"],
// productTypeId: json["productTypeId"],
// timeSlotId: json["timeSlotId"],
// productImages: List<ProductImage>.from(json["productImages"].map((x) => ProductImage.fromJson(x))),
// category: Category.fromJson(json["category"]),
// productTags: List<ProductTag>.from(json["productTags"].map((x) => ProductTag.fromJson(x))),
// zones: List<dynamic>.from(json["zones"].map((x) => x)),
// productReview: List<dynamic>.from(json["ProductReview"].map((x) => x)),
// );
factory ItemProduct.fromJson(Map<String, dynamic> json) => ItemProduct(
id: json["id"],
name: json["name"],
description: json["description"],
additionalInfo: json["additionalInfo"],
brand: json["brand"],
basePrice: json["basePrice"],
discountPrice: json["discountPrice"],
stock: json["stock"],
quantity: json["quantity"],
unit: json["unit"],
slug: json["slug"],
averageRating: json["averageRating"],
isInStock: json["isInStock"],
isActive: json["isActive"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
storeId: json["storeId"],
categoryId: json["categoryId"],
productTypeId: json["productTypeId"],
timeSlotId: json["timeSlotId"],
productImages: List<ProductImage>.from(
json["productImages"].map((x) => ProductImage.fromJson(x))),
category: Category.fromJson(json["category"]),
productTags: List<ProductTag>.from(
json["productTags"].map((x) => ProductTag.fromJson(x))),
zones: List<dynamic>.from(json["zones"].map((x) => x)),
productReview: List<dynamic>.from(json["ProductReview"].map((x) => x)),
);
// Map<dynamic, dynamic> toJson() => {
// "id": id,
// "name": name,
// "description": description,
// "additionalInfo": additionalInfo,
// "brand": brand,
// "basePrice": basePrice,
// "discountPrice": discountPrice,
// "stock": stock,
// "quantity": quantity,
// "unit": unit,
// "slug": slug,
// "averageRating": averageRating,
// "isInStock": isInStock,
// "isActive": isActive,
// "createdAt": createdAt.toIso8601dynamic(),
// "updatedAt": updatedAt.toIso8601dynamic(),
// "storeId": storeId,
// "categoryId": categoryId,
// "productTypeId": productTypeId,
// "timeSlotId": timeSlotId,
// "productImages": List<dynamic>.from(productImages.map((x) => x.toJson())),
// "category": category.toJson(),
// "productTags": List<dynamic>.from(productTags.map((x) => x.toJson())),
// "zones": List<dynamic>.from(zones.map((x) => x)),
// "ProductReview": List<dynamic>.from(productReview.map((x) => x)),
// };
// }
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"description": description,
"additionalInfo": additionalInfo,
"brand": brand,
"basePrice": basePrice,
"discountPrice": discountPrice,
"stock": stock,
"quantity": quantity,
"unit": unit,
"slug": slug,
"averageRating": averageRating,
"isInStock": isInStock,
"isActive": isActive,
"createdAt": createdAt!.toIso8601String(),
"updatedAt": updatedAt!.toIso8601String(),
"storeId": storeId,
"categoryId": categoryId,
"productTypeId": productTypeId,
"timeSlotId": timeSlotId,
"productImages":
List<dynamic>.from(productImages!.map((x) => x.toJson())),
"category": category!.toJson(),
"productTags": List<dynamic>.from(productTags!.map((x) => x.toJson())),
"zones": List<dynamic>.from(zones!.map((x) => x)),
"ProductReview": List<dynamic>.from(productReview!.map((x) => x)),
};
}
class Category {
dynamic id;
dynamic name;
dynamic description;
dynamic image;
dynamic slug;
int? level;
bool? isActive;
DateTime? createdAt;
DateTime? updatedAt;
dynamic parentCategoryId;
dynamic path;
String? id;
String? name;
String? description;
String? image;
String? slug;
int? level;
bool? isActive;
DateTime? createdAt;
DateTime? updatedAt;
String? parentCategoryId;
String? path;
Category({
this.id,
this.name,
this.description,
this.image,
this.slug,
this.level,
this.isActive,
this.createdAt,
this.updatedAt,
this.parentCategoryId,
this.path,
});
Category({
this.id,
this.name,
this.description,
this.image,
this.slug,
this.level,
this.isActive,
this.createdAt,
this.updatedAt,
this.parentCategoryId,
this.path,
});
factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
factory Category.fromJson(Map<String, dynamic> json) => Category(
id: json["id"],
name: json["name"],
description: json["description"],
@@ -499,9 +247,9 @@ class Category {
updatedAt: DateTime.parse(json["updatedAt"]),
parentCategoryId: json["parentCategoryId"],
path: json["path"],
);
);
Map<dynamic, dynamic> toJson() => {
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"description": description,
@@ -509,38 +257,137 @@ class Category {
"slug": slug,
"level": level,
"isActive": isActive,
"createdAt": createdAt,
"updatedAt": updatedAt,
"createdAt": createdAt!.toIso8601String(),
"updatedAt": updatedAt!.toIso8601String(),
"parentCategoryId": parentCategoryId,
"path": path,
};
};
}
class ProductImage {
dynamic id;
dynamic url;
bool? isDefault;
dynamic productId;
String? id;
String? url;
bool? isDefault;
String? productId;
ProductImage({
this.id,
this.url,
this.isDefault,
this.productId,
});
ProductImage({
this.id,
this.url,
this.isDefault,
this.productId,
});
factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
factory ProductImage.fromJson(Map<String, dynamic> json) => ProductImage(
id: json["id"],
url: json["url"],
isDefault: json["isDefault"],
productId: json["productId"],
);
);
Map<dynamic, dynamic> toJson() => {
Map<String, dynamic> toJson() => {
"id": id,
"url": url,
"isDefault": isDefault,
"productId": productId,
};
};
}
class ProductTag {
String? id;
String? name;
String? description;
bool? isActive;
DateTime? createdAt;
DateTime? updatedAt;
ProductTag({
this.id,
this.name,
this.description,
this.isActive,
this.createdAt,
this.updatedAt,
});
factory ProductTag.fromJson(Map<String, dynamic> json) => ProductTag(
id: json["id"],
name: json["name"],
description: json["description"],
isActive: json["isActive"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
"description": description,
"isActive": isActive,
"createdAt": createdAt!.toIso8601String(),
"updatedAt": updatedAt!.toIso8601String(),
};
}
class Store {
String? id;
String? storeName;
String? storeDescription;
String? officialPhoneNumber;
String? storeAddress;
String? gstNumber;
String? gumastaNumber;
String? storePicture;
DateTime? createdAt;
DateTime? updatedAt;
String? vendorId;
bool? isActive;
dynamic? couponId;
Store({
this.id,
this.storeName,
this.storeDescription,
this.officialPhoneNumber,
this.storeAddress,
this.gstNumber,
this.gumastaNumber,
this.storePicture,
this.createdAt,
this.updatedAt,
this.vendorId,
this.isActive,
this.couponId,
});
factory Store.fromJson(Map<String, dynamic> json) => Store(
id: json["id"],
storeName: json["storeName"],
storeDescription: json["storeDescription"],
officialPhoneNumber: json["officialPhoneNumber"],
storeAddress: json["storeAddress"],
gstNumber: json["gstNumber"],
gumastaNumber: json["gumastaNumber"],
storePicture: json["storePicture"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
vendorId: json["vendorId"],
isActive: json["isActive"],
couponId: json["couponId"],
);
Map<String, dynamic> toJson() => {
"id": id,
"storeName": storeName,
"storeDescription": storeDescription,
"officialPhoneNumber": officialPhoneNumber,
"storeAddress": storeAddress,
"gstNumber": gstNumber,
"gumastaNumber": gumastaNumber,
"storePicture": storePicture,
"createdAt": createdAt!.toIso8601String(),
"updatedAt": updatedAt!.toIso8601String(),
"vendorId": vendorId,
"isActive": isActive,
"couponId": couponId,
};
}

View File

@@ -0,0 +1,34 @@
// To parse this JSON data, do
//
// final loginResponse = loginResponseFromJson(jsonString);
import 'dart:convert';
LoginResponse loginResponseFromJson(String str) =>
LoginResponse.fromJson(json.decode(str));
String loginResponseToJson(LoginResponse data) => json.encode(data.toJson());
class LoginResponse {
String? accessToken;
String? refreshToken;
String? message;
LoginResponse({
this.accessToken,
this.refreshToken,
this.message,
});
factory LoginResponse.fromJson(Map<String, dynamic> json) => LoginResponse(
accessToken: json["access_token"],
refreshToken: json["refresh_token"],
message: json["message"],
);
Map<String, dynamic> toJson() => {
"access_token": accessToken,
"refresh_token": refreshToken,
"message": message,
};
}

View File

@@ -0,0 +1,406 @@
// To parse this JSON data, do
//
// final productDetails = productDetailsFromJson(jsondynamic);
import 'dart:convert';
import 'dart:ffi';
ProductDetailsData productDetailsdataFromJson(dynamic str) =>
ProductDetailsData.fromJson(json.decode(str));
dynamic productDetailsToJson(ProductDetailsData data) => json.encode(data.toJson());
class ProductDetailsData {
Data? data;
ProductDetailsData({
this.data,
});
factory ProductDetailsData.fromJson(Map<dynamic, dynamic> json) => ProductDetailsData(
data: Data.fromJson(json["data"]),
);
Map<dynamic, dynamic> toJson() => {
"data": data!.toJson(),
};
}
class Data {
dynamic id;
dynamic name;
dynamic description;
dynamic additionalInfo;
dynamic brand;
dynamic basePrice;
dynamic discountPrice;
dynamic? stock;
dynamic? quantity;
dynamic unit;
dynamic slug;
dynamic averageRating;
bool? isInStock;
bool? isActive;
DateTime? createdAt;
DateTime? updatedAt;
dynamic storeId;
dynamic categoryId;
dynamic productTypeId;
dynamic timeSlotId;
Store? store;
Category? category;
dynamic? productType;
dynamic timeSlot;
List<ProductImage>? productImages;
List<dynamic>? productTags;
List<dynamic>? zones;
List<dynamic>? productReview;
List<dynamic>? questions;
List<CartItem>? cartItems;
List<WishlistItem>? wishlistItem;
List<dynamic>? applicableCoupons;
bool? isInWishlist;
Data({
this.id,
this.name,
this.description,
this.additionalInfo,
this.brand,
this.basePrice,
this.discountPrice,
this.stock,
this.quantity,
this.unit,
this.slug,
this.averageRating,
this.isInStock,
this.isActive,
this.createdAt,
this.updatedAt,
this.storeId,
this.categoryId,
this.productTypeId,
this.timeSlotId,
this.store,
this.category,
this.productType,
this.timeSlot,
this.productImages,
this.productTags,
this.zones,
this.productReview,
this.questions,
this.cartItems,
this.wishlistItem,
this.applicableCoupons,
this.isInWishlist,
});
factory Data.fromJson(Map<dynamic, dynamic> json) => Data(
id: json["id"],
name: json["name"],
description: json["description"],
additionalInfo: json["additionalInfo"],
brand: json["brand"],
basePrice: json["basePrice"],
discountPrice: json["discountPrice"],
stock: json["stock"],
quantity: json["quantity"],
unit: json["unit"],
slug: json["slug"],
averageRating: json["averageRating"],
isInStock: json["isInStock"],
isActive: json["isActive"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
storeId: json["storeId"],
categoryId: json["categoryId"],
productTypeId: json["productTypeId"],
timeSlotId: json["timeSlotId"],
store: Store.fromJson(json["store"]),
category: Category.fromJson(json["category"]),
productType: json["productType"],
timeSlot: json["timeSlot"],
productImages: List<ProductImage>.from(
json["productImages"].map((x) => ProductImage.fromJson(x))),
productTags: List<dynamic>.from(json["productTags"].map((x) => x)),
zones: List<dynamic>.from(json["zones"].map((x) => x)),
productReview: List<dynamic>.from(json["ProductReview"].map((x) => x)),
questions: List<dynamic>.from(json["questions"].map((x) => x)),
cartItems: List<CartItem>.from(
json["cartItems"].map((x) => CartItem.fromJson(x))),
wishlistItem: List<WishlistItem>.from(
json["WishlistItem"].map((x) => WishlistItem.fromJson(x))),
applicableCoupons:
List<dynamic>.from(json["applicableCoupons"].map((x) => x)),
isInWishlist: json["isInWishlist"],
);
Map<dynamic, dynamic> toJson() => {
"id": id,
"name": name,
"description": description,
"additionalInfo": additionalInfo,
"brand": brand,
"basePrice": basePrice,
"discountPrice": discountPrice,
"stock": stock,
"quantity": quantity,
"unit": unit,
"slug": slug,
"averageRating": averageRating,
"isInStock": isInStock,
"isActive": isActive,
"createdAt": createdAt,
"updatedAt": updatedAt,
"storeId": storeId,
"categoryId": categoryId,
"productTypeId": productTypeId,
"timeSlotId": timeSlotId,
"store": store!.toJson(),
"category": category!.toJson(),
"productType": productType,
"timeSlot": timeSlot,
"productImages":
List<dynamic>.from(productImages!.map((x) => x.toJson())),
"productTags": List<dynamic>.from(productTags!.map((x) => x)),
"zones": List<dynamic>.from(zones!.map((x) => x)),
"ProductReview": List<dynamic>.from(productReview!.map((x) => x)),
"questions": List<dynamic>.from(questions!.map((x) => x)),
"cartItems": List<dynamic>.from(cartItems!.map((x) => x.toJson())),
"WishlistItem":
List<dynamic>.from(wishlistItem!.map((x) => x.toJson())),
"applicableCoupons":
List<dynamic>.from(applicableCoupons!.map((x) => x)),
"isInWishlist": isInWishlist,
};
}
class CartItem {
dynamic id;
dynamic quantity;
dynamic priceSnapshot;
dynamic cartId;
dynamic productId;
dynamic storeId;
DateTime? createdAt;
DateTime? updatedAt;
CartItem({
this.id,
this.quantity,
this.priceSnapshot,
this.cartId,
this.productId,
this.storeId,
this.createdAt,
this.updatedAt,
});
factory CartItem.fromJson(Map<dynamic, dynamic> json) => CartItem(
id: json["id"],
quantity: json["quantity"],
priceSnapshot: json["priceSnapshot"],
cartId: json["cartId"],
productId: json["productId"],
storeId: json["storeId"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
);
Map<dynamic, dynamic> toJson() => {
"id": id,
"quantity": quantity,
"priceSnapshot": priceSnapshot,
"cartId": cartId,
"productId": productId,
"storeId": storeId,
"createdAt": createdAt,
"updatedAt": updatedAt,
};
}
class Category {
dynamic id;
dynamic name;
dynamic description;
dynamic image;
dynamic slug;
dynamic level;
bool? isActive;
DateTime? createdAt;
DateTime? updatedAt;
dynamic parentCategoryId;
dynamic path;
Category({
this.id,
this.name,
this.description,
this.image,
this.slug,
this.level,
this.isActive,
this.createdAt,
this.updatedAt,
this.parentCategoryId,
this.path,
});
factory Category.fromJson(Map<dynamic, dynamic> json) => Category(
id: json["id"],
name: json["name"],
description: json["description"],
image: json["image"],
slug: json["slug"],
level: json["level"],
isActive: json["isActive"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
parentCategoryId: json["parentCategoryId"],
path: json["path"],
);
Map<dynamic, dynamic> toJson() => {
"id": id,
"name": name,
"description": description,
"image": image,
"slug": slug,
"level": level,
"isActive": isActive,
"createdAt": createdAt,
"updatedAt": updatedAt,
"parentCategoryId": parentCategoryId,
"path": path,
};
}
class ProductImage {
dynamic id;
dynamic url;
bool? isDefault;
dynamic productId;
ProductImage({
this.id,
this.url,
this.isDefault,
this.productId,
});
factory ProductImage.fromJson(Map<dynamic, dynamic> json) => ProductImage(
id: json["id"],
url: json["url"],
isDefault: json["isDefault"],
productId: json["productId"],
);
Map<dynamic, dynamic> toJson() => {
"id": id,
"url": url,
"isDefault": isDefault,
"productId": productId,
};
}
class Store {
dynamic id;
dynamic storeName;
dynamic storeDescription;
dynamic officialPhoneNumber;
dynamic storeAddress;
dynamic gstNumber;
dynamic gumastaNumber;
dynamic storePicture;
DateTime? createdAt;
DateTime? updatedAt;
dynamic vendorId;
bool? isActive;
dynamic couponId;
Store({
this.id,
this.storeName,
this.storeDescription,
this.officialPhoneNumber,
this.storeAddress,
this.gstNumber,
this.gumastaNumber,
this.storePicture,
this.createdAt,
this.updatedAt,
this.vendorId,
this.isActive,
this.couponId,
});
factory Store.fromJson(Map<dynamic, dynamic> json) => Store(
id: json["id"],
storeName: json["storeName"],
storeDescription: json["storeDescription"],
officialPhoneNumber: json["officialPhoneNumber"],
storeAddress: json["storeAddress"],
gstNumber: json["gstNumber"],
gumastaNumber: json["gumastaNumber"],
storePicture: json["storePicture"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
vendorId: json["vendorId"],
isActive: json["isActive"],
couponId: json["couponId"],
);
Map<dynamic, dynamic> toJson() => {
"id": id,
"storeName": storeName,
"storeDescription": storeDescription,
"officialPhoneNumber": officialPhoneNumber,
"storeAddress": storeAddress,
"gstNumber": gstNumber,
"gumastaNumber": gumastaNumber,
"storePicture": storePicture,
"createdAt": createdAt,
"updatedAt": updatedAt,
"vendorId": vendorId,
"isActive": isActive,
"couponId": couponId,
};
}
class WishlistItem {
dynamic id;
dynamic wishlistId;
dynamic productId;
dynamic storeId;
DateTime? createdAt;
DateTime? updatedAt;
WishlistItem({
this.id,
this.wishlistId,
this.productId,
this.storeId,
this.createdAt,
this.updatedAt,
});
factory WishlistItem.fromJson(Map<dynamic, dynamic> json) => WishlistItem(
id: json["id"],
wishlistId: json["wishlistId"],
productId: json["productId"],
storeId: json["storeId"],
createdAt: DateTime.parse(json["createdAt"]),
updatedAt: DateTime.parse(json["updatedAt"]),
);
Map<dynamic, dynamic> toJson() => {
"id": id,
"wishlistId": wishlistId,
"productId": productId,
"storeId": storeId,
"createdAt": createdAt,
"updatedAt": updatedAt,
};
}