import 'package:equatable/equatable.dart';

import '../../../domain/entities/monitor_state.dart';

abstract class MonitorEvent extends Equatable {
  const MonitorEvent();

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

/// Select a monitor for camera switching
class SelectMonitor extends MonitorEvent {
  final int monitorId;

  const SelectMonitor(this.monitorId);

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

/// Clear the selected monitor
class ClearMonitor extends MonitorEvent {
  final int monitorId;

  const ClearMonitor(this.monitorId);

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

/// Clear selection
class ClearMonitorSelection extends MonitorEvent {
  const ClearMonitorSelection();
}

/// Monitor states updated (internal)
class MonitorStatesUpdated extends MonitorEvent {
  final Map<int, MonitorState> states;

  const MonitorStatesUpdated(this.states);

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