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

sealed class CurtainEvent extends Equatable {
  const CurtainEvent();

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

class CurtainFetchDeviceStatus extends CurtainEvent {
  final String deviceId;

  const CurtainFetchDeviceStatus(this.deviceId);

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

class CurtainFetchBatchStatus extends CurtainEvent {
  final List<String> devicesIds;

  const CurtainFetchBatchStatus(this.devicesIds);

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

class CurtainControl extends CurtainEvent {
  final String deviceId;
  final String code;
  final bool value;

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

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

class CurtainBatchControl extends CurtainEvent {
  final List<String> devicesIds;
  final String code;
  final bool value;

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

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

class CurtainFactoryReset extends CurtainEvent {
  final String deviceId;
  final FactoryResetModel factoryReset;

  const CurtainFactoryReset(
      {required this.deviceId, required this.factoryReset});

  @override
  List<Object> get props => [deviceId, factoryReset];
}
class StatusUpdated extends CurtainEvent {
  final bool deviceStatus;
  const StatusUpdated(this.deviceStatus);
}