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,
      );
}
