class GetInvoiceModel { CourierStatusTimeline courierStatusTimeline; String id; String invoiceId; OrderId orderId; List items; int subtotal; double gstTotal; double invoiceAmount; String courierStatus; int v; GetInvoiceModel({ required this.courierStatusTimeline, required this.id, required this.invoiceId, required this.orderId, required this.items, required this.subtotal, required this.gstTotal, required this.invoiceAmount, required this.courierStatus, required this.v, }); factory GetInvoiceModel.fromJson(Map json) { return GetInvoiceModel( courierStatusTimeline: CourierStatusTimeline.fromJson( json['courierstatus_timeline']), id: json['_id'], invoiceId: json['invoiceId'], orderId: OrderId.fromJson(json['orderId']), items: List.from(json['items'].map((item) => Item.fromJson(item))), subtotal: json['subtotal'], gstTotal: json['gstTotal'].toDouble(), invoiceAmount: json['invoiceAmount'].toDouble(), courierStatus: json['courierStatus'], v: json['__v'], ); } } class CourierStatusTimeline { String processing; CourierStatusTimeline({ required this.processing, }); factory CourierStatusTimeline.fromJson(Map json) { return CourierStatusTimeline( processing: json['processing'], ); } } class OrderId { String id; String paymentMode; String shipTo; String billTo; List orderItems; int subtotal; double gstTotal; double grandTotal; String status; List invoices; AddedBy addedBy; String pd; bool isCancelled; bool isDelivered; String deliveredDate; String statusUpdatedAt; String uniqueId; String createdAt; String updatedAt; int v; OrderId({ required this.id, required this.paymentMode, required this.shipTo, required this.billTo, required this.orderItems, 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, required this.v, }); factory OrderId.fromJson(Map json) { return OrderId( id: json['_id'], paymentMode: json['paymentMode'], shipTo: json['shipTo'], billTo: json['billTo'], orderItems: List.from(json['orderItem'].map((item) => OrderItem.fromJson(item))), subtotal: json['subtotal'], gstTotal: json['gstTotal'].toDouble(), grandTotal: json['grandTotal'].toDouble(), status: json['status'], invoices: List.from(json['invoices']), addedBy: AddedBy.fromJson(json['addedBy']), pd: json['pd'], isCancelled: json['iscancelled'], isDelivered: json['isDelivered'], deliveredDate: json['DeliveredDate'] ?? '', statusUpdatedAt: json['statusUpdatedAt'], uniqueId: json['uniqueId'], createdAt: json['createdAt'], updatedAt: json['updatedAt'], v: json['__v'], ); } } class OrderItem { String productId; String sku; String name; String categoryName; String brandName; int price; int gst; int hsnCode; String description; List image; int quantity; int remainingQuantity; 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'], gst: json['GST'], hsnCode: json['HSN_Code'], description: json['description'] ?? '', image: List.from(json['image']), quantity: json['quantity'], remainingQuantity: json['remainingQuantity'], id: json['_id'], ); } } class Item { String productId; String sku; String name; String categoryName; String brandName; int price; int gst; int hsnCode; int processQuantity; String id; Item({ 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.processQuantity, required this.id, }); factory Item.fromJson(Map json) { return Item( productId: json['productId'], sku: json['SKU'], name: json['name'], categoryName: json['categoryName'], brandName: json['brandName'], price: json['price'], gst: json['GST'], hsnCode: json['HSN_Code'], processQuantity: json['processquantity'], id: json['_id'], ); } } class AddedBy { String id; String name; String email; String mobileNumber; dynamic fcmToken; AddedBy({ required this.id, required this.name, required this.email, required this.mobileNumber, this.fcmToken, }); factory AddedBy.fromJson(Map json) { return AddedBy( id: json['_id'], name: json['name'], email: json['email'], mobileNumber: json['mobile_number'], fcmToken: json['fcm_token'], ); } }