class TabItemPurchase { final String id; final String tabItemId; final DateTime purchasedAt; final DateTime? removedAt; /// The order it was rung up in; null for drinks from before orders. final String? orderId; const TabItemPurchase({ required this.id, required this.tabItemId, required this.purchasedAt, this.removedAt, this.orderId, }); bool get isRemoved => removedAt != null; @override bool operator ==(Object other) => identical(this, other) || other is TabItemPurchase && id == other.id && tabItemId == other.tabItemId && purchasedAt == other.purchasedAt && removedAt == other.removedAt && orderId == other.orderId; @override int get hashCode => Object.hash(id, tabItemId, purchasedAt, removedAt, orderId); }