Files
enaklo-flutter/lib/domain/wallet/entities/customer_order_entity.dart
T
efrilm 38850b281f
Build & Deploy iOS to TestFlight / build-and-deploy (push) Canceled after 0s
feat: integrate enakgame and voucher
2026-10-10 02:33:16 +07:00

82 lines
2.1 KiB
Dart

part of '../wallet.dart';
/// Order milik customer di daftar riwayat (ยง4.5).
@freezed
abstract class CustomerOrder with _$CustomerOrder {
const CustomerOrder._();
const factory CustomerOrder({
required String id,
required String orderNumber,
required String outletName,
required String orderType,
required String status,
required String paymentStatus,
required int totalAmount,
required int itemCount,
required bool isVoid,
required bool isRefund,
required int pointsEarned,
required int coinsEarned,
DateTime? createdAt,
}) = _CustomerOrder;
bool get isDineIn => orderType == 'dine_in';
}
@freezed
abstract class CustomerOrderPage with _$CustomerOrderPage {
const factory CustomerOrderPage({
required List<CustomerOrder> items,
required int page,
required int totalPages,
}) = _CustomerOrderPage;
}
/// Detail order: field [order] ditambah rincian item dan pembayaran.
@freezed
abstract class CustomerOrderDetail with _$CustomerOrderDetail {
const factory CustomerOrderDetail({
required CustomerOrder order,
String? tableNumber,
required int subtotal,
required int discountAmount,
required int taxAmount,
required int refundAmount,
required List<CustomerOrderItem> items,
required List<CustomerOrderPayment> payments,
}) = _CustomerOrderDetail;
}
@freezed
abstract class CustomerOrderItem with _$CustomerOrderItem {
const CustomerOrderItem._();
const factory CustomerOrderItem({
required String id,
required String productName,
String? variantName,
required int quantity,
/// Hanya untuk item timbangan, mis. 4,2 [unitName].
double? weight,
String? unitName,
required int unitPrice,
required int totalPrice,
required int refundQuantity,
}) = _CustomerOrderItem;
bool get isWeighted => weight != null;
}
@freezed
abstract class CustomerOrderPayment with _$CustomerOrderPayment {
const factory CustomerOrderPayment({
required String id,
required String methodName,
required String methodType,
required int amount,
required int refundAmount,
}) = _CustomerOrderPayment;
}