import 'package:equatable/equatable.dart'; class ScannerState extends Equatable { final bool isScanning; final bool isProcessing; final Map? detectedBookData; final String? errorMessage; const ScannerState({ this.isScanning = false, this.isProcessing = false, this.detectedBookData, this.errorMessage, }); factory ScannerState.initial() { return const ScannerState(); } ScannerState copyWith({ bool? isScanning, bool? isProcessing, Map? detectedBookData, String? errorMessage, bool clearDetectedBookData = false, }) { return ScannerState( isScanning: isScanning ?? this.isScanning, isProcessing: isProcessing ?? this.isProcessing, detectedBookData: clearDetectedBookData ? null : (detectedBookData ?? this.detectedBookData), errorMessage: errorMessage ?? this.errorMessage, ); } @override List get props => [ isScanning, isProcessing, detectedBookData, errorMessage, ]; }