import 'package:equatable/equatable.dart'; import 'package:syncrow_web/pages/device_managment/ac/model/ac_model.dart'; abstract class AcsState extends Equatable { final bool isTimerActive; const AcsState({this.isTimerActive = false}); @override List get props => []; } class AcsInitialState extends AcsState {} class AcsLoadingState extends AcsState {} class ACStatusLoaded extends AcsState { final AcStatusModel status; final DateTime timestamp; final int scheduledHours; final int scheduledMinutes; @override final bool isTimerActive; ACStatusLoaded({ required this.status, this.scheduledHours = 0, this.scheduledMinutes = 0, this.isTimerActive = false, }) : timestamp = DateTime.now(); ACStatusLoaded copyWith({ AcStatusModel? status, int? scheduledHours, int? scheduledMinutes, bool? isTimerActive, int? remainingTime, }) { return ACStatusLoaded( status: status ?? this.status, scheduledHours: scheduledHours ?? this.scheduledHours, scheduledMinutes: scheduledMinutes ?? this.scheduledMinutes, isTimerActive: isTimerActive ?? this.isTimerActive, ); } @override List get props => [status, timestamp]; } class AcBatchStatusLoaded extends AcsState { final AcStatusModel status; final DateTime timestamp; AcBatchStatusLoaded(this.status) : timestamp = DateTime.now(); @override List get props => [status, timestamp]; } class AcsFailedState extends AcsState { final String error; const AcsFailedState({required this.error}); @override List get props => [error]; } class TimerRunInProgress extends AcsState { final int remainingTime; const TimerRunInProgress(this.remainingTime); @override List get props => [remainingTime]; }