import '../../models/models.dart'; class ScannerState { final bool isInitialized; final bool isCapturing; final bool isAnalyzing; final bool hasPermissionError; final String? errorMessage; final Book? analyzedBook; const ScannerState({ this.isInitialized = false, this.isCapturing = false, this.isAnalyzing = false, this.hasPermissionError = false, this.errorMessage, this.analyzedBook, }); ScannerState copyWith({ bool? isInitialized, bool? isCapturing, bool? isAnalyzing, bool? hasPermissionError, String? errorMessage, Book? analyzedBook, bool clearError = false, bool clearBook = false, }) { return ScannerState( isInitialized: isInitialized ?? this.isInitialized, isCapturing: isCapturing ?? this.isCapturing, isAnalyzing: isAnalyzing ?? this.isAnalyzing, hasPermissionError: hasPermissionError ?? this.hasPermissionError, errorMessage: clearError ? null : (errorMessage ?? this.errorMessage), analyzedBook: clearBook ? null : (analyzedBook ?? this.analyzedBook), ); } }