class ScanQrModel {
  String? id;
  bool? visibleIndividually;
  String? name;
  String? namen;
  List<LocalizedNames>? 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;
  dynamic price;
  dynamic oldPrice;
  dynamic 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;
  String? createdOnUtc;
  String? updatedOnUtc;
  String? productType;
  dynamic parentGroupedProductId;
  List<dynamic>? roleIds;
  List<dynamic>? discountIds;
  List<dynamic>? storeIds;
  List<dynamic>? manufacturerIds;
  List<dynamic>? reviews;
  List<Images>? images;
  List<dynamic>? attributes;
  List<Specifications>? specifications;
  List<dynamic>? associatedProductIds;
  List<dynamic>? tags;
  dynamic vendorId;
  String? seName;

  ScanQrModel(
      {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});

  ScanQrModel.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    visibleIndividually = json['visible_individually'];
    name = json['name'];
    namen = json['namen'];
    if (json['localized_names'] != null) {
      localizedNames = [];
      json['localized_names'].forEach((v) {
        localizedNames!.add(new LocalizedNames.fromJson(v));
      });
    }
    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'];
    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'];
    oldPrice = json['old_price'];
    productCost = json['product_cost'];
    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'];
    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 = json['created_on_utc'];
    updatedOnUtc = json['updated_on_utc'];
    productType = json['product_type'];
    parentGroupedProductId = json['parent_grouped_product_id'];
    if (json['role_ids'] != null) {
      roleIds = [];
    }
    if (json['discount_ids'] != null) {
      discountIds = [];
    }
    if (json['store_ids'] != null) {
      storeIds = [];
    }
    manufacturerIds = json['manufacturer_ids'].cast<int>();
    if (json['reviews'] != null) {
      reviews = [];
    }
    if (json['images'] != null) {
      images = [];
      json['images'].forEach((v) {
        images!.add(new Images.fromJson(v));
      });
    }
    if (json['attributes'] != null) {
      attributes = [];
    }
    if (json['specifications'] != null) {
      specifications = [];
      json['specifications'].forEach((v) {
        specifications!.add(new Specifications.fromJson(v));
      });
    }
    if (json['associated_product_ids'] != null) {
      associatedProductIds = [];
    }
    if (json['tags'] != null) {
      tags = [];
    }
    vendorId = json['vendor_id'];
    seName = json['se_name'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['visible_individually'] = this.visibleIndividually;
    data['name'] = this.name;
    data['namen'] = this.namen;
    if (this.localizedNames != null) {
      data['localized_names'] = this.localizedNames!.map((v) => v.toJson()).toList();
    }
    data['short_description'] = this.shortDescription;
    data['short_descriptionn'] = this.shortDescriptionn;
    data['full_description'] = this.fullDescription;
    data['full_descriptionn'] = this.fullDescriptionn;
    data['markas_new'] = this.markasNew;
    data['show_on_home_page'] = this.showOnHomePage;
    data['meta_keywords'] = this.metaKeywords;
    data['meta_description'] = this.metaDescription;
    data['meta_title'] = this.metaTitle;
    data['allow_customer_reviews'] = this.allowCustomerReviews;
    data['approved_rating_sum'] = this.approvedRatingSum;
    data['not_approved_rating_sum'] = this.notApprovedRatingSum;
    data['approved_total_reviews'] = this.approvedTotalReviews;
    data['not_approved_total_reviews'] = this.notApprovedTotalReviews;
    data['sku'] = this.sku;
    data['is_rx'] = this.isRx;
    data['prescription_required'] = this.prescriptionRequired;
    data['rx_message'] = this.rxMessage;
    data['rx_messagen'] = this.rxMessagen;
    data['manufacturer_part_number'] = this.manufacturerPartNumber;
    data['gtin'] = this.gtin;
    data['is_gift_card'] = this.isGiftCard;
    data['require_other_products'] = this.requireOtherProducts;
    data['automatically_add_required_products'] = this.automaticallyAddRequiredProducts;
    data['is_download'] = this.isDownload;
    data['unlimited_downloads'] = this.unlimitedDownloads;
    data['max_number_of_downloads'] = this.maxNumberOfDownloads;
    data['download_expiration_days'] = this.downloadExpirationDays;
    data['has_sample_download'] = this.hasSampleDownload;
    data['has_user_agreement'] = this.hasUserAgreement;
    data['is_recurring'] = this.isRecurring;
    data['recurring_cycle_length'] = this.recurringCycleLength;
    data['recurring_total_cycles'] = this.recurringTotalCycles;
    data['is_rental'] = this.isRental;
    data['rental_price_length'] = this.rentalPriceLength;
    data['is_ship_enabled'] = this.isShipEnabled;
    data['is_free_shipping'] = this.isFreeShipping;
    data['ship_separately'] = this.shipSeparately;
    data['additional_shipping_charge'] = this.additionalShippingCharge;
    data['is_tax_exempt'] = this.isTaxExempt;
    data['is_telecommunications_or_broadcasting_or_electronic_services'] = this.isTelecommunicationsOrBroadcastingOrElectronicServices;
    data['use_multiple_warehouses'] = this.useMultipleWarehouses;
    data['manage_inventory_method_id'] = this.manageInventoryMethodId;
    data['stock_quantity'] = this.stockQuantity;
    data['stock_availability'] = this.stockAvailability;
    data['stock_availabilityn'] = this.stockAvailabilityn;
    data['display_stock_availability'] = this.displayStockAvailability;
    data['display_stock_quantity'] = this.displayStockQuantity;
    data['min_stock_quantity'] = this.minStockQuantity;
    data['notify_admin_for_quantity_below'] = this.notifyAdminForQuantityBelow;
    data['allow_back_in_stock_subscriptions'] = this.allowBackInStockSubscriptions;
    data['order_minimum_quantity'] = this.orderMinimumQuantity;
    data['order_maximum_quantity'] = this.orderMaximumQuantity;
    data['allowed_quantities'] = this.allowedQuantities;
    data['allow_adding_only_existing_attribute_combinations'] = this.allowAddingOnlyExistingAttributeCombinations;
    data['disable_buy_button'] = this.disableBuyButton;
    data['disable_wishlist_button'] = this.disableWishlistButton;
    data['available_for_pre_order'] = this.availableForPreOrder;
    data['pre_order_availability_start_date_time_utc'] = this.preOrderAvailabilityStartDateTimeUtc;
    data['call_for_price'] = this.callForPrice;
    data['price'] = this.price;
    data['old_price'] = this.oldPrice;
    data['product_cost'] = this.productCost;
    data['special_price'] = this.specialPrice;
    data['special_price_start_date_time_utc'] = this.specialPriceStartDateTimeUtc;
    data['special_price_end_date_time_utc'] = this.specialPriceEndDateTimeUtc;
    data['customer_enters_price'] = this.customerEntersPrice;
    data['minimum_customer_entered_price'] = this.minimumCustomerEnteredPrice;
    data['maximum_customer_entered_price'] = this.maximumCustomerEnteredPrice;
    data['baseprice_enabled'] = this.basepriceEnabled;
    data['baseprice_amount'] = this.basepriceAmount;
    data['baseprice_base_amount'] = this.basepriceBaseAmount;
    data['has_tier_prices'] = this.hasTierPrices;
    data['has_discounts_applied'] = this.hasDiscountsApplied;
    data['discount_name'] = this.discountName;
    data['discount_namen'] = this.discountNamen;
    data['discount_description'] = this.discountDescription;
    data['discount_Descriptionn'] = this.discountDescriptionn;
    data['discount_percentage'] = this.discountPercentage;
    data['currency'] = this.currency;
    data['currencyn'] = this.currencyn;
    data['weight'] = this.weight;
    data['length'] = this.length;
    data['width'] = this.width;
    data['height'] = this.height;
    data['available_start_date_time_utc'] = this.availableStartDateTimeUtc;
    data['available_end_date_time_utc'] = this.availableEndDateTimeUtc;
    data['display_order'] = this.displayOrder;
    data['published'] = this.published;
    data['deleted'] = this.deleted;
    data['created_on_utc'] = this.createdOnUtc;
    data['updated_on_utc'] = this.updatedOnUtc;
    data['product_type'] = this.productType;
    data['parent_grouped_product_id'] = this.parentGroupedProductId;

    data['manufacturer_ids'] = this.manufacturerIds;

    if (this.images != null) {
      data['images'] = this.images!.map((v) => v.toJson()).toList();
    }

    if (this.specifications != null) {
      data['specifications'] = this.specifications!.map((v) => v.toJson()).toList();
    }

    data['vendor_id'] = this.vendorId;
    data['se_name'] = this.seName;
    return data;
  }
}

class LocalizedNames {
  int? languageId;
  String? localizedName;

  LocalizedNames({this.languageId, this.localizedName});

  LocalizedNames.fromJson(Map<String, dynamic> json) {
    languageId = json['language_id'];
    localizedName = json['localized_name'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['language_id'] = this.languageId;
    data['localized_name'] = this.localizedName;
    return data;
  }
}

class Images {
  int? id;
  int? position;
  String? src;
  String? thumb;
  String? attachment;

  Images({this.id, this.position, this.src, this.thumb, this.attachment});

  Images.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    position = json['position'];
    src = json['src'];
    thumb = json['thumb'];
    attachment = json['attachment'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['position'] = this.position;
    data['src'] = this.src;
    data['thumb'] = this.thumb;
    data['attachment'] = this.attachment;
    return data;
  }
}

class Specifications {
  int? id;
  int? displayOrder;
  String? defaultValue;
  String? defaultValuen;
  String? name;
  String? nameN;

  Specifications({this.id, this.displayOrder, this.defaultValue, this.defaultValuen, this.name, this.nameN});

  Specifications.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    displayOrder = json['display_order'];
    defaultValue = json['default_value'];
    defaultValuen = json['default_valuen'];
    name = json['name'];
    nameN = json['nameN'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['display_order'] = this.displayOrder;
    data['default_value'] = this.defaultValue;
    data['default_valuen'] = this.defaultValuen;
    data['name'] = this.name;
    data['nameN'] = this.nameN;
    return data;
  }
}
