create order with payment

This commit is contained in:
efrilm
2025-10-28 00:58:39 +07:00
parent 37f0008ec8
commit 137f3d9636
20 changed files with 2815 additions and 1086 deletions
+1 -44
View File
@@ -51,7 +51,7 @@ class OrderDto with _$OrderDto {
@JsonKey(name: "created_at") String? createdAt,
@JsonKey(name: "updated_at") String? updatedAt,
@JsonKey(name: "order_items") List<OrderItemDto>? orderItems,
@JsonKey(name: "payments") List<PaymentOrderDto>? payments,
@JsonKey(name: "payments") List<PaymentDto>? payments,
@JsonKey(name: "total_paid") int? totalPaid,
@JsonKey(name: "payment_count") int? paymentCount,
@JsonKey(name: "split_type") String? splitType,
@@ -137,46 +137,3 @@ class OrderItemDto with _$OrderItemDto {
paidQuantity: paidQuantity ?? 0,
);
}
@freezed
class PaymentOrderDto with _$PaymentOrderDto {
const PaymentOrderDto._();
const factory PaymentOrderDto({
@JsonKey(name: "id") String? id,
@JsonKey(name: "order_id") String? orderId,
@JsonKey(name: "payment_method_id") String? paymentMethodId,
@JsonKey(name: "payment_method_name") String? paymentMethodName,
@JsonKey(name: "payment_method_type") String? paymentMethodType,
@JsonKey(name: "amount") int? amount,
@JsonKey(name: "status") String? status,
@JsonKey(name: "split_number") int? splitNumber,
@JsonKey(name: "split_total") int? splitTotal,
@JsonKey(name: "split_description") String? splitDescription,
@JsonKey(name: "refund_amount") int? refundAmount,
@JsonKey(name: "metadata") Map<String, dynamic>? metadata,
@JsonKey(name: "created_at") String? createdAt,
@JsonKey(name: "updated_at") String? updatedAt,
}) = _PaymentOrderDto;
factory PaymentOrderDto.fromJson(Map<String, dynamic> json) =>
_$PaymentOrderDtoFromJson(json);
// Optional mapper ke domain entity
PaymentOrder toDomain() => PaymentOrder(
id: id ?? '',
orderId: orderId ?? '',
paymentMethodId: paymentMethodId ?? '',
paymentMethodName: paymentMethodName ?? '',
paymentMethodType: paymentMethodType ?? '',
amount: amount ?? 0,
status: status ?? '',
splitNumber: splitNumber ?? 0,
splitTotal: splitTotal ?? 0,
splitDescription: splitDescription ?? '',
refundAmount: refundAmount ?? 0,
metadata: metadata ?? const {},
createdAt: createdAt != null ? DateTime.parse(createdAt!) : DateTime(1970),
updatedAt: updatedAt != null ? DateTime.parse(updatedAt!) : DateTime(1970),
);
}