import 'package:equatable/equatable.dart';

class ReportIndexState extends Equatable {
  final Map<String, dynamic> reportHeader;
  final Map<String, dynamic> reportMetrics;
  final Map<String, dynamic> weeklyPowerUsage;
  final Map<String, dynamic> roomStatusDistribution;
  final Map<String, dynamic> deviceOnlineRate;
  final Map<String, dynamic> quickActions;

  const ReportIndexState({
    this.reportHeader = const {},
    this.reportMetrics = const {},
    this.weeklyPowerUsage = const {},
    this.roomStatusDistribution = const {},
    this.deviceOnlineRate = const {},
    this.quickActions = const {},
  });

  ReportIndexState copyWith({
    Map<String, dynamic>? reportHeader,
    Map<String, dynamic>? reportMetrics,
    Map<String, dynamic>? weeklyPowerUsage,
    Map<String, dynamic>? roomStatusDistribution,
    Map<String, dynamic>? deviceOnlineRate,
    Map<String, dynamic>? quickActions,
  }) {
    return ReportIndexState(
      reportHeader: reportHeader ?? this.reportHeader,
      reportMetrics: reportMetrics ?? this.reportMetrics,
      weeklyPowerUsage: weeklyPowerUsage ?? this.weeklyPowerUsage,
      roomStatusDistribution: roomStatusDistribution ?? this.roomStatusDistribution,
      deviceOnlineRate: deviceOnlineRate ?? this.deviceOnlineRate,
      quickActions: quickActions ?? this.quickActions,
    );
  }

  @override
  List<Object?> get props => [
        reportHeader,
        reportMetrics,
        weeklyPowerUsage,
        roomStatusDistribution,
        deviceOnlineRate,
        quickActions,
      ];
}