apskel-pos-flutter/lib/data/models/request/payment_request.dart

81 lines
2.3 KiB
Dart
Raw Normal View History

2025-08-03 20:46:57 +07:00
import 'dart:convert';
class PaymentRequestModel {
final String? orderId;
final String? paymentMethodId;
final int? amount;
final String? transactionId;
final int? splitNumber;
final int? splitTotal;
final String? splitDescription;
final List<PaymentOrderItemModel>? paymentOrderItems;
PaymentRequestModel({
this.orderId,
this.paymentMethodId,
this.amount,
this.transactionId,
this.splitNumber,
this.splitTotal,
this.splitDescription,
this.paymentOrderItems,
});
factory PaymentRequestModel.fromJson(String str) =>
PaymentRequestModel.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PaymentRequestModel.fromMap(Map<String, dynamic> json) =>
PaymentRequestModel(
orderId: json["order_id"],
paymentMethodId: json["payment_method_id"],
amount: json["amount"]?.toDouble(),
transactionId: json["transaction_id"],
splitNumber: json["split_number"],
splitTotal: json["split_total"],
splitDescription: json["split_description"],
paymentOrderItems: json["payment_order_items"] == null
? []
: List<PaymentOrderItemModel>.from(json["payment_order_items"]
.map((x) => PaymentOrderItemModel.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"order_id": orderId,
"payment_method_id": paymentMethodId,
"amount": amount,
"transaction_id": transactionId,
"split_number": splitNumber,
"split_total": splitTotal,
"split_description": splitDescription,
"payment_order_items": paymentOrderItems == null
? []
: List<dynamic>.from(paymentOrderItems!.map((x) => x.toMap())),
};
}
class PaymentOrderItemModel {
final String? orderItemId;
final int? amount;
PaymentOrderItemModel({
this.orderItemId,
this.amount,
});
factory PaymentOrderItemModel.fromJson(String str) =>
PaymentOrderItemModel.fromMap(json.decode(str));
factory PaymentOrderItemModel.fromMap(Map<String, dynamic> json) =>
PaymentOrderItemModel(
orderItemId: json["order_item_id"],
amount: json["amount"]?.toDouble(),
);
Map<String, dynamic> toMap() => {
"order_item_id": orderItemId,
"amount": amount,
};
}