part of 'one_gang_glass_switch_bloc.dart';

@immutable
abstract class OneGangGlassSwitchEvent {}

class OneGangGlassSwitchFetchDeviceEvent extends OneGangGlassSwitchEvent {
  final String deviceId;

  OneGangGlassSwitchFetchDeviceEvent(this.deviceId);
}

class OneGangGlassSwitchControl extends OneGangGlassSwitchEvent {
  final String deviceId;
  final String code;
  final bool value;

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

class OneGangGlassSwitchBatchControl extends OneGangGlassSwitchEvent {
  final List<String> deviceIds;
  final String code;
  final bool value;

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

class OneGangGlassSwitchFetchBatchStatusEvent extends OneGangGlassSwitchEvent {
  final List<String> deviceIds;

  OneGangGlassSwitchFetchBatchStatusEvent(this.deviceIds);
}

class StatusUpdated extends OneGangGlassSwitchEvent {
  final OneGangGlassStatusModel deviceStatus;
  StatusUpdated(this.deviceStatus);
}

class OneGangGlassFactoryResetEvent extends OneGangGlassSwitchEvent {
  final FactoryResetModel factoryReset;
  final String deviceId;

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