part of 'two_gang_glass_switch_bloc.dart';

@immutable
abstract class TwoGangGlassSwitchEvent {}

class TwoGangGlassSwitchFetchDeviceEvent extends TwoGangGlassSwitchEvent {
  final String deviceId;

  TwoGangGlassSwitchFetchDeviceEvent(this.deviceId);
}

class TwoGangGlassSwitchControl extends TwoGangGlassSwitchEvent {
  final String deviceId;
  final String code;
  final bool value;

  TwoGangGlassSwitchControl({
    required this.deviceId,
    required this.code,
    required this.value,
  });
}

class TwoGangGlassSwitchBatchControl extends TwoGangGlassSwitchEvent {
  final List<String> deviceIds;
  final String code;
  final bool value;

  TwoGangGlassSwitchBatchControl({
    required this.deviceIds,
    required this.code,
    required this.value,
  });
}

class TwoGangGlassSwitchFetchBatchStatusEvent extends TwoGangGlassSwitchEvent {
  final List<String> deviceIds;

  TwoGangGlassSwitchFetchBatchStatusEvent(this.deviceIds);
}

class TwoGangGlassFactoryReset extends TwoGangGlassSwitchEvent {
  final String deviceId;
  final FactoryResetModel factoryReset;

  TwoGangGlassFactoryReset({
    required this.deviceId,
    required this.factoryReset,
  });
}

class StatusUpdated extends TwoGangGlassSwitchEvent {
  final TwoGangGlassStatusModel deviceStatus;
  StatusUpdated(this.deviceStatus);
  @override
  List<Object> get props => [deviceStatus];
}

