import 'package:equatable/equatable.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/factory_reset_model.dart';
import 'package:syncrow_web/pages/device_managment/one_gang_switch/models/wall_light_status_model.dart';

class WallLightSwitchEvent extends Equatable {
  @override
  List<Object?> get props => [];
}

class WallLightSwitchFetchDeviceEvent extends WallLightSwitchEvent {
  final String deviceId;

  WallLightSwitchFetchDeviceEvent(this.deviceId);

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

class WallLightSwitchControl extends WallLightSwitchEvent {
  final String deviceId;
  final String code;
  final bool value;

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

  @override
  List<Object> get props => [deviceId, code, value];
}

class WallLightSwitchFetchBatchEvent extends WallLightSwitchEvent {
  final List<String> devicesIds;

  WallLightSwitchFetchBatchEvent(this.devicesIds);

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

class WallLightSwitchBatchControl extends WallLightSwitchEvent {
  final List<String> devicesIds;
  final String code;
  final bool value;

  WallLightSwitchBatchControl(
      {required this.devicesIds, required this.code, required this.value});

  @override
  List<Object> get props => [devicesIds, code, value];
}

class WallLightFactoryReset extends WallLightSwitchEvent {
  final String deviceId;
  final FactoryResetModel factoryReset;

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

  @override
  List<Object> get props => [deviceId, factoryReset];
}

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