Integration fonctionnalités V1 ( resas + gestion machines
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
import '../../establishments/domain/establishment.dart';
|
||||
|
||||
/// Détails machine avec tarif et durée estimée.
|
||||
class MachineDetail {
|
||||
const MachineDetail({
|
||||
required this.machine,
|
||||
required this.price,
|
||||
required this.estimatedDurationMinutes,
|
||||
this.establishmentName,
|
||||
this.currency = 'EUR',
|
||||
});
|
||||
|
||||
final Machine machine;
|
||||
final double price;
|
||||
final int estimatedDurationMinutes;
|
||||
final String? establishmentName;
|
||||
final String currency;
|
||||
|
||||
factory MachineDetail.fromJson(Map<String, dynamic> json) {
|
||||
final machineJson = json['machine'] as Map<String, dynamic>;
|
||||
final pricing = json['pricing'] as Map<String, dynamic>?;
|
||||
|
||||
String? establishmentName;
|
||||
final establishment = machineJson['establishment'];
|
||||
if (establishment is Map<String, dynamic>) {
|
||||
establishmentName = establishment['name'] as String?;
|
||||
}
|
||||
|
||||
return MachineDetail(
|
||||
machine: Machine.fromJson(machineJson),
|
||||
price: (pricing?['price'] as num?)?.toDouble() ?? 0,
|
||||
currency: pricing?['currency'] as String? ?? 'EUR',
|
||||
estimatedDurationMinutes: json['estimated_duration_minutes'] as int? ?? 40,
|
||||
establishmentName: establishmentName,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// Créneau disponible pour réservation.
|
||||
class TimeSlot {
|
||||
const TimeSlot({required this.start, required this.end});
|
||||
|
||||
final DateTime start;
|
||||
final DateTime end;
|
||||
|
||||
factory TimeSlot.fromJson(Map<String, dynamic> json) {
|
||||
return TimeSlot(
|
||||
start: DateTime.parse(json['start'] as String),
|
||||
end: DateTime.parse(json['end'] as String),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user