part of 'create_scene_bloc.dart';

sealed class CreateSceneState extends Equatable {
  const CreateSceneState();

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

final class CreateSceneInitial extends CreateSceneState {}

class CreateSceneLoading extends CreateSceneState {}

class CreateSceneError extends CreateSceneState {
  final String message;
  const CreateSceneError({required this.message});

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

class AddSceneTask extends CreateSceneState {
  final List<SceneStaticFunction> tasksList;
  final List<SceneStaticFunction>? automationTasksList;
  final String? condition;
  final String? selectedIcon;
  final List<IconModel>? iconModels;
  final bool? showInDevice;
  const AddSceneTask(
      {required this.tasksList,
      this.automationTasksList,
      this.condition,
      this.iconModels,
      this.selectedIcon,
      this.showInDevice});

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

class TempHoldSceneTask extends CreateSceneState {
  final List<SceneStaticFunction> tempTasksList;
  final List<SceneStaticFunction>? automationTempTasksList;
  const TempHoldSceneTask({required this.tempTasksList, this.automationTempTasksList});

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

class SelectedTaskValueState extends CreateSceneState {
  final dynamic value;
  const SelectedTaskValueState({required this.value});

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

class CreateSceneWithTasks extends CreateSceneState {
  final bool success;
  const CreateSceneWithTasks({required this.success});

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

class DeleteSceneSuccess extends CreateSceneState {
  final bool success;
  const DeleteSceneSuccess(this.success);

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

class DeleteSceneError extends CreateSceneState {
  final String message;
  const DeleteSceneError({required this.message});

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

class DeleteSceneLoading extends CreateSceneState {}

class ConditionSelectedState extends CreateSceneState {
  final String condition;

  const ConditionSelectedState(this.condition);
}

class SceneTypeState extends CreateSceneState {
  final CreateSceneEnum type;
  const SceneTypeState(this.type);
}
