Files
Fondex-Driver/lib/models/order_model.dart
2025-12-08 23:25:00 +05:00

158 lines
5.0 KiB
Dart

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<TaxModel>? taxSetting;
String? paymentMethod;
List<CartProductModel>? products;
String? adminCommissionType;
VendorModel? vendor;
String? id;
String? adminCommission;
String? couponCode;
Map<String, dynamic>? specialDiscount;
String? deliveryCharge;
Timestamp? scheduleTime;
String? tipAmount;
String? notes;
UserModel? author;
UserModel? driver;
bool? takeAway;
List<dynamic>? 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<String, dynamic> 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 = <TaxModel>[];
json['taxSetting'].forEach((v) {
taxSetting!.add(TaxModel.fromJson(v));
});
}
paymentMethod = json['payment_method'];
if (json['products'] != null) {
products = <CartProductModel>[];
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<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
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;
}
}