41 lines
1.3 KiB
Dart
41 lines
1.3 KiB
Dart
class DashboardMetrics {
|
|
final int totalReservations;
|
|
final int activeReservations;
|
|
final double totalRevenue;
|
|
final int totalVehicles;
|
|
final int availableVehicles;
|
|
final int totalCustomers;
|
|
final double occupancyRate;
|
|
|
|
const DashboardMetrics({
|
|
required this.totalReservations,
|
|
required this.activeReservations,
|
|
required this.totalRevenue,
|
|
required this.totalVehicles,
|
|
required this.availableVehicles,
|
|
required this.totalCustomers,
|
|
required this.occupancyRate,
|
|
});
|
|
|
|
factory DashboardMetrics.fromJson(Map<String, dynamic> json) =>
|
|
DashboardMetrics(
|
|
totalReservations: json['totalReservations'] as int? ?? 0,
|
|
activeReservations: json['activeReservations'] as int? ?? 0,
|
|
totalRevenue: (json['totalRevenue'] as num?)?.toDouble() ?? 0,
|
|
totalVehicles: json['totalVehicles'] as int? ?? 0,
|
|
availableVehicles: json['availableVehicles'] as int? ?? 0,
|
|
totalCustomers: json['totalCustomers'] as int? ?? 0,
|
|
occupancyRate: (json['occupancyRate'] as num?)?.toDouble() ?? 0,
|
|
);
|
|
|
|
factory DashboardMetrics.empty() => const DashboardMetrics(
|
|
totalReservations: 0,
|
|
activeReservations: 0,
|
|
totalRevenue: 0,
|
|
totalVehicles: 0,
|
|
availableVehicles: 0,
|
|
totalCustomers: 0,
|
|
occupancyRate: 0,
|
|
);
|
|
}
|