Files
Fondex/lib/models/onprovider_order_model.dart

146 lines
4.8 KiB
Dart

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:customer/models/provider_serivce_model.dart';
import 'package:customer/models/tax_model.dart';
import 'package:customer/models/user_model.dart';
class OnProviderOrderModel {
String authorID, payment_method;
UserModel author;
Timestamp createdAt;
String? sectionId;
ProviderServiceModel provider;
String status;
ShippingAddress? address;
String id;
List<TaxModel>? taxModel;
Timestamp? scheduleDateTime;
Timestamp? newScheduleDateTime;
Timestamp? startTime;
Timestamp? endTime;
String? notes;
String? discount;
String? discountType;
String? discountLabel;
String? couponCode;
double quantity;
String? reason;
String? otp;
String? adminCommission;
String? adminCommissionType;
String? extraCharges;
String? extraChargesDescription;
bool? paymentStatus;
bool? extraPaymentStatus;
String? workerId;
OnProviderOrderModel({
this.sectionId = '',
this.authorID = '',
this.payment_method = '',
author,
createdAt,
provider,
this.status = '',
this.address,
this.id = '',
this.taxModel,
scheduleDateTime,
this.newScheduleDateTime,
this.startTime,
this.endTime,
this.notes = '',
this.discount,
this.discountType,
this.discountLabel,
this.couponCode,
this.quantity = 0.0,
this.reason,
this.otp,
this.adminCommission,
this.adminCommissionType,
this.extraCharges = '',
this.extraChargesDescription = '',
this.paymentStatus,
this.extraPaymentStatus,
this.workerId,
}) : author = author ?? UserModel(),
createdAt = createdAt ?? Timestamp.now(),
provider = provider ?? ProviderServiceModel(),
scheduleDateTime = scheduleDateTime ?? Timestamp.now();
factory OnProviderOrderModel.fromJson(Map<String, dynamic> parsedJson) {
List<TaxModel>? taxList;
if (parsedJson['taxSetting'] != null) {
taxList = <TaxModel>[];
parsedJson['taxSetting'].forEach((v) {
taxList!.add(TaxModel.fromJson(v));
});
}
return OnProviderOrderModel(
author: parsedJson.containsKey('author') ? UserModel.fromJson(parsedJson['author']) : UserModel(),
authorID: parsedJson['authorID'] ?? '',
address: parsedJson.containsKey('address') ? ShippingAddress.fromJson(parsedJson['address']) : ShippingAddress(),
createdAt: parsedJson['createdAt'] ?? Timestamp.now(),
id: parsedJson['id'] ?? '',
payment_method: parsedJson['payment_method'] ?? '',
taxModel: taxList,
sectionId: parsedJson['sectionId'] ?? '',
status: parsedJson['status'] ?? '',
provider: parsedJson.containsKey('provider') ? ProviderServiceModel.fromJson(parsedJson['provider']) : ProviderServiceModel(),
notes: parsedJson['notes'] ?? "",
scheduleDateTime: parsedJson['scheduleDateTime'] ?? Timestamp.now(),
newScheduleDateTime: parsedJson['newScheduleDateTime'],
startTime: parsedJson['startTime'],
endTime: parsedJson['endTime'],
discount: parsedJson['discount'] ?? "0.0",
discountLabel: parsedJson['discountLabel'] ?? "0.0",
discountType: parsedJson['discountType'] ?? "",
couponCode: parsedJson['couponCode'] ?? "",
quantity: double.parse("${parsedJson['quantity'] ?? 0.0}"),
reason: parsedJson['reason'] ?? '',
otp: parsedJson['otp'] ?? '',
adminCommission: parsedJson['adminCommission'] ?? "",
adminCommissionType: parsedJson['adminCommissionType'] ?? "",
extraCharges: parsedJson["extraCharges"] ?? "0.0",
paymentStatus: parsedJson['paymentStatus'],
extraPaymentStatus: parsedJson['extraPaymentStatus'],
workerId: parsedJson['workerId'] ?? "",
extraChargesDescription: parsedJson['extraChargesDescription'] ?? "",
);
}
Map<String, dynamic> toJson() {
return {
'address': address?.toJson(),
'author': author.toJson(),
'authorID': authorID,
'payment_method': payment_method,
'createdAt': createdAt,
'id': id,
'status': status,
'provider': provider.toJson(),
'sectionId': sectionId,
"taxSetting": taxModel?.map((v) => v.toJson()).toList(),
"scheduleDateTime": scheduleDateTime,
"newScheduleDateTime": newScheduleDateTime,
"startTime": startTime,
"endTime": endTime,
"notes": notes,
'discount': discount,
"discountLabel": discountLabel,
"discountType": discountType,
"couponCode": couponCode,
'quantity': quantity,
'reason': reason,
'otp': otp,
"adminCommission": adminCommission,
"adminCommissionType": adminCommissionType,
'extraCharges': extraCharges,
'paymentStatus': paymentStatus,
'extraPaymentStatus': extraPaymentStatus,
'workerId': workerId,
'extraChargesDescription': extraChargesDescription,
};
}
}