83 lines
2.2 KiB
Dart
83 lines
2.2 KiB
Dart
import '../task.dart';
|
|
|
|
// Signature Task
|
|
class SignatureTask extends Task {
|
|
SignatureTask({
|
|
required super.id,
|
|
required super.jobId,
|
|
super.stationOrder,
|
|
super.completed = false,
|
|
super.optional = false,
|
|
super.completedAt,
|
|
super.completedBy,
|
|
super.taskOrder,
|
|
super.title,
|
|
super.description,
|
|
super.displayName,
|
|
});
|
|
|
|
factory SignatureTask.fromJson(Map<String, dynamic> json) {
|
|
final commonProps = Task.parseCommonProperties(json);
|
|
|
|
return SignatureTask(
|
|
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'],
|
|
);
|
|
}
|
|
|
|
@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': 'SIGNATURE', 'title': title},
|
|
};
|
|
}
|
|
|
|
@override
|
|
SignatureTask copyWith({
|
|
String? id,
|
|
String? jobId,
|
|
int? stationOrder,
|
|
bool? completed,
|
|
bool? optional,
|
|
DateTime? completedAt,
|
|
String? completedBy,
|
|
int? taskOrder,
|
|
String? title,
|
|
String? description,
|
|
String? displayName,
|
|
}) {
|
|
return SignatureTask(
|
|
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,
|
|
);
|
|
}
|
|
}
|