Files
apskel-owner-flutter/lib/domain/order/entities/order_entity.dart
T
efrilm 24f94fa747
Build Android APK (split per ABI) / build-apk (push) Waiting to run
Build & Deploy iOS to TestFlight / build-and-deploy (push) Waiting to run
feat: change total to amount
2026-10-20 18:22:02 +07:00

171 lines
3.9 KiB
Dart

part of '../order.dart';
@freezed
class Order with _$Order {
const factory Order({
required String id,
required String orderNumber,
required String outletId,
required String userId,
required String tableNumber,
required String orderType,
required String status,
required int subtotal,
required int taxAmount,
required int discountAmount,
required int totalAmount,
required int totalCost,
required int remainingAmount,
required String paymentStatus,
required int refundAmount,
required bool isVoid,
required bool isRefund,
required String notes,
required Map<String, dynamic> metadata,
required String createdAt,
required String updatedAt,
required List<OrderItem> orderItems,
required List<OrderPayment> payments,
required int totalPaid,
required int paymentCount,
required String splitType,
}) = _Order;
factory Order.empty() => Order(
id: '',
orderNumber: '',
outletId: '',
userId: '',
tableNumber: '',
orderType: '',
status: '',
subtotal: 0,
taxAmount: 0,
discountAmount: 0,
totalAmount: 0,
totalCost: 0,
remainingAmount: 0,
paymentStatus: '',
refundAmount: 0,
isVoid: false,
isRefund: false,
notes: '',
metadata: {},
createdAt: '',
updatedAt: '',
orderItems: [],
payments: [],
totalPaid: 0,
paymentCount: 0,
splitType: '',
);
}
@freezed
class OrderItem with _$OrderItem {
const factory OrderItem({
required String id,
required String orderId,
required String productId,
required String productName,
required int quantity,
required int price,
required int subtotal,
required int discountAmount,
required int total,
required int cost,
required Map<String, dynamic> metadata,
required String createdAt,
required String updatedAt,
}) = _OrderItem;
factory OrderItem.empty() => OrderItem(
id: '',
orderId: '',
productId: '',
productName: '',
quantity: 0,
price: 0,
subtotal: 0,
discountAmount: 0,
total: 0,
cost: 0,
metadata: {},
createdAt: '',
updatedAt: '',
);
}
@freezed
class OrderPayment with _$OrderPayment {
const factory OrderPayment({
required String id,
required String orderId,
required String paymentMethodId,
required String paymentMethodName,
required String paymentMethodType,
required int amount,
required String status,
required int splitNumber,
required int splitTotal,
required String splitType,
required String splitDescription,
required int refundAmount,
required Map<String, dynamic> metadata,
required String createdAt,
required String updatedAt,
required List<PaymentOrderItem> paymentOrderItems,
}) = _OrderPayment;
factory OrderPayment.empty() => OrderPayment(
id: '',
orderId: '',
paymentMethodId: '',
paymentMethodName: '',
paymentMethodType: '',
amount: 0,
status: '',
splitNumber: 0,
splitTotal: 0,
splitType: '',
splitDescription: '',
refundAmount: 0,
metadata: {},
createdAt: '',
updatedAt: '',
paymentOrderItems: [],
);
}
@freezed
class PaymentOrderItem with _$PaymentOrderItem {
const factory PaymentOrderItem({
required String id,
required String orderPaymentId,
required String orderItemId,
required int amount,
required int refundAmount,
required String createdAt,
required String updatedAt,
}) = _PaymentOrderItem;
factory PaymentOrderItem.empty() => PaymentOrderItem(
id: '',
orderPaymentId: '',
orderItemId: '',
amount: 0,
refundAmount: 0,
createdAt: '',
updatedAt: '',
);
}
/// Ringkasan order untuk kartu summary: jumlah order + total nominalnya.
@freezed
class OrderTotal with _$OrderTotal {
const factory OrderTotal({required int count, required int amount}) =
_OrderTotal;
factory OrderTotal.empty() => const OrderTotal(count: 0, amount: 0);
}