import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:driver/models/cart_product_model.dart'; import 'package:driver/models/cashbackModel.dart'; import 'package:driver/models/tax_model.dart'; import 'package:driver/models/user_model.dart'; import 'package:driver/models/vendor_model.dart'; class OrderModel { ShippingAddress? address; String? status; String? couponId; String? vendorID; String? driverID; num? discount; String? authorID; String? estimatedTimeToPrepare; Timestamp? createdAt; Timestamp? triggerDelivery; List? taxSetting; String? paymentMethod; List? products; String? adminCommissionType; VendorModel? vendor; String? id; String? adminCommission; String? couponCode; Map? specialDiscount; String? deliveryCharge; Timestamp? scheduleTime; String? tipAmount; String? notes; UserModel? author; UserModel? driver; bool? takeAway; List? rejectedByDrivers; CashbackModel? cashback; String? sectionId; OrderModel( {this.address, this.status, this.couponId, this.vendorID, this.driverID, this.discount, this.authorID, this.estimatedTimeToPrepare, this.createdAt, this.triggerDelivery, this.taxSetting, this.paymentMethod, this.products, this.adminCommissionType, this.vendor, this.id, this.adminCommission, this.couponCode, this.specialDiscount, this.deliveryCharge, this.scheduleTime, this.tipAmount, this.notes, this.author, this.driver, this.takeAway, this.rejectedByDrivers, this.cashback, this.sectionId}); OrderModel.fromJson(Map json) { address = json['address'] != null ? ShippingAddress.fromJson(json['address']) : null; status = json['status']; couponId = json['couponId']; vendorID = json['vendorID']; driverID = json['driverID']; discount = json['discount'] ?? 0.0; authorID = json['authorID']; estimatedTimeToPrepare = json['estimatedTimeToPrepare']; createdAt = json['createdAt']; triggerDelivery = json['triggerDelevery'] ?? Timestamp.now(); if (json['taxSetting'] != null) { taxSetting = []; json['taxSetting'].forEach((v) { taxSetting!.add(TaxModel.fromJson(v)); }); } paymentMethod = json['payment_method']; if (json['products'] != null) { products = []; json['products'].forEach((v) { products!.add(CartProductModel.fromJson(v)); }); } adminCommissionType = json['adminCommissionType']; vendor = json['vendor'] != null ? VendorModel.fromJson(json['vendor']) : null; id = json['id']; adminCommission = json['adminCommission']; couponCode = json['couponCode']; specialDiscount = json['specialDiscount']; deliveryCharge = json['deliveryCharge'].toString().isEmpty ? "0.0" : json['deliveryCharge'] ?? '0.0'; scheduleTime = json['scheduleTime']; tipAmount = json['tip_amount'].toString().isEmpty ? "0.0" : json['tip_amount'] ?? "0.0"; notes = json['notes']; author = json['author'] != null ? UserModel.fromJson(json['author']) : null; driver = json['driver'] != null ? UserModel.fromJson(json['driver']) : null; takeAway = json['takeAway']; rejectedByDrivers = json['rejectedByDrivers'] ?? []; cashback = json['cashback'] != null ? CashbackModel.fromJson(json['cashback']) : null; sectionId = json['section_id']; } Map toJson() { final Map data = {}; if (address != null) { data['address'] = address!.toJson(); } data['status'] = status; data['couponId'] = couponId; data['vendorID'] = vendorID; data['driverID'] = driverID; data['discount'] = discount; data['authorID'] = authorID; data['estimatedTimeToPrepare'] = estimatedTimeToPrepare; data['createdAt'] = createdAt; data['triggerDelivery'] = triggerDelivery; if (taxSetting != null) { data['taxSetting'] = taxSetting!.map((v) => v.toJson()).toList(); } data['payment_method'] = paymentMethod; if (products != null) { data['products'] = products!.map((v) => v.toJson()).toList(); } data['adminCommissionType'] = adminCommissionType; if (vendor != null) { data['vendor'] = vendor!.toJson(); } data['id'] = id; data['adminCommission'] = adminCommission; data['couponCode'] = couponCode; data['specialDiscount'] = specialDiscount; data['deliveryCharge'] = deliveryCharge; data['scheduleTime'] = scheduleTime; data['tip_amount'] = tipAmount; data['notes'] = notes; if (author != null) { data['author'] = author!.toJson(); } if (driver != null) { data['driver'] = driver!.toJson(); } data['takeAway'] = takeAway; data['rejectedByDrivers'] = rejectedByDrivers; data['cashback'] = cashback?.toJson(); data['section_id'] = sectionId; return data; } }