import 'dart:convert'; class CartProductModel { String? id; String? categoryId; String? name; String? photo; String? price; String? discountPrice; String? vendorID; int? quantity; String? extrasPrice; List? extras; VariantInfo? variantInfo; CartProductModel({ this.id, this.categoryId, this.name, this.photo, this.price, this.discountPrice, this.vendorID, this.quantity, this.extrasPrice, this.variantInfo, this.extras, }); CartProductModel.fromJson(Map json) { id = json['id']; categoryId = json['category_id']; name = json['name']; photo = json['photo']; price = json['price'] ?? "0.0"; discountPrice = json['discountPrice'] ?? "0.0"; vendorID = json['vendorID']; quantity = json['quantity']; extrasPrice = json['extras_price']; extras = json['extras'] == "null" || json['extras'] == null ? null : "String" == json['extras'].runtimeType.toString() ? List.from(jsonDecode(json['extras'])) : List.from(json['extras']); variantInfo = json['variant_info'] == "null" || json['variant_info'] == null ? null : "String" == json['variant_info'].runtimeType.toString() ? VariantInfo.fromJson(jsonDecode(json['variant_info'])) : VariantInfo.fromJson(json['variant_info']); } Map toJson() { final Map data = {}; data['id'] = id; data['category_id'] = categoryId; data['name'] = name; data['photo'] = photo; data['price'] = price; data['discountPrice'] = discountPrice; data['vendorID'] = vendorID; data['quantity'] = quantity; data['extras_price'] = extrasPrice; data['extras'] = extras; if (variantInfo != null) { data['variant_info'] = variantInfo?.toJson(); // Handle null value } return data; } } class VariantInfo { String? variantId; String? variantPrice; String? variantSku; String? variantImage; Map? variantOptions; VariantInfo({this.variantId, this.variantPrice, this.variantSku, this.variantImage, this.variantOptions}); VariantInfo.fromJson(Map json) { variantId = json['variantId'] ?? ''; variantPrice = json['variantPrice'] ?? ''; variantSku = json['variantSku'] ?? ''; variantImage = json['variant_image'] ?? ''; variantOptions = json['variant_options'] ?? {}; } Map toJson() { final Map data = {}; data['variantId'] = variantId; data['variantPrice'] = variantPrice; data['variantSku'] = variantSku; data['variant_image'] = variantImage; data['variant_options'] = variantOptions; return data; } }