164 lines
3.7 KiB
Dart
164 lines
3.7 KiB
Dart
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<TourPage> 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<TourPage>? 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<Object?> 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<String, int> pickupCounts;
|
|
final Map<String, int> 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<String, int>? pickupCounts,
|
|
Map<String, int>? 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<Object?> get props => [
|
|
id,
|
|
tourId,
|
|
pageNumber,
|
|
pageId,
|
|
type,
|
|
code,
|
|
label,
|
|
pickupCounts,
|
|
swapCounts,
|
|
];
|
|
}
|