part of 'personal_info_bloc.dart';

@immutable
sealed class PersonalInfoEvent {
  const PersonalInfoEvent();
}

class InitializeProfileInfoEvent extends PersonalInfoEvent {
  const InitializeProfileInfoEvent(this.isInEditMode);

  final bool isInEditMode;
}

class UpdateProfileImage extends PersonalInfoEvent {
  const UpdateProfileImage(this.imagePath);

  final String imagePath;
}

class UpdateFirstName extends PersonalInfoEvent {
  const UpdateFirstName(this.firstName);

  final String firstName;
}

class UpdateLastName extends PersonalInfoEvent {
  const UpdateLastName(this.lastName);

  final String lastName;
}

class UpdateMiddleName extends PersonalInfoEvent {
  const UpdateMiddleName(this.middleName);

  final String middleName;
}

class UpdateEmail extends PersonalInfoEvent {
  const UpdateEmail(this.email);

  final String email;
}

class UpdatePhoneNumber extends PersonalInfoEvent {
  const UpdatePhoneNumber(this.phoneNumber);

  final String phoneNumber;
}

class UpdateEmailVerificationStatus extends PersonalInfoEvent {
  const UpdateEmailVerificationStatus({required this.isEmailVerified});

  final bool isEmailVerified;
}

class SaveProfileChanges extends PersonalInfoEvent {
  const SaveProfileChanges({this.shouldSkipEmailVerification = false});

  final bool shouldSkipEmailVerification;
}
