import 'package:equatable/equatable.dart';
import '../../models/annotation.dart';

abstract class PdfAnnotationState extends Equatable {
  const PdfAnnotationState();

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

class PdfAnnotationIdle extends PdfAnnotationState {}

class PdfAnnotationEditing extends PdfAnnotationState {
  final List<Annotation> annotations;
  final List<Annotation> undoStack;
  final String selectedTool;

  const PdfAnnotationEditing({
    required this.annotations,
    required this.undoStack,
    required this.selectedTool,
  });

  @override
  List<Object> get props => [annotations, undoStack, selectedTool];
}

class PdfAnnotationSaving extends PdfAnnotationState {}

class PdfAnnotationSaved extends PdfAnnotationState {}

class PdfAnnotationError extends PdfAnnotationState {
  final String message;

  const PdfAnnotationError({required this.message});

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