import 'package:equatable/equatable.dart';

/// Base class for all coverage events.
sealed class CoverageEvent extends Equatable {
  /// Creates a [CoverageEvent].
  const CoverageEvent();

  @override
  List<Object?> get props => <Object?>[];
}

/// Event to load coverage data for a specific date.
final class CoverageLoadRequested extends CoverageEvent {
  /// Creates a [CoverageLoadRequested] event.
  const CoverageLoadRequested({required this.date});

  /// The date to load coverage data for.
  final DateTime date;

  @override
  List<Object?> get props => <Object?>[date];
}

/// Event to refresh coverage data.
final class CoverageRefreshRequested extends CoverageEvent {
  /// Creates a [CoverageRefreshRequested] event.
  const CoverageRefreshRequested();
}
