fAdd phone number support to user authentication events and methods

This commit is contained in:
Van Leemput Dayron
2025-11-05 13:09:12 +01:00
parent 5977f4d0da
commit fa7daca50a
7 changed files with 685 additions and 188 deletions

View File

@@ -1,7 +1,7 @@
import 'package:equatable/equatable.dart';
/// Abstract base class for all authentication-related events.
///
///
/// This class extends [Equatable] to enable value equality for event comparison.
/// All authentication events in the application should inherit from this class.
abstract class AuthEvent extends Equatable {
@@ -13,59 +13,60 @@ abstract class AuthEvent extends Equatable {
}
/// Event to check the current authentication status.
///
///
/// This event is typically dispatched when the app starts to determine
/// if a user is already authenticated.
class AuthCheckRequested extends AuthEvent {}
/// Event to request user sign-in with email and password.
///
///
/// This event contains the user's credentials and triggers the authentication
/// process when dispatched to the [AuthBloc].
class AuthSignInRequested extends AuthEvent {
/// The user's email address.
final String email;
/// The user's password.
final String password;
/// Creates a new [AuthSignInRequested] event.
///
///
/// Both [email] and [password] are required parameters.
const AuthSignInRequested({
required this.email,
required this.password,
});
const AuthSignInRequested({required this.email, required this.password});
@override
List<Object?> get props => [email, password];
}
/// Event to request user registration with email, password, and personal information.
///
///
/// This event contains all necessary information to create a new user account
/// and triggers the registration process when dispatched to the [AuthBloc].
class AuthSignUpRequested extends AuthEvent {
/// The user's email address.
final String email;
/// The user's password.
final String password;
/// The user's last name.
final String nom;
/// The user's first name.
final String prenom;
/// The user's phone number.
final String phoneNumber;
/// Creates a new [AuthSignUpRequested] event.
///
///
/// All parameters are required for user registration.
const AuthSignUpRequested({
required this.email,
required this.password,
required this.nom,
required this.prenom,
required this.phoneNumber,
});
@override
@@ -73,23 +74,49 @@ class AuthSignUpRequested extends AuthEvent {
}
/// Event to request user sign-in using Google authentication.
///
///
/// This event triggers the Google sign-in flow when dispatched to the [AuthBloc].
class AuthGoogleSignInRequested extends AuthEvent {}
class AuthGoogleSignUpRequested extends AuthEvent {
/// The user's phone number.
final String phoneNumber;
/// Creates a new [AuthGoogleSignUpRequested] event.
///
/// The [phoneNumber] parameter is required.
const AuthGoogleSignUpRequested({required this.phoneNumber});
@override
List<Object?> get props => [phoneNumber];
}
/// Event to request user sign-in using Apple authentication.
///
///
/// This event triggers the Apple sign-in flow when dispatched to the [AuthBloc].
class AuthAppleSignInRequested extends AuthEvent {}
class AuthAppleSignUpRequested extends AuthEvent {
/// The user's phone number.
final String phoneNumber;
/// Creates a new [AuthAppleSignUpRequested] event.
///
/// The [phoneNumber] parameter is required.
const AuthAppleSignUpRequested({required this.phoneNumber});
@override
List<Object?> get props => [phoneNumber];
}
/// Event to request user sign-out.
///
///
/// This event triggers the sign-out process and clears the user session
/// when dispatched to the [AuthBloc].
class AuthSignOutRequested extends AuthEvent {}
/// Event to request a password reset for a user account.
///
///
/// This event triggers the password reset process by sending a reset email
/// to the specified email address.
class AuthPasswordResetRequested extends AuthEvent {
@@ -97,10 +124,10 @@ class AuthPasswordResetRequested extends AuthEvent {
final String email;
/// Creates a new [AuthPasswordResetRequested] event.
///
///
/// The [email] parameter is required.
const AuthPasswordResetRequested({required this.email});
@override
List<Object?> get props => [email];
}
}