100 lines
2.8 KiB
Dart
100 lines
2.8 KiB
Dart
import '../task.dart';
|
|
|
|
// Barcode Task
|
|
class BarcodeTask extends Task {
|
|
final int minBarcodeCount;
|
|
final int maxBarcodeCount;
|
|
|
|
BarcodeTask({
|
|
required super.id,
|
|
required super.jobId,
|
|
required this.minBarcodeCount,
|
|
required this.maxBarcodeCount,
|
|
super.stationOrder,
|
|
super.completed = false,
|
|
super.optional = false,
|
|
super.completedAt,
|
|
super.completedBy,
|
|
super.taskOrder,
|
|
super.title,
|
|
super.description,
|
|
super.displayName,
|
|
});
|
|
|
|
factory BarcodeTask.fromJson(Map<String, dynamic> json) {
|
|
final commonProps = Task.parseCommonProperties(json);
|
|
final taskSpecificData = json['taskSpecificData'] as Map<String, dynamic>;
|
|
|
|
return BarcodeTask(
|
|
id: commonProps['id'],
|
|
jobId: commonProps['jobId'],
|
|
stationOrder: commonProps['stationOrder'],
|
|
completed: commonProps['completed'],
|
|
optional: commonProps['optional'],
|
|
completedAt: commonProps['completedAt'],
|
|
completedBy: commonProps['completedBy'],
|
|
taskOrder: commonProps['taskOrder'],
|
|
title: commonProps['title'],
|
|
description: commonProps['description'],
|
|
displayName: commonProps['displayName'],
|
|
minBarcodeCount: taskSpecificData['minBarcodeCount'] ?? 1,
|
|
maxBarcodeCount: taskSpecificData['maxBarcodeCount'] ?? 10,
|
|
);
|
|
}
|
|
|
|
@override
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
'id': id,
|
|
'jobId': jobId,
|
|
'stationOrder': stationOrder,
|
|
'completed': completed,
|
|
'optional': optional,
|
|
'completedAt': completedAt?.toIso8601String(),
|
|
'completedBy': completedBy,
|
|
'taskOrder': taskOrder,
|
|
'description': description,
|
|
'displayName': displayName,
|
|
'taskSpecificData': {
|
|
'taskType': 'BARCODE',
|
|
'title': title,
|
|
'minBarcodeCount': minBarcodeCount,
|
|
'maxBarcodeCount': maxBarcodeCount,
|
|
},
|
|
};
|
|
}
|
|
|
|
@override
|
|
BarcodeTask copyWith({
|
|
String? id,
|
|
String? jobId,
|
|
int? stationOrder,
|
|
bool? completed,
|
|
bool? optional,
|
|
DateTime? completedAt,
|
|
String? completedBy,
|
|
int? taskOrder,
|
|
String? title,
|
|
String? description,
|
|
String? displayName,
|
|
int? minBarcodeCount,
|
|
int? maxBarcodeCount,
|
|
}) {
|
|
return BarcodeTask(
|
|
id: id ?? this.id,
|
|
jobId: jobId ?? this.jobId,
|
|
stationOrder: stationOrder ?? this.stationOrder,
|
|
completed: completed ?? this.completed,
|
|
optional: optional ?? this.optional,
|
|
completedAt: completedAt ?? this.completedAt,
|
|
completedBy: completedBy ?? this.completedBy,
|
|
taskOrder: taskOrder ?? this.taskOrder,
|
|
title: title ?? this.title,
|
|
description: description ?? this.description,
|
|
displayName: displayName ?? this.displayName,
|
|
minBarcodeCount: minBarcodeCount ?? this.minBarcodeCount,
|
|
maxBarcodeCount: maxBarcodeCount ?? this.maxBarcodeCount,
|
|
);
|
|
}
|
|
}
|