import 'package:equatable/equatable.dart';
import 'package:syncrow_web/pages/device_managment/all_devices/models/device_reports.dart';
import 'package:syncrow_web/pages/device_managment/main_door_sensor/models/main_door_status_model.dart';

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

class MainDoorSensorInitial extends MainDoorSensorState {}

class MainDoorSensorLoadingState extends MainDoorSensorState {}

class MainDoorSensorDeviceStatusLoaded extends MainDoorSensorState {
  final MainDoorSensorStatusModel status;

  MainDoorSensorDeviceStatusLoaded(this.status);

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

class MainDoorSensorFailedState extends MainDoorSensorState {
  final String error;

  MainDoorSensorFailedState({required this.error});

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

class MainDoorSensorBatchFailedState extends MainDoorSensorState {
  final String error;

  MainDoorSensorBatchFailedState({required this.error});

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

class MainDoorSensorBatchStatusLoaded extends MainDoorSensorState {
  final List<MainDoorSensorStatusModel> status;

  MainDoorSensorBatchStatusLoaded(this.status);

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

class MainDoorSensorReportLoaded extends MainDoorSensorState {
  final DeviceReport deviceReport;

  MainDoorSensorReportLoaded(this.deviceReport);

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

class MainDoorSensorReportsLoadingState extends MainDoorSensorState {}

class MainDoorSensorReportsFailedState extends MainDoorSensorState {
  final String error;

  MainDoorSensorReportsFailedState({required this.error});

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