/// Modèle réservation de créneau machine. class Booking { const Booking({ required this.uuid, required this.machineUuid, required this.machineName, required this.slotStart, required this.slotEnd, required this.status, this.bookingFee = 0, }); final String uuid; final String machineUuid; final String machineName; final DateTime? slotStart; final DateTime? slotEnd; final String status; final double bookingFee; factory Booking.fromJson(Map json) { final machine = json['machine'] as Map?; return Booking( uuid: json['uuid'] as String, machineUuid: machine?['uuid'] as String? ?? json['machine_uuid'] as String? ?? '', machineName: machine?['name'] as String? ?? 'Machine', slotStart: json['slot_start'] != null ? DateTime.tryParse(json['slot_start'] as String) : null, slotEnd: json['slot_end'] != null ? DateTime.tryParse(json['slot_end'] as String) : null, status: json['status'] as String? ?? 'pending', bookingFee: (json['booking_fee'] as num?)?.toDouble() ?? 0, ); } }