import 'package:equatable/equatable.dart';

sealed class RolesPermissionState extends Equatable {
  const RolesPermissionState();
}

final class RolesInitial extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class RolesLoadingState extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class UsersLoadingState extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class RolesLoadedState extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class UsersLoadedState extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class ErrorState extends RolesPermissionState {
  final String message;

  const ErrorState(this.message);

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

/// report state
final class SosReportLoadingState extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class RolesErrorState extends RolesPermissionState {
  final String message;

  const RolesErrorState(this.message);

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

/// automation reports

final class SosAutomationReportLoadingState extends RolesPermissionState {
  @override
  List<Object> get props => [];
}

final class SosAutomationReportErrorState extends RolesPermissionState {
  final String message;

  const SosAutomationReportErrorState(this.message);

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

final class ChangeTapStatus extends RolesPermissionState {
  final bool select;

  const ChangeTapStatus({required this.select});

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