// // 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 json) => // ProductDetailsData( // data: Data.fromJson(json["data"]), // ); // Map 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? productImages; // List? productTags; // List? zones; // List? productReview; // List? questions; // List? cartItems; // List? wishlistItem; // List? 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 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.from( // json["productImages"].map((x) => ProductImage.fromJson(x))), // productTags: List.from(json["productTags"].map((x) => x)), // zones: List.from(json["zones"].map((x) => x)), // productReview: List.from( // json["ProductReview"].map((x) => ProductReview.fromJson(x))), // questions: List.from(json["questions"].map((x) => x)), // cartItems: List.from( // json["cartItems"].map((x) => CartItem.fromJson(x))), // wishlistItem: List.from( // json["WishlistItem"].map((x) => WishlistItem.fromJson(x))), // applicableCoupons: // List.from(json["applicableCoupons"].map((x) => x)), // isInWishlist: json["isInWishlist"], // ); // Map 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.from(productImages!.map((x) => x.toJson())), // "productTags": List.from(productTags!.map((x) => x)), // "zones": List.from(zones!.map((x) => x)), // "ProductReview": List.from(productReview!.map((x) => x)), // "questions": List.from(questions!.map((x) => x)), // "cartItems": List.from(cartItems!.map((x) => x.toJson())), // "WishlistItem": // List.from(wishlistItem!.map((x) => x.toJson())), // "applicableCoupons": // List.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 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 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 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 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 json) => ProductImage( // id: json["id"], // url: json["url"], // isDefault: json["isDefault"], // productId: json["productId"], // ); // Map 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 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 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 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 toJson() => { // "id": id, // "wishlistId": wishlistId, // "productId": productId, // "storeId": storeId, // "createdAt": createdAt, // "updatedAt": updatedAt, // }; // } // class ProductReview { // dynamic id; // dynamic userId; // dynamic productId; // dynamic rating; // dynamic title; // dynamic description; // int? likes; // int? dislikes; // int? helpfulCount; // bool? verifiedPurchase; // dynamic status; // DateTime? createdAt; // DateTime? updatedAt; // User? user; // List? productReviewImage; // ProductReview({ // this.id, // this.userId, // this.productId, // this.rating, // this.title, // this.description, // this.likes, // this.dislikes, // this.helpfulCount, // this.verifiedPurchase, // this.status, // this.createdAt, // this.updatedAt, // this.user, // this.productReviewImage, // }); // factory ProductReview.fromJson(Map json) => ProductReview( // id: json["id"], // userId: json["userId"], // productId: json["productId"], // rating: json["rating"], // title: json["title"], // description: json["description"], // likes: json["likes"], // dislikes: json["dislikes"], // helpfulCount: json["helpfulCount"], // verifiedPurchase: json["verifiedPurchase"], // status: json["status"], // createdAt: DateTime.parse(json["createdAt"]), // updatedAt: DateTime.parse(json["updatedAt"]), // user: User.fromJson(json["user"]), // productReviewImage: List.from( // json["ProductReviewImage"] // .map((x) => ProductReviewImage.fromJson(x))), // ); // Map toJson() => { // "id": id, // "userId": userId, // "productId": productId, // "rating": rating, // "title": title, // "description": description, // "likes": likes, // "dislikes": dislikes, // "helpfulCount": helpfulCount, // "verifiedPurchase": verifiedPurchase, // "status": status, // "createdAt": createdAt, // "updatedAt": updatedAt, // "user": user!.toJson(), // "ProductReviewImage": // List.from(productReviewImage!.map((x) => x.toJson())), // }; // } // class ProductReviewImage { // dynamic id; // dynamic reviewId; // dynamic imageUrl; // bool? isDefault; // DateTime? createdAt; // ProductReviewImage({ // this.id, // this.reviewId, // this.imageUrl, // this.isDefault, // this.createdAt, // }); // factory ProductReviewImage.fromJson(Map json) => // ProductReviewImage( // id: json["id"], // reviewId: json["reviewId"], // imageUrl: json["imageUrl"], // isDefault: json["isDefault"], // createdAt: DateTime.parse(json["createdAt"]), // ); // Map toJson() => { // "id": id, // "reviewId": reviewId, // "imageUrl": imageUrl, // "isDefault": isDefault, // "createdAt": createdAt, // }; // } // class User { // dynamic id; // dynamic email; // dynamic firstName; // dynamic lastName; // dynamic name; // dynamic img; // dynamic authType; // dynamic role; // dynamic phone; // dynamic password; // bool? isActive; // bool? isPhoneVerified; // dynamic vendorType; // dynamic businessId; // bool? isVendorAccountCreated; // bool? isVendorAccountActive; // bool? vendorTermsAccepted; // DateTime? createdAt; // DateTime? updatedAt; // dynamic rtHash; // dynamic resetToken; // dynamic resetTokenExpiresAt; // User({ // this.id, // this.email, // this.firstName, // this.lastName, // this.name, // this.img, // this.authType, // this.role, // this.phone, // this.password, // this.isActive, // this.isPhoneVerified, // this.vendorType, // this.businessId, // this.isVendorAccountCreated, // this.isVendorAccountActive, // this.vendorTermsAccepted, // this.createdAt, // this.updatedAt, // this.rtHash, // this.resetToken, // this.resetTokenExpiresAt, // }); // factory User.fromJson(Map json) => User( // id: json["id"], // email: json["email"], // firstName: json["firstName"], // lastName: json["lastName"], // name: json["name"], // img: json["img"], // authType: json["authType"], // role: json["role"], // phone: json["phone"], // password: json["password"], // isActive: json["isActive"], // isPhoneVerified: json["isPhoneVerified"], // vendorType: json["vendorType"], // businessId: json["businessId"], // isVendorAccountCreated: json["isVendorAccountCreated"], // isVendorAccountActive: json["isVendorAccountActive"], // vendorTermsAccepted: json["vendorTermsAccepted"], // createdAt: DateTime.parse(json["createdAt"]), // updatedAt: DateTime.parse(json["updatedAt"]), // rtHash: json["rtHash"], // resetToken: json["resetToken"], // resetTokenExpiresAt: json["resetTokenExpiresAt"], // ); // Map toJson() => { // "id": id, // "email": email, // "firstName": firstName, // "lastName": lastName, // "name": name, // "img": img, // "authType": authType, // "role": role, // "phone": phone, // "password": password, // "isActive": isActive, // "isPhoneVerified": isPhoneVerified, // "vendorType": vendorType, // "businessId": businessId, // "isVendorAccountCreated": isVendorAccountCreated, // "isVendorAccountActive": isVendorAccountActive, // "vendorTermsAccepted": vendorTermsAccepted, // "createdAt": createdAt, // "updatedAt": updatedAt, // "rtHash": rtHash, // "resetToken": resetToken, // "resetTokenExpiresAt": resetTokenExpiresAt, // }; // } // To parse this JSON data, do // // final productDetailsData = productDetailsDataFromJson(jsondynamic); import 'dart:convert'; ProductDetailsData productDetailsDataFromJson(dynamic str) => ProductDetailsData.fromJson(json.decode(str)); dynamic productDetailsDataToJson(ProductDetailsData data) => json.encode(data.toJson()); class ProductDetailsData { Data? data; ProductDetailsData({ this.data, }); factory ProductDetailsData.fromJson(Map json) => ProductDetailsData( data: Data.fromJson(json["data"]), ); Map 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; dynamic disclaimer; dynamic customerCareDetails; dynamic manufacturerName; dynamic manufacturerAddress; dynamic countryOfOrigin; DateTime? expiryDate; dynamic returnsAllowedDays; dynamic exchangeAllowedDays; DateTime? createdAt; DateTime? updatedAt; dynamic storeId; dynamic categoryId; dynamic productTypeId; dynamic timeSlotId; Store? store; Category? category; dynamic productType; dynamic timeSlot; List? productImages; List? productTags; List? zones; List? productHighlight; List? productReview; List? questions; List? cartItems; List? wishlistItem; List? 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.disclaimer, this.customerCareDetails, this.manufacturerName, this.manufacturerAddress, this.countryOfOrigin, this.expiryDate, this.returnsAllowedDays, this.exchangeAllowedDays, 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.productHighlight, this.productReview, this.questions, this.cartItems, this.wishlistItem, this.applicableCoupons, this.isInWishlist, }); factory Data.fromJson(Map 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"], disclaimer: json["disclaimer"], customerCareDetails: json["customerCareDetails"], manufacturerName: json["manufacturerName"], manufacturerAddress: json["manufacturerAddress"], countryOfOrigin: json["countryOfOrigin"], expiryDate: DateTime.parse(json["expiryDate"]), returnsAllowedDays: json["returnsAllowedDays"], exchangeAllowedDays: json["exchangeAllowedDays"], 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.from( json["productImages"].map((x) => ProductImage.fromJson(x))), productTags: List.from( json["productTags"].map((x) => ProductTag.fromJson(x))), zones: List.from(json["zones"].map((x) => x)), productHighlight: List.from( json["ProductHighlight"].map((x) => ProductHighlight.fromJson(x))), productReview: List.from( json["ProductReview"].map((x) => ProductReview.fromJson(x))), questions: List.from(json["questions"].map((x) => x)), cartItems: List.from(json["cartItems"].map((x) => x)), wishlistItem: List.from( json["WishlistItem"].map((x) => WishlistItem.fromJson(x))), applicableCoupons: List.from(json["applicableCoupons"].map((x) => x)), isInWishlist: json["isInWishlist"], ); Map 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, "disclaimer": disclaimer, "customerCareDetails": customerCareDetails, "manufacturerName": manufacturerName, "manufacturerAddress": manufacturerAddress, "countryOfOrigin": countryOfOrigin, "expiryDate": expiryDate, "returnsAllowedDays": returnsAllowedDays, "exchangeAllowedDays": exchangeAllowedDays, "createdAt": createdAt, "updatedAt": updatedAt, "storeId": storeId, "categoryId": categoryId, "productTypeId": productTypeId, "timeSlotId": timeSlotId, "store": store!.toJson(), "category": category!.toJson(), "productType": productType, "timeSlot": timeSlot, "productImages": List.from(productImages!.map((x) => x.toJson())), "productTags": List.from(productTags!.map((x) => x.toJson())), "zones": List.from(zones!.map((x) => x)), "ProductHighlight": List.from(productHighlight!.map((x) => x.toJson())), "ProductReview": List.from(productReview!.map((x) => x)), "questions": List.from(questions!.map((x) => x)), "cartItems": List.from(cartItems!.map((x) => x)), "WishlistItem": List.from(wishlistItem!.map((x) => x.toJson())), "applicableCoupons": List.from(applicableCoupons!.map((x) => x)), "isInWishlist": isInWishlist, }; } class Category { dynamic id; dynamic name; dynamic description; dynamic image; dynamic slug; int? level; bool? isActive; DateTime? createdAt; DateTime? updatedAt; dynamic commissionPercentage; dynamic parentCategoryId; dynamic path; Category({ this.id, this.name, this.description, this.image, this.slug, this.level, this.isActive, this.createdAt, this.updatedAt, this.commissionPercentage, this.parentCategoryId, this.path, }); factory Category.fromJson(Map 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"]), commissionPercentage: json["commissionPercentage"], parentCategoryId: json["parentCategoryId"], path: json["path"], ); Map toJson() => { "id": id, "name": name, "description": description, "image": image, "slug": slug, "level": level, "isActive": isActive, "createdAt": createdAt, "updatedAt": updatedAt, "commissionPercentage": commissionPercentage, "parentCategoryId": parentCategoryId, "path": path, }; } class ProductHighlight { dynamic id; dynamic key; dynamic value; dynamic productId; DateTime? createdAt; DateTime? updatedAt; ProductHighlight({ this.id, this.key, this.value, this.productId, this.createdAt, this.updatedAt, }); factory ProductHighlight.fromJson(Map json) => ProductHighlight( id: json["id"], key: json["key"], value: json["value"], productId: json["productId"], createdAt: DateTime.parse(json["createdAt"]), updatedAt: DateTime.parse(json["updatedAt"]), ); Map toJson() => { "id": id, "key": key, "value": value, "productId": productId, "createdAt": createdAt, "updatedAt": updatedAt, }; } class ProductImage { dynamic id; dynamic url; bool? isDefault; dynamic productId; ProductImage({ this.id, this.url, this.isDefault, this.productId, }); factory ProductImage.fromJson(Map json) => ProductImage( id: json["id"], url: json["url"], isDefault: json["isDefault"], productId: json["productId"], ); Map toJson() => { "id": id, "url": url, "isDefault": isDefault, "productId": productId, }; } class ProductTag { dynamic id; dynamic name; dynamic description; bool? isActive; DateTime? createdAt; DateTime? updatedAt; ProductTag({ this.id, this.name, this.description, this.isActive, this.createdAt, this.updatedAt, }); factory ProductTag.fromJson(Map 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 toJson() => { "id": id, "name": name, "description": description, "isActive": isActive, "createdAt": createdAt, "updatedAt": updatedAt, }; } class Store { dynamic id; dynamic storeName; dynamic storePicture; dynamic storeAddress; dynamic officialPhoneNumber; dynamic sellerLicenseNumber; Vendor? vendor; Store({ this.id, this.storeName, this.storePicture, this.storeAddress, this.officialPhoneNumber, this.sellerLicenseNumber, this.vendor, }); factory Store.fromJson(Map json) => Store( id: json["id"], storeName: json["storeName"], storePicture: json["storePicture"], storeAddress: json["storeAddress"], officialPhoneNumber: json["officialPhoneNumber"], sellerLicenseNumber: json["sellerLicenseNumber"], vendor: Vendor.fromJson(json["vendor"]), ); Map toJson() => { "id": id, "storeName": storeName, "storePicture": storePicture, "storeAddress": storeAddress, "officialPhoneNumber": officialPhoneNumber, "sellerLicenseNumber": sellerLicenseNumber, "vendor": vendor!.toJson(), }; } class Vendor { dynamic id; dynamic email; dynamic firstName; dynamic lastName; dynamic phone; Vendor({ this.id, this.email, this.firstName, this.lastName, this.phone, }); factory Vendor.fromJson(Map json) => Vendor( id: json["id"], email: json["email"], firstName: json["firstName"], lastName: json["lastName"], phone: json["phone"], ); Map toJson() => { "id": id, "email": email, "firstName": firstName, "lastName": lastName, "phone": phone, }; } 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 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 toJson() => { "id": id, "wishlistId": wishlistId, "productId": productId, "storeId": storeId, "createdAt": createdAt, "updatedAt": updatedAt, }; } class ProductReview { dynamic id; dynamic userId; dynamic productId; dynamic rating; dynamic title; dynamic description; int? likes; int? dislikes; int? helpfulCount; bool? verifiedPurchase; dynamic status; DateTime? createdAt; DateTime? updatedAt; User? user; List? productReviewImage; ProductReview({ this.id, this.userId, this.productId, this.rating, this.title, this.description, this.likes, this.dislikes, this.helpfulCount, this.verifiedPurchase, this.status, this.createdAt, this.updatedAt, this.user, this.productReviewImage, }); factory ProductReview.fromJson(Map json) => ProductReview( id: json["id"], userId: json["userId"], productId: json["productId"], rating: json["rating"], title: json["title"], description: json["description"], likes: json["likes"], dislikes: json["dislikes"], helpfulCount: json["helpfulCount"], verifiedPurchase: json["verifiedPurchase"], status: json["status"], createdAt: DateTime.parse(json["createdAt"]), updatedAt: DateTime.parse(json["updatedAt"]), user: User.fromJson(json["user"]), productReviewImage: List.from( json["ProductReviewImage"] .map((x) => ProductReviewImage.fromJson(x))), ); Map toJson() => { "id": id, "userId": userId, "productId": productId, "rating": rating, "title": title, "description": description, "likes": likes, "dislikes": dislikes, "helpfulCount": helpfulCount, "verifiedPurchase": verifiedPurchase, "status": status, "createdAt": createdAt, "updatedAt": updatedAt, "user": user!.toJson(), "ProductReviewImage": List.from(productReviewImage!.map((x) => x.toJson())), }; } class ProductReviewImage { dynamic id; dynamic reviewId; dynamic imageUrl; bool? isDefault; DateTime? createdAt; ProductReviewImage({ this.id, this.reviewId, this.imageUrl, this.isDefault, this.createdAt, }); factory ProductReviewImage.fromJson(Map json) => ProductReviewImage( id: json["id"], reviewId: json["reviewId"], imageUrl: json["imageUrl"], isDefault: json["isDefault"], createdAt: DateTime.parse(json["createdAt"]), ); Map toJson() => { "id": id, "reviewId": reviewId, "imageUrl": imageUrl, "isDefault": isDefault, "createdAt": createdAt, }; } class User { dynamic id; dynamic email; dynamic firstName; dynamic lastName; dynamic name; dynamic img; dynamic authType; dynamic role; dynamic phone; dynamic password; bool? isActive; bool? isPhoneVerified; dynamic vendorType; dynamic businessId; bool? isVendorAccountCreated; bool? isVendorAccountActive; bool? vendorTermsAccepted; DateTime? createdAt; DateTime? updatedAt; dynamic rtHash; dynamic resetToken; dynamic resetTokenExpiresAt; User({ this.id, this.email, this.firstName, this.lastName, this.name, this.img, this.authType, this.role, this.phone, this.password, this.isActive, this.isPhoneVerified, this.vendorType, this.businessId, this.isVendorAccountCreated, this.isVendorAccountActive, this.vendorTermsAccepted, this.createdAt, this.updatedAt, this.rtHash, this.resetToken, this.resetTokenExpiresAt, }); factory User.fromJson(Map json) => User( id: json["id"], email: json["email"], firstName: json["firstName"], lastName: json["lastName"], name: json["name"], img: json["img"], authType: json["authType"], role: json["role"], phone: json["phone"], password: json["password"], isActive: json["isActive"], isPhoneVerified: json["isPhoneVerified"], vendorType: json["vendorType"], businessId: json["businessId"], isVendorAccountCreated: json["isVendorAccountCreated"], isVendorAccountActive: json["isVendorAccountActive"], vendorTermsAccepted: json["vendorTermsAccepted"], createdAt: DateTime.parse(json["createdAt"]), updatedAt: DateTime.parse(json["updatedAt"]), rtHash: json["rtHash"], resetToken: json["resetToken"], resetTokenExpiresAt: json["resetTokenExpiresAt"], ); Map toJson() => { "id": id, "email": email, "firstName": firstName, "lastName": lastName, "name": name, "img": img, "authType": authType, "role": role, "phone": phone, "password": password, "isActive": isActive, "isPhoneVerified": isPhoneVerified, "vendorType": vendorType, "businessId": businessId, "isVendorAccountCreated": isVendorAccountCreated, "isVendorAccountActive": isVendorAccountActive, "vendorTermsAccepted": vendorTermsAccepted, "createdAt": createdAt, "updatedAt": updatedAt, "rtHash": rtHash, "resetToken": resetToken, "resetTokenExpiresAt": resetTokenExpiresAt, }; }