// To parse this JSON data, do // // final wishlist = wishlistFromJson(jsonString); import 'dart:convert'; List wishlistFromJson(String str) => List.from(json.decode(str).map((x) => Wishlist.fromJson(x))); String wishlistToJson(List data) => json.encode(List.from(data.map((x) => x.toJson()))); class Wishlist { Wishlist({ 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, }); dynamic languageId; dynamic id; List productAttributes; dynamic customerEnteredPrice; dynamic quantity; dynamic discountAmountInclTax; dynamic subtotal; dynamic subtotalWithVat; dynamic subtotalVatAmount; dynamic subtotalVatRate; dynamic currency; dynamic currencyn; dynamic rentalStartDateUtc; dynamic rentalEndDateUtc; dynamic createdOnUtc; dynamic updatedOnUtc; dynamic shoppingCartType; dynamic productId; dynamic product; dynamic customerId; Customer customer; factory Wishlist.fromJson(Map json) => Wishlist( 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"] != null ? json["discount_amount_incl_tax"] :0.0, 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"] != null ? DateTime.parse(json["rental_start_date_utc"]) : DateTime.now(), rentalEndDateUtc: json["rental_end_date_utc"] != null ? DateTime.parse(json["rental_end_date_utc"]) : DateTime.now(), 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; dynamic 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: json["last_login_date_utc"] != null ? DateTime.parse(json["last_login_date_utc"]) : DateTime.now(), 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; dynamic 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 { RIYADH, AL_OYUN } final cityValues = EnumValues({ "Al Oyun": City.AL_OYUN, "Riyadh": City.RIYADH }); enum Country { SAUDI_ARABIA } final countryValues = EnumValues({ "Saudi Arabia": Country.SAUDI_ARABIA }); enum Email { TAMER_FANASHEH_GMAIL_COM, TAMER_DASDASDAS_GMAIL_COM } final emailValues = EnumValues({ "Tamer.dasdasdas@gmail.com": Email.TAMER_DASDASDAS_GMAIL_COM, "Tamer.fanasheh@gmail.com": Email.TAMER_FANASHEH_GMAIL_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; // dynamic metaKeywords; // dynamic metaDescription; // dynamic metaTitle; bool allowCustomerReviews; dynamic approvedRatingSum; dynamic notApprovedRatingSum; dynamic approvedTotalReviews; dynamic 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; dynamic maxNumberOfDownloads; // dynamic downloadExpirationDays; bool hasSampleDownload; bool hasUserAgreement; bool isRecurring; dynamic recurringCycleLength; dynamic recurringTotalCycles; bool isRental; dynamic rentalPriceLength; bool isShipEnabled; bool isFreeShipping; bool shipSeparately; dynamic additionalShippingCharge; bool isTaxExempt; bool isTelecommunicationsOrBroadcastingOrElectronicServices; bool useMultipleWarehouses; dynamic manageInventoryMethodId; dynamic stockQuantity; String stockAvailability; String stockAvailabilityn; bool displayStockAvailability; bool displayStockQuantity; dynamic minStockQuantity; dynamic notifyAdminForQuantityBelow; bool allowBackInStockSubscriptions; dynamic orderMinimumQuantity; dynamic orderMaximumQuantity; // dynamic allowedQuantities; bool allowAddingOnlyExistingAttributeCombinations; bool disableBuyButton; bool disableWishlistButton; bool availableForPreOrder; dynamic preOrderAvailabilityStartDateTimeUtc; bool callForPrice; double price; dynamic oldPrice; double productCost; dynamic specialPrice; dynamic specialPriceStartDateTimeUtc; dynamic specialPriceEndDateTimeUtc; bool customerEntersPrice; dynamic minimumCustomerEnteredPrice; dynamic maximumCustomerEnteredPrice; bool basepriceEnabled; dynamic basepriceAmount; dynamic basepriceBaseAmount; bool hasTierPrices; bool hasDiscountsApplied; dynamic discountName; dynamic discountNamen; dynamic discountDescription; dynamic discountDescriptionn; dynamic discountPercentage; String currency; String currencyn; double weight; dynamic length; dynamic width; dynamic height; dynamic availableStartDateTimeUtc; dynamic availableEndDateTimeUtc; dynamic displayOrder; bool published; bool deleted; DateTime createdOnUtc; DateTime updatedOnUtc; String productType; dynamic parentGroupedProductId; List roleIds; List discountIds; List storeIds; List manufacturerIds; List reviews; List images; List attributes; List specifications; List associatedProductIds; List tags; dynamic 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"], // metaDescription: json["meta_description"], // metaTitle: 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"] != null ? json["rx_message"] : "" , rxMessagen: json["rx_messagen"] != null ? 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"] != null ? DateTime.parse(json["pre_order_availability_start_date_time_utc"]) : DateTime.now(), callForPrice: json["call_for_price"], price: json["price"].toDouble(), oldPrice: json["old_price"], productCost: json["product_cost"].toDouble(), specialPrice: json["special_price"] != null ? json["special_price"] : 0.0 , specialPriceStartDateTimeUtc: json["special_price_start_date_time_utc"] != null ? DateTime.parse(json["special_price_start_date_time_utc"]) : DateTime.now(), specialPriceEndDateTimeUtc: json["special_price_end_date_time_utc"] != null ? DateTime.parse(json["special_price_end_date_time_utc"]) : DateTime.now(), 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, // "meta_description": metaDescription, // "meta_title": 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, }); dynamic id; dynamic 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, }); dynamic 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, }); dynamic id; dynamic 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; } }