import 'package:equatable/equatable.dart';
import 'package:syncrow_app/features/devices/model/device_info_model.dart';
import 'package:syncrow_app/features/devices/model/device_report_model.dart';
import 'package:syncrow_app/features/devices/model/flush_sensor_model.dart';

class FlushSensorState extends Equatable {
  const FlushSensorState();

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

class FlushSensorInitialState extends FlushSensorState {}

class FlushSensorLoadingInitialState extends FlushSensorState {}

class FlushSensorUpdateState extends FlushSensorState {
  final FlushSensorModel flushSensorModel;
  const FlushSensorUpdateState({required this.flushSensorModel});

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

class FlushSensorLoadingNewSate extends FlushSensorState {
  final FlushSensorModel flushSensorModel;
  const FlushSensorLoadingNewSate({required this.flushSensorModel});

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

class FlushSensorFailedState extends FlushSensorState {
  final String error;

  const FlushSensorFailedState({required this.error});

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

class FlushSensorDeviceReportsState extends FlushSensorState {
  final DeviceReport deviceReport;
  final String code;
  const FlushSensorDeviceReportsState(
      {required this.deviceReport, required this.code});
}

class FlushSensorLoadingDeviceInfo extends FlushSensorState {
  final DeviceInfoModel? deviceInfo;
  const FlushSensorLoadingDeviceInfo({this.deviceInfo});
}
