// To parse this JSON data, do // // final shoppingCart = shoppingCartFromJson(jsonString); import 'dart:convert'; ShoppingCart shoppingCartFromJson(String str) => ShoppingCart.fromJson(json.decode(str)); String shoppingCartToJson(ShoppingCart data) => json.encode(data.toJson()); class ShoppingCart { ShoppingCart({ this.itemCount, this.quantityCount, this.subtotal, this.subtotalWithVat, this.subtotalVatAmount, this.subtotalVatRate, this.shoppingCarts, }); int? itemCount; int? quantityCount; double? subtotal; double? subtotalWithVat; double? subtotalVatAmount; int? subtotalVatRate; List? shoppingCarts; factory ShoppingCart.fromJson(Map json) => ShoppingCart( itemCount: json["item_count"], quantityCount: json["quantity_count"], subtotal: json["subtotal"].toDouble(), subtotalWithVat: json["subtotal_with_vat"].toDouble(), subtotalVatAmount: json["subtotal_vat_amount"].toDouble(), subtotalVatRate: json["subtotal_vat_rate"], shoppingCarts: List.from(json["shopping_carts"].map((x) => ShoppingCartElement.fromJson(x))), ); Map toJson() => { "item_count": itemCount, "quantity_count": quantityCount, "subtotal": subtotal, "subtotal_with_vat": subtotalWithVat, "subtotal_vat_amount": subtotalVatAmount, "subtotal_vat_rate": subtotalVatRate, "shopping_carts": List.from(shoppingCarts.map((x) => x.toJson())), }; } class ShoppingCartElement { ShoppingCartElement({ this.languageId, this.id, this.productAttributes, this.customerEnteredPrice, this.quantity, this.discountAmountInclTax, this.subtotal, this.subtotalWithVat, this.subtotalVatAmount, this.subtotalVatRate, this.currency, this.currencyn, this.rentalStartDateUtc, this.rentalEndDateUtc, this.createdOnUtc, this.updatedOnUtc, this.shoppingCartType, this.productId, this.product, this.customerId, this.customer, }); int? languageId; String ?id; List? productAttributes; int? customerEnteredPrice; int? quantity; dynamic discountAmountInclTax; String? subtotal; String? subtotalWithVat; String? subtotalVatAmount; String? subtotalVatRate; String? currency; String? currencyn; dynamic rentalStartDateUtc; dynamic rentalEndDateUtc; DateTime? createdOnUtc; DateTime? updatedOnUtc; String? shoppingCartType; int? productId; Product? product; int? customerId; Customer? customer; factory ShoppingCartElement.fromJson(Map json) => ShoppingCartElement( languageId: json["language_id"], id: json["id"], productAttributes: List.from(json["product_attributes"].map((x) => x)), customerEnteredPrice: json["customer_entered_price"], quantity: json["quantity"], discountAmountInclTax: json["discount_amount_incl_tax"], subtotal: json["subtotal"], subtotalWithVat: json["subtotal_with_vat"], subtotalVatAmount: json["subtotal_vat_amount"], subtotalVatRate: json["subtotal_vat_rate"], currency: json["currency"], currencyn: json["currencyn"], rentalStartDateUtc: json["rental_start_date_utc"], rentalEndDateUtc: json["rental_end_date_utc"], createdOnUtc: DateTime.parse(json["created_on_utc"]), updatedOnUtc: DateTime.parse(json["updated_on_utc"]), shoppingCartType: json["shopping_cart_type"], productId: json["product_id"], product: Product.fromJson(json["product"]), customerId: json["customer_id"], customer: Customer.fromJson(json["customer"]), ); Map toJson() => { "language_id": languageId, "id": id, "product_attributes": List.from(productAttributes!.map((x) => x)), "customer_entered_price": customerEnteredPrice, "quantity": quantity, "discount_amount_incl_tax": discountAmountInclTax, "subtotal": subtotal, "subtotal_with_vat": subtotalWithVat, "subtotal_vat_amount": subtotalVatAmount, "subtotal_vat_rate": subtotalVatRate, "currency": currency, "currencyn": currencyn, "rental_start_date_utc": rentalStartDateUtc, "rental_end_date_utc": rentalEndDateUtc, "created_on_utc": createdOnUtc!.toIso8601String(), "updated_on_utc": updatedOnUtc!.toIso8601String(), "shopping_cart_type": shoppingCartType, "product_id": productId, "product": product!.toJson(), "customer_id": customerId, "customer": customer!.toJson(), }; } class Customer { Customer({ this.billingAddress, this.shippingAddress, this.addresses, this.id, this.username, this.email, this.firstName, this.lastName, this.languageId, this.adminComment, this.isTaxExempt, this.hasShoppingCartItems, this.active, this.deleted, this.isSystemAccount, this.systemName, this.lastIpAddress, this.createdOnUtc, this.lastLoginDateUtc, this.lastActivityDateUtc, this.registeredInStoreId, this.roleIds, }); Address? billingAddress; Address? shippingAddress; List
? addresses; String? id; String? username; String? email; dynamic firstName; dynamic lastName; dynamic languageId; dynamic adminComment; bool? isTaxExempt; bool? hasShoppingCartItems; bool? active; bool? deleted; bool? isSystemAccount; dynamic systemName; String?lastIpAddress; DateTime? createdOnUtc; DateTime? lastLoginDateUtc; DateTime? lastActivityDateUtc; int? registeredInStoreId; List? roleIds; factory Customer.fromJson(Map json) => Customer( billingAddress: Address.fromJson(json["billing_address"]), shippingAddress: Address.fromJson(json["shipping_address"]), addresses: List
.from(json["addresses"].map((x) => Address.fromJson(x))), id: json["id"], username: json["username"], email: json["email"], firstName: json["first_name"], lastName: json["last_name"], languageId: json["language_id"], adminComment: json["admin_comment"], isTaxExempt: json["is_tax_exempt"], hasShoppingCartItems: json["has_shopping_cart_items"], active: json["active"], deleted: json["deleted"], isSystemAccount: json["is_system_account"], systemName: json["system_name"], lastIpAddress: json["last_ip_address"], createdOnUtc: DateTime.parse(json["created_on_utc"]), lastLoginDateUtc: DateTime.parse(json["last_login_date_utc"]), lastActivityDateUtc: DateTime.parse(json["last_activity_date_utc"]), registeredInStoreId: json["registered_in_store_id"], roleIds: List.from(json["role_ids"].map((x) => x)), ); Map toJson() => { "billing_address": billingAddress!.toJson(), "shipping_address": shippingAddress!.toJson(), "addresses": List.from(addresses!.map((x) => x.toJson())), "id": id, "username": username, "email": email, "first_name": firstName, "last_name": lastName, "language_id": languageId, "admin_comment": adminComment, "is_tax_exempt": isTaxExempt, "has_shopping_cart_items": hasShoppingCartItems, "active": active, "deleted": deleted, "is_system_account": isSystemAccount, "system_name": systemName, "last_ip_address": lastIpAddress, "created_on_utc": createdOnUtc!.toIso8601String(), "last_login_date_utc": lastLoginDateUtc!.toIso8601String(), "last_activity_date_utc": lastActivityDateUtc!.toIso8601String(), "registered_in_store_id": registeredInStoreId, "role_ids": List.from(roleIds!.map((x) => x)), }; } class Address { Address({ this.id, this.firstName, this.lastName, this.email, this.company, this.countryId, this.country, this.stateProvinceId, this.city, this.address1, this.address2, this.zipPostalCode, this.phoneNumber, this.faxNumber, this.customerAttributes, this.createdOnUtc, this.province, this.latLong, }); String? id; FirstName? firstName; LastName? lastName; Email? email; dynamic company; int? countryId; Country? country; dynamic stateProvinceId; City? city; String? address1; String? address2; String? zipPostalCode; String? phoneNumber; dynamic faxNumber; String? customerAttributes; DateTime? createdOnUtc; dynamic province; String? latLong; factory Address.fromJson(Map json) => Address( id: json["id"], firstName: firstNameValues.map[json["first_name"]], lastName: lastNameValues.map[json["last_name"]], email: emailValues.map[json["email"]], company: json["company"], countryId: json["country_id"], country: countryValues.map[json["country"]], stateProvinceId: json["state_province_id"], city: cityValues.map[json["city"]], address1: json["address1"], address2: json["address2"], zipPostalCode: json["zip_postal_code"], phoneNumber: json["phone_number"], faxNumber: json["fax_number"], customerAttributes: json["customer_attributes"], createdOnUtc: DateTime.parse(json["created_on_utc"]), province: json["province"], latLong: json["lat_long"], ); Map toJson() => { "id": id, "first_name": firstNameValues.reverse[firstName], "last_name": lastNameValues.reverse[lastName], "email": emailValues.reverse[email], "company": company, "country_id": countryId, "country": countryValues.reverse[country], "state_province_id": stateProvinceId, "city": cityValues.reverse[city], "address1": address1, "address2": address2, "zip_postal_code": zipPostalCode, "phone_number": phoneNumber, "fax_number": faxNumber, "customer_attributes": customerAttributes, "created_on_utc": createdOnUtc!.toIso8601String(), "province": province, "lat_long": latLong, }; } enum City { CALIFORNIA, RIYADH, AL_OYUN } final cityValues = EnumValues({ "Al Oyun": City.AL_OYUN, "California": City.CALIFORNIA, "Riyadh": City.RIYADH }); enum Country { UNITED_STATES, SAUDI_ARABIA } final countryValues = EnumValues({ "Saudi Arabia": Country.SAUDI_ARABIA, "United States": Country.UNITED_STATES }); enum Email { TAMER_FANASHEH_GMAIL_COM, TAMER_DASDASDAS_GMAIL_COM, TAMER_F_CLOUDSOLUTION_SA_COM } final emailValues = EnumValues({ "Tamer.dasdasdas@gmail.com": Email.TAMER_DASDASDAS_GMAIL_COM, "Tamer.fanasheh@gmail.com": Email.TAMER_FANASHEH_GMAIL_COM, "Tamer.F@cloudsolution-sa.com": Email.TAMER_F_CLOUDSOLUTION_SA_COM }); enum FirstName { TAMER, TAMER_FANASHEH } final firstNameValues = EnumValues({ "TAMER": FirstName.TAMER, "TAMER FANASHEH": FirstName.TAMER_FANASHEH }); enum LastName { FANASHEH, MUSA } final lastNameValues = EnumValues({ "FANASHEH": LastName.FANASHEH, "MUSA": LastName.MUSA }); class Product { Product({ this.id, this.visibleIndividually, this.name, this.namen, this.localizedNames, this.shortDescription, this.shortDescriptionn, this.fullDescription, this.fullDescriptionn, this.markasNew, this.showOnHomePage, this.metaKeywords, this.metaDescription, this.metaTitle, this.allowCustomerReviews, this.approvedRatingSum, this.notApprovedRatingSum, this.approvedTotalReviews, this.notApprovedTotalReviews, this.sku, this.isRx, this.prescriptionRequired, this.rxMessage, this.rxMessagen, this.manufacturerPartNumber, this.gtin, this.isGiftCard, this.requireOtherProducts, this.automaticallyAddRequiredProducts, this.isDownload, this.unlimitedDownloads, this.maxNumberOfDownloads, this.downloadExpirationDays, this.hasSampleDownload, this.hasUserAgreement, this.isRecurring, this.recurringCycleLength, this.recurringTotalCycles, this.isRental, this.rentalPriceLength, this.isShipEnabled, this.isFreeShipping, this.shipSeparately, this.additionalShippingCharge, this.isTaxExempt, this.isTelecommunicationsOrBroadcastingOrElectronicServices, this.useMultipleWarehouses, this.manageInventoryMethodId, this.stockQuantity, this.stockAvailability, this.stockAvailabilityn, this.displayStockAvailability, this.displayStockQuantity, this.minStockQuantity, this.notifyAdminForQuantityBelow, this.allowBackInStockSubscriptions, this.orderMinimumQuantity, this.orderMaximumQuantity, this.allowedQuantities, this.allowAddingOnlyExistingAttributeCombinations, this.disableBuyButton, this.disableWishlistButton, this.availableForPreOrder, this.preOrderAvailabilityStartDateTimeUtc, this.callForPrice, this.price, this.oldPrice, this.productCost, this.specialPrice, this.specialPriceStartDateTimeUtc, this.specialPriceEndDateTimeUtc, this.customerEntersPrice, this.minimumCustomerEnteredPrice, this.maximumCustomerEnteredPrice, this.basepriceEnabled, this.basepriceAmount, this.basepriceBaseAmount, this.hasTierPrices, this.hasDiscountsApplied, this.discountName, this.discountNamen, this.discountDescription, this.discountDescriptionn, this.discountPercentage, this.currency, this.currencyn, this.weight, this.length, this.width, this.height, this.availableStartDateTimeUtc, this.availableEndDateTimeUtc, this.displayOrder, this.published, this.deleted, this.createdOnUtc, this.updatedOnUtc, this.productType, this.parentGroupedProductId, this.roleIds, this.discountIds, this.storeIds, this.manufacturerIds, this.reviews, this.images, this.attributes, this.specifications, this.associatedProductIds, this.tags, this.vendorId, this.seName, }); String? id; bool? visibleIndividually; String? name; String? namen; List? localizedNames; String? shortDescription; String? shortDescriptionn; String? fullDescription; String? fullDescriptionn; bool? markasNew; bool? showOnHomePage; String? metaKeywords; String? metaDescription; String? metaTitle; bool? allowCustomerReviews; int? approvedRatingSum; int? notApprovedRatingSum; int? approvedTotalReviews; int? notApprovedTotalReviews; String? sku; bool? isRx; bool? prescriptionRequired; dynamic rxMessage; dynamic rxMessagen; dynamic manufacturerPartNumber; dynamic gtin; bool? isGiftCard; bool? requireOtherProducts; bool? automaticallyAddRequiredProducts; bool? isDownload; bool? unlimitedDownloads; int? maxNumberOfDownloads; dynamic downloadExpirationDays; bool? hasSampleDownload; bool? hasUserAgreement; bool? isRecurring; int? recurringCycleLength; int? recurringTotalCycles; bool? isRental; int? rentalPriceLength; bool? isShipEnabled; bool? isFreeShipping; bool? shipSeparately; int? additionalShippingCharge; bool? isTaxExempt; bool? isTelecommunicationsOrBroadcastingOrElectronicServices; bool? useMultipleWarehouses; int? manageInventoryMethodId; int? stockQuantity; String? stockAvailability; String? stockAvailabilityn; bool? displayStockAvailability; bool? displayStockQuantity; int? minStockQuantity; int? notifyAdminForQuantityBelow; bool? allowBackInStockSubscriptions; int? orderMinimumQuantity; int? orderMaximumQuantity; dynamic allowedQuantities; bool? allowAddingOnlyExistingAttributeCombinations; bool? disableBuyButton; bool? disableWishlistButton; bool? availableForPreOrder; dynamic preOrderAvailabilityStartDateTimeUtc; bool? callForPrice; double? price; int? oldPrice; double? productCost; dynamic specialPrice; dynamic specialPriceStartDateTimeUtc; dynamic specialPriceEndDateTimeUtc; bool? customerEntersPrice; int? minimumCustomerEnteredPrice; int? maximumCustomerEnteredPrice; bool? basepriceEnabled; int? basepriceAmount; int? basepriceBaseAmount; bool? hasTierPrices; bool? hasDiscountsApplied; dynamic discountName; dynamic discountNamen; dynamic discountDescription; dynamic discountDescriptionn; dynamic discountPercentage; String? currency; String? currencyn; double? weight; int? length; int? width; int? height; dynamic availableStartDateTimeUtc; dynamic availableEndDateTimeUtc; int? displayOrder; bool? published; bool? deleted; DateTime? createdOnUtc; DateTime? updatedOnUtc; String? productType; int? parentGroupedProductId; List? roleIds; List? discountIds; List? storeIds; List? manufacturerIds; List? reviews; List? images; List? attributes; List? specifications; List? associatedProductIds; List? tags; int? vendorId; String? seName; factory Product.fromJson(Map json) => Product( id: json["id"], visibleIndividually: json["visible_individually"], name: json["name"], namen: json["namen"], localizedNames: List.from(json["localized_names"].map((x) => LocalizedName.fromJson(x))), shortDescription: json["short_description"], shortDescriptionn: json["short_descriptionn"], fullDescription: json["full_description"], fullDescriptionn: json["full_descriptionn"], markasNew: json["markas_new"], showOnHomePage: json["show_on_home_page"], metaKeywords: json["meta_keywords"] == null ? null : json["meta_keywords"], metaDescription: json["meta_description"] == null ? null : json["meta_description"], metaTitle: json["meta_title"] == null ? null : json["meta_title"], allowCustomerReviews: json["allow_customer_reviews"], approvedRatingSum: json["approved_rating_sum"], notApprovedRatingSum: json["not_approved_rating_sum"], approvedTotalReviews: json["approved_total_reviews"], notApprovedTotalReviews: json["not_approved_total_reviews"], sku: json["sku"], isRx: json["is_rx"], prescriptionRequired: json["prescription_required"], rxMessage: json["rx_message"], rxMessagen: json["rx_messagen"], manufacturerPartNumber: json["manufacturer_part_number"], gtin: json["gtin"], isGiftCard: json["is_gift_card"], requireOtherProducts: json["require_other_products"], automaticallyAddRequiredProducts: json["automatically_add_required_products"], isDownload: json["is_download"], unlimitedDownloads: json["unlimited_downloads"], maxNumberOfDownloads: json["max_number_of_downloads"], downloadExpirationDays: json["download_expiration_days"], hasSampleDownload: json["has_sample_download"], hasUserAgreement: json["has_user_agreement"], isRecurring: json["is_recurring"], recurringCycleLength: json["recurring_cycle_length"], recurringTotalCycles: json["recurring_total_cycles"], isRental: json["is_rental"], rentalPriceLength: json["rental_price_length"], isShipEnabled: json["is_ship_enabled"], isFreeShipping: json["is_free_shipping"], shipSeparately: json["ship_separately"], additionalShippingCharge: json["additional_shipping_charge"], isTaxExempt: json["is_tax_exempt"], isTelecommunicationsOrBroadcastingOrElectronicServices: json["is_telecommunications_or_broadcasting_or_electronic_services"], useMultipleWarehouses: json["use_multiple_warehouses"], manageInventoryMethodId: json["manage_inventory_method_id"], stockQuantity: json["stock_quantity"], stockAvailability: json["stock_availability"], stockAvailabilityn: json["stock_availabilityn"], displayStockAvailability: json["display_stock_availability"], displayStockQuantity: json["display_stock_quantity"], minStockQuantity: json["min_stock_quantity"], notifyAdminForQuantityBelow: json["notify_admin_for_quantity_below"], allowBackInStockSubscriptions: json["allow_back_in_stock_subscriptions"], orderMinimumQuantity: json["order_minimum_quantity"], orderMaximumQuantity: json["order_maximum_quantity"], allowedQuantities: json["allowed_quantities"], allowAddingOnlyExistingAttributeCombinations: json["allow_adding_only_existing_attribute_combinations"], disableBuyButton: json["disable_buy_button"], disableWishlistButton: json["disable_wishlist_button"], availableForPreOrder: json["available_for_pre_order"], preOrderAvailabilityStartDateTimeUtc: json["pre_order_availability_start_date_time_utc"], callForPrice: json["call_for_price"], price: json["price"].toDouble(), oldPrice: json["old_price"], productCost: json["product_cost"].toDouble(), specialPrice: json["special_price"], specialPriceStartDateTimeUtc: json["special_price_start_date_time_utc"], specialPriceEndDateTimeUtc: json["special_price_end_date_time_utc"], customerEntersPrice: json["customer_enters_price"], minimumCustomerEnteredPrice: json["minimum_customer_entered_price"], maximumCustomerEnteredPrice: json["maximum_customer_entered_price"], basepriceEnabled: json["baseprice_enabled"], basepriceAmount: json["baseprice_amount"], basepriceBaseAmount: json["baseprice_base_amount"], hasTierPrices: json["has_tier_prices"], hasDiscountsApplied: json["has_discounts_applied"], discountName: json["discount_name"], discountNamen: json["discount_namen"], discountDescription: json["discount_description"], discountDescriptionn: json["discount_Descriptionn"], discountPercentage: json["discount_percentage"], currency: json["currency"], currencyn: json["currencyn"], weight: json["weight"].toDouble(), length: json["length"], width: json["width"], height: json["height"], availableStartDateTimeUtc: json["available_start_date_time_utc"], availableEndDateTimeUtc: json["available_end_date_time_utc"], displayOrder: json["display_order"], published: json["published"], deleted: json["deleted"], createdOnUtc: DateTime.parse(json["created_on_utc"]), updatedOnUtc: DateTime.parse(json["updated_on_utc"]), productType: json["product_type"], parentGroupedProductId: json["parent_grouped_product_id"], roleIds: List.from(json["role_ids"].map((x) => x)), discountIds: List.from(json["discount_ids"].map((x) => x)), storeIds: List.from(json["store_ids"].map((x) => x)), manufacturerIds: List.from(json["manufacturer_ids"].map((x) => x)), reviews: List.from(json["reviews"].map((x) => x)), images: List.from(json["images"].map((x) => Image.fromJson(x))), attributes: List.from(json["attributes"].map((x) => x)), specifications: List.from(json["specifications"].map((x) => Specification.fromJson(x))), associatedProductIds: List.from(json["associated_product_ids"].map((x) => x)), tags: List.from(json["tags"].map((x) => x)), vendorId: json["vendor_id"], seName: json["se_name"], ); Map toJson() => { "id": id, "visible_individually": visibleIndividually, "name": name, "namen": namen, "localized_names": List.from(localizedNames!.map((x) => x.toJson())), "short_description": shortDescription, "short_descriptionn": shortDescriptionn, "full_description": fullDescription, "full_descriptionn": fullDescriptionn, "markas_new": markasNew, "show_on_home_page": showOnHomePage, "meta_keywords": metaKeywords == null ? null : metaKeywords, "meta_description": metaDescription == null ? null : metaDescription, "meta_title": metaTitle == null ? null : metaTitle, "allow_customer_reviews": allowCustomerReviews, "approved_rating_sum": approvedRatingSum, "not_approved_rating_sum": notApprovedRatingSum, "approved_total_reviews": approvedTotalReviews, "not_approved_total_reviews": notApprovedTotalReviews, "sku": sku, "is_rx": isRx, "prescription_required": prescriptionRequired, "rx_message": rxMessage, "rx_messagen": rxMessagen, "manufacturer_part_number": manufacturerPartNumber, "gtin": gtin, "is_gift_card": isGiftCard, "require_other_products": requireOtherProducts, "automatically_add_required_products": automaticallyAddRequiredProducts, "is_download": isDownload, "unlimited_downloads": unlimitedDownloads, "max_number_of_downloads": maxNumberOfDownloads, "download_expiration_days": downloadExpirationDays, "has_sample_download": hasSampleDownload, "has_user_agreement": hasUserAgreement, "is_recurring": isRecurring, "recurring_cycle_length": recurringCycleLength, "recurring_total_cycles": recurringTotalCycles, "is_rental": isRental, "rental_price_length": rentalPriceLength, "is_ship_enabled": isShipEnabled, "is_free_shipping": isFreeShipping, "ship_separately": shipSeparately, "additional_shipping_charge": additionalShippingCharge, "is_tax_exempt": isTaxExempt, "is_telecommunications_or_broadcasting_or_electronic_services": isTelecommunicationsOrBroadcastingOrElectronicServices, "use_multiple_warehouses": useMultipleWarehouses, "manage_inventory_method_id": manageInventoryMethodId, "stock_quantity": stockQuantity, "stock_availability": stockAvailability, "stock_availabilityn": stockAvailabilityn, "display_stock_availability": displayStockAvailability, "display_stock_quantity": displayStockQuantity, "min_stock_quantity": minStockQuantity, "notify_admin_for_quantity_below": notifyAdminForQuantityBelow, "allow_back_in_stock_subscriptions": allowBackInStockSubscriptions, "order_minimum_quantity": orderMinimumQuantity, "order_maximum_quantity": orderMaximumQuantity, "allowed_quantities": allowedQuantities, "allow_adding_only_existing_attribute_combinations": allowAddingOnlyExistingAttributeCombinations, "disable_buy_button": disableBuyButton, "disable_wishlist_button": disableWishlistButton, "available_for_pre_order": availableForPreOrder, "pre_order_availability_start_date_time_utc": preOrderAvailabilityStartDateTimeUtc, "call_for_price": callForPrice, "price": price, "old_price": oldPrice, "product_cost": productCost, "special_price": specialPrice, "special_price_start_date_time_utc": specialPriceStartDateTimeUtc, "special_price_end_date_time_utc": specialPriceEndDateTimeUtc, "customer_enters_price": customerEntersPrice, "minimum_customer_entered_price": minimumCustomerEnteredPrice, "maximum_customer_entered_price": maximumCustomerEnteredPrice, "baseprice_enabled": basepriceEnabled, "baseprice_amount": basepriceAmount, "baseprice_base_amount": basepriceBaseAmount, "has_tier_prices": hasTierPrices, "has_discounts_applied": hasDiscountsApplied, "discount_name": discountName, "discount_namen": discountNamen, "discount_description": discountDescription, "discount_Descriptionn": discountDescriptionn, "discount_percentage": discountPercentage, "currency": currency, "currencyn": currencyn, "weight": weight, "length": length, "width": width, "height": height, "available_start_date_time_utc": availableStartDateTimeUtc, "available_end_date_time_utc": availableEndDateTimeUtc, "display_order": displayOrder, "published": published, "deleted": deleted, "created_on_utc": createdOnUtc!.toIso8601String(), "updated_on_utc": updatedOnUtc!.toIso8601String(), "product_type": productType, "parent_grouped_product_id": parentGroupedProductId, "role_ids": List.from(roleIds!.map((x) => x)), "discount_ids": List.from(discountIds!.map((x) => x)), "store_ids": List.from(storeIds!.map((x) => x)), "manufacturer_ids": List.from(manufacturerIds!.map((x) => x)), "reviews": List.from(reviews!.map((x) => x)), "images": List.from(images!.map((x) => x.toJson())), "attributes": List.from(attributes!.map((x) => x)), "specifications": List.from(specifications!.map((x) => x.toJson())), "associated_product_ids": List.from(associatedProductIds!.map((x) => x)), "tags": List.from(tags!.map((x) => x)), "vendor_id": vendorId, "se_name": seName, }; } class Image { Image({ this.id, this.position, this.src, this.thumb, this.attachment, }); int? id; int? position; String? src; String? thumb; String? attachment; factory Image.fromJson(Map json) => Image( id: json["id"], position: json["position"], src: json["src"], thumb: json["thumb"], attachment: json["attachment"], ); Map toJson() => { "id": id, "position": position, "src": src, "thumb": thumb, "attachment": attachment, }; } class LocalizedName { LocalizedName({ this.languageId, this.localizedName, }); int? languageId; String? localizedName; factory LocalizedName.fromJson(Map json) => LocalizedName( languageId: json["language_id"], localizedName: json["localized_name"], ); Map toJson() => { "language_id": languageId, "localized_name": localizedName, }; } class Specification { Specification({ this.id, this.displayOrder, this.defaultValue, this.defaultValuen, this.name, this.nameN, }); int? id; int? displayOrder; String? defaultValue; String? defaultValuen; String? name; String? nameN; factory Specification.fromJson(Map json) => Specification( id: json["id"], displayOrder: json["display_order"], defaultValue: json["default_value"], defaultValuen: json["default_valuen"], name: json["name"], nameN: json["nameN"], ); Map toJson() => { "id": id, "display_order": displayOrder, "default_value": defaultValue, "default_valuen": defaultValuen, "name": name, "nameN": nameN, }; } class EnumValues { Map? map; Map? reverseMap; EnumValues(this.map); Map get reverse { if (reverseMap == null) { reverseMap = map!.map((k, v) => new MapEntry(v, k)); } return reverseMap!; } }