import 'package:equatable/equatable.dart'; import '../../data/models/user_model.dart'; abstract class AuthState extends Equatable { const AuthState(); @override List get props => []; } // English: Initial state when the app is checking for existing authentication tokens. // Arabic: الحالة الأولية عندما يقوم التطبيق بالتحقق من وجود رموز مصادقة حالية. class AuthInitial extends AuthState { const AuthInitial(); } // English: Loading state shown during credential verification or API login request. // Arabic: حالة التحميل المعروضة أثناء التحقق من بيانات الاعتماد أو طلب تسجيل الدخول. class AuthLoading extends AuthState { const AuthLoading(); } // English: State emitted when the user successfully authenticates. Contains user details. // Arabic: الحالة المرسلة عندما ينجح المستخدم في المصادقة. تحتوي على تفاصيل المستخدم. class Authenticated extends AuthState { final UserModel user; const Authenticated(this.user); @override List get props => [user]; } // English: State emitted when the user is not authenticated or has logged out. // Arabic: الحالة المرسلة عندما لا يكون المستخدم مصدقًا أو قد سجل خروجه. class Unauthenticated extends AuthState { const Unauthenticated(); } // English: Failure state containing the error message in case authentication fails. // Arabic: حالة الفشل التي تحتوي على رسالة الخطأ في حالة فشل المصادقة. class AuthFailure extends AuthState { final String errorMessage; const AuthFailure(this.errorMessage); @override List get props => [errorMessage]; }