rwadurian/frontend/mining-app/lib/domain/entities/trade_order.dart

45 lines
1.2 KiB
Dart

import 'package:equatable/equatable.dart';
enum OrderType { buy, sell }
enum OrderStatus { pending, partial, filled, cancelled }
class TradeOrder extends Equatable {
final String id;
final String accountSequence;
final OrderType orderType;
final OrderStatus status;
final String price;
final String quantity;
final String filledQuantity;
final String totalAmount;
final DateTime createdAt;
final DateTime? updatedAt;
const TradeOrder({
required this.id,
required this.accountSequence,
required this.orderType,
required this.status,
required this.price,
required this.quantity,
required this.filledQuantity,
required this.totalAmount,
required this.createdAt,
this.updatedAt,
});
bool get isBuy => orderType == OrderType.buy;
bool get isSell => orderType == OrderType.sell;
bool get isPending => status == OrderStatus.pending;
bool get isFilled => status == OrderStatus.filled;
String get remainingQuantity {
final qty = double.tryParse(quantity) ?? 0;
final filled = double.tryParse(filledQuantity) ?? 0;
return (qty - filled).toString();
}
@override
List<Object?> get props => [id, accountSequence, orderType, status, price, quantity];
}