42 lines
1.2 KiB
Dart
42 lines
1.2 KiB
Dart
/// Modèle lavage (cycle en cours ou terminé).
|
|
class Wash {
|
|
const Wash({
|
|
required this.uuid,
|
|
required this.machineUuid,
|
|
required this.machineName,
|
|
required this.status,
|
|
required this.cost,
|
|
this.startedAt,
|
|
this.endedAt,
|
|
this.durationMinutes,
|
|
});
|
|
|
|
final String uuid;
|
|
final String machineUuid;
|
|
final String machineName;
|
|
final String status;
|
|
final double cost;
|
|
final DateTime? startedAt;
|
|
final DateTime? endedAt;
|
|
final int? durationMinutes;
|
|
|
|
factory Wash.fromJson(Map<String, dynamic> json) {
|
|
final machine = json['machine'] as Map<String, dynamic>?;
|
|
|
|
return Wash(
|
|
uuid: json['uuid'] as String,
|
|
machineUuid: machine?['uuid'] as String? ?? json['machine_uuid'] as String? ?? '',
|
|
machineName: machine?['name'] as String? ?? 'Machine',
|
|
status: json['status'] as String? ?? 'pending_start',
|
|
cost: (json['cost'] as num?)?.toDouble() ?? 0,
|
|
startedAt: json['started_at'] != null
|
|
? DateTime.tryParse(json['started_at'] as String)
|
|
: null,
|
|
endedAt: json['ended_at'] != null
|
|
? DateTime.tryParse(json['ended_at'] as String)
|
|
: null,
|
|
durationMinutes: json['duration_minutes'] as int?,
|
|
);
|
|
}
|
|
}
|