import 'package:equatable/equatable.dart';

/// Base class for all Personal Info events.
abstract class PersonalInfoEvent extends Equatable {
  const PersonalInfoEvent();

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

/// Event to load personal information.
class PersonalInfoLoadRequested extends PersonalInfoEvent {
  const PersonalInfoLoadRequested();
}

/// Event to update a field value.
class PersonalInfoFieldUpdated extends PersonalInfoEvent {
  final String field;
  final String value;

  const PersonalInfoFieldUpdated({
    required this.field,
    required this.value,
  });

  @override
  List<Object?> get props => [field, value];
}

/// Event to save personal information.
class PersonalInfoSaveRequested extends PersonalInfoEvent {
  const PersonalInfoSaveRequested();
}

/// Event to upload a profile photo.
class PersonalInfoPhotoUploadRequested extends PersonalInfoEvent {
  final String filePath;

  const PersonalInfoPhotoUploadRequested({required this.filePath});

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