class SingleGetOrderModel { final String id; final String paymentMode; final String shipTo; final String billTo; final List orderItem; final double subtotal; final double gstTotal; final double grandTotal; final String status; final List invoices; final AddedBy addedBy; final String pd; final bool isCancelled; final bool isDelivered; final String deliveredDate; final DateTime statusUpdatedAt; final String uniqueId; final DateTime createdAt; final DateTime updatedAt; SingleGetOrderModel({ required this.id, required this.paymentMode, required this.shipTo, required this.billTo, required this.orderItem, required this.subtotal, required this.gstTotal, required this.grandTotal, required this.status, required this.invoices, required this.addedBy, required this.pd, required this.isCancelled, required this.isDelivered, required this.deliveredDate, required this.statusUpdatedAt, required this.uniqueId, required this.createdAt, required this.updatedAt, }); factory SingleGetOrderModel.fromJson(Map json) { return SingleGetOrderModel( id: json['_id'] ?? '', paymentMode: json['paymentMode'] ?? '', shipTo: json['shipTo'] ?? '', billTo: json['billTo'] ?? '', orderItem: (json['orderItem'] as List?) ?.map((item) => OrderItem.fromJson(item)) .toList() ?? [], subtotal: (json['subtotal'] as num?)?.toDouble() ?? 0.0, gstTotal: (json['gstTotal'] as num?)?.toDouble() ?? 0.0, grandTotal: (json['grandTotal'] as num?)?.toDouble() ?? 0.0, status: json['status'] ?? '', invoices: json['invoices'] ?? [], addedBy: AddedBy.fromJson(json['addedBy'] ?? {}), pd: json['pd'] ?? '', isCancelled: json['iscancelled'] ?? false, isDelivered: json['isDelivered'] ?? false, deliveredDate: json['DeliveredDate'] ?? '', statusUpdatedAt: DateTime.parse(json['statusUpdatedAt'] ?? DateTime.now().toString()), uniqueId: json['uniqueId'] ?? '', createdAt: DateTime.parse(json['createdAt'] ?? DateTime.now().toString()), updatedAt: DateTime.parse(json['updatedAt'] ?? DateTime.now().toString()), ); } Map toJson() { return { '_id': id, 'paymentMode': paymentMode, 'shipTo': shipTo, 'billTo': billTo, 'orderItem': orderItem.map((item) => item.toJson()).toList(), 'subtotal': subtotal, 'gstTotal': gstTotal, 'grandTotal': grandTotal, 'status': status, 'invoices': invoices, 'addedBy': addedBy.toJson(), 'pd': pd, 'iscancelled': isCancelled, 'isDelivered': isDelivered, 'DeliveredDate': deliveredDate, 'statusUpdatedAt': statusUpdatedAt.toIso8601String(), 'uniqueId': uniqueId, 'createdAt': createdAt.toIso8601String(), 'updatedAt': updatedAt.toIso8601String(), }; } @override String toString() { return 'SingleOrder(id: $id, paymentMode: $paymentMode, shipTo: $shipTo, billTo: $billTo, ' 'orderItem: $orderItem, subtotal: $subtotal, gstTotal: $gstTotal, grandTotal: $grandTotal, ' 'status: $status, invoices: $invoices, addedBy: $addedBy, pd: $pd, ' 'isCancelled: $isCancelled, isDelivered: $isDelivered, deliveredDate: $deliveredDate, ' 'statusUpdatedAt: $statusUpdatedAt, uniqueId: $uniqueId, createdAt: $createdAt, updatedAt: $updatedAt)'; } } class OrderItem { final String productId; final String sku; final String name; final String categoryName; final String brandName; final double price; final double gst; final String hsnCode; final String description; final List image; final int quantity; final int remainingQuantity; final String id; OrderItem({ required this.productId, required this.sku, required this.name, required this.categoryName, required this.brandName, required this.price, required this.gst, required this.hsnCode, required this.description, required this.image, required this.quantity, required this.remainingQuantity, required this.id, }); factory OrderItem.fromJson(Map json) { return OrderItem( productId: json['productId'] ?? '', sku: json['SKU'] ?? '', name: json['name'] ?? '', categoryName: json['categoryName'] ?? '', brandName: json['brandName'] ?? '', price: (json['price'] as num?)?.toDouble() ?? 0.0, gst: (json['GST'] as num?)?.toDouble() ?? 0.0, hsnCode: json['HSN_Code'] ?? '', description: json['description'] ?? '', image: json['image'] ?? [], quantity: json['quantity'] ?? 0, remainingQuantity: json['remainingQuantity'] ?? 0, id: json['_id'] ?? '', ); } Map toJson() { return { 'productId': productId, 'SKU': sku, 'name': name, 'categoryName': categoryName, 'brandName': brandName, 'price': price, 'GST': gst, 'HSN_Code': hsnCode, 'description': description, 'image': image, 'quantity': quantity, 'remainingQuantity': remainingQuantity, '_id': id, }; } @override String toString() { return 'OrderItem(productId: $productId, SKU: $sku, name: $name, categoryName: $categoryName, ' 'brandName: $brandName, price: $price, GST: $gst, HSN_Code: $hsnCode, ' 'description: $description, image: $image, quantity: $quantity, ' 'remainingQuantity: $remainingQuantity, id: $id)'; } } class AddedBy { final String id; final String designation; final String name; final String email; final String mobileNumber; final String principalDistributor; final String addedBy; final String userType; final String kyc; final String? fcmToken; final DateTime createdAt; final DateTime updatedAt; final String mappedSC; final String uniqueId; final String mappedTM; AddedBy({ required this.id, required this.designation, required this.name, required this.email, required this.mobileNumber, required this.principalDistributor, required this.addedBy, required this.userType, required this.kyc, this.fcmToken, required this.createdAt, required this.updatedAt, required this.mappedSC, required this.uniqueId, required this.mappedTM, }); factory AddedBy.fromJson(Map json) { return AddedBy( id: json['_id'] ?? '', designation: json['designation'] ?? '', name: json['name'] ?? '', email: json['email'] ?? '', mobileNumber: json['mobile_number'] ?? '', principalDistributor: json['principal_distributer'] ?? '', addedBy: json['addedBy'] ?? '', userType: json['userType'] ?? '', kyc: json['kyc'] ?? '', fcmToken: json['fcm_token'], createdAt: DateTime.parse(json['createdAt'] ?? DateTime.now().toString()), updatedAt: DateTime.parse(json['updatedAt'] ?? DateTime.now().toString()), mappedSC: json['mappedSC'] ?? '', uniqueId: json['uniqueId'] ?? '', mappedTM: json['mappedTM'] ?? '', ); } Map toJson() { return { '_id': id, 'designation': designation, 'name': name, 'email': email, 'mobile_number': mobileNumber, 'principal_distributer': principalDistributor, 'addedBy': addedBy, 'userType': userType, 'kyc': kyc, 'fcm_token': fcmToken, 'createdAt': createdAt.toIso8601String(), 'updatedAt': updatedAt.toIso8601String(), 'mappedSC': mappedSC, 'uniqueId': uniqueId, 'mappedTM': mappedTM, }; } @override String toString() { return 'AddedBy(id: $id, designation: $designation, name: $name, email: $email, ' 'mobileNumber: $mobileNumber, principalDistributor: $principalDistributor, ' 'addedBy: $addedBy, userType: $userType, kyc: $kyc, fcmToken: $fcmToken, ' 'createdAt: $createdAt, updatedAt: $updatedAt, mappedSC: $mappedSC, ' 'uniqueId: $uniqueId, mappedTM: $mappedTM)'; } }