import 'package:equatable/equatable.dart'; class Tour extends Equatable { final int id; final int jobId; final int tourId; final int version; final int state; // 0 = offen, 1 = erledigt, 2 = abgeschlossen final String type; final int sort; final int locationId; final String locationCode; final String? locationCode2; final String? remark; final String? menuText; final int modified; final String? deliveryCode; final String? locationName; final bool isCompleted; final List pages; const Tour({ required this.id, required this.jobId, required this.tourId, required this.version, required this.state, required this.type, required this.sort, required this.locationId, required this.locationCode, this.locationCode2, this.remark, this.menuText, required this.modified, this.deliveryCode, this.locationName, this.isCompleted = false, this.pages = const [], }); Tour copyWith({ int? id, int? jobId, int? tourId, int? version, int? state, String? type, int? sort, int? locationId, String? locationCode, String? locationCode2, String? remark, String? menuText, int? modified, String? deliveryCode, String? locationName, bool? isCompleted, List? pages, }) { return Tour( id: id ?? this.id, jobId: jobId ?? this.jobId, tourId: tourId ?? this.tourId, version: version ?? this.version, state: state ?? this.state, type: type ?? this.type, sort: sort ?? this.sort, locationId: locationId ?? this.locationId, locationCode: locationCode ?? this.locationCode, locationCode2: locationCode2 ?? this.locationCode2, remark: remark ?? this.remark, menuText: menuText ?? this.menuText, modified: modified ?? this.modified, deliveryCode: deliveryCode ?? this.deliveryCode, locationName: locationName ?? this.locationName, isCompleted: isCompleted ?? this.isCompleted, pages: pages ?? this.pages, ); } @override List get props => [ id, jobId, tourId, version, state, type, sort, locationId, locationCode, locationCode2, remark, menuText, modified, deliveryCode, locationName, isCompleted, pages, ]; } class TourPage extends Equatable { final int id; final int tourId; final int pageNumber; final String pageId; final String type; final String? code; final String? label; final Map pickupCounts; final Map swapCounts; const TourPage({ required this.id, required this.tourId, required this.pageNumber, required this.pageId, required this.type, this.code, this.label, this.pickupCounts = const {}, this.swapCounts = const {}, }); TourPage copyWith({ int? id, int? tourId, int? pageNumber, String? pageId, String? type, String? code, String? label, Map? pickupCounts, Map? swapCounts, }) { return TourPage( id: id ?? this.id, tourId: tourId ?? this.tourId, pageNumber: pageNumber ?? this.pageNumber, pageId: pageId ?? this.pageId, type: type ?? this.type, code: code ?? this.code, label: label ?? this.label, pickupCounts: pickupCounts ?? this.pickupCounts, swapCounts: swapCounts ?? this.swapCounts, ); } @override List get props => [ id, tourId, pageNumber, pageId, type, code, label, pickupCounts, swapCounts, ]; }