import 'tab_item.dart'; import '../utils/collection_utils.dart'; class BarTab { final String id; final String customerName; final String status; final DateTime openedAt; final DateTime? closedAt; final List items; const BarTab({ required this.id, required this.customerName, required this.status, required this.openedAt, required this.items, this.closedAt, }); int get totalInCents { return items.fold(0, (total, item) => total + item.lineTotalInCents); } int get itemCount { return items.fold(0, (total, item) => total + item.quantity); } String get formattedTotal { return '€${(totalInCents / 100).toStringAsFixed(2)}'; } bool get isOpen => status == 'open'; @override bool operator ==(Object other) => identical(this, other) || other is BarTab && id == other.id && customerName == other.customerName && status == other.status && openedAt == other.openedAt && closedAt == other.closedAt && listEquals(items, other.items); @override int get hashCode => Object.hash( id, customerName, status, openedAt, closedAt, Object.hashAll(items), ); }