validate([ 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:8|confirmed', 'role' => 'required|in:student,teacher,guardian', ]); $user = clone new User(); $user->name = $request->name; $user->email = $request->email; $user->password = Hash::make($request->password); $user->role = $request->role; $user->save(); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', 'user' => $user, ], 201); } public function login(Request $request) { $request->validate([ 'email' => 'required|string|email', 'password' => 'required|string', ]); $user = User::where('email', $request->email)->first(); if (!$user || !Hash::check($request->password, $user->password)) { throw ValidationException::withMessages([ 'email' => ['البيانات المدخلة غير صحيحة.'], ]); } // Revoke all previous tokens for security if needed $user->tokens()->delete(); $token = $user->createToken('auth_token')->plainTextToken; return response()->json([ 'access_token' => $token, 'token_type' => 'Bearer', 'user' => $user, ]); } public function logout(Request $request) { $request->user()->currentAccessToken()->delete(); return response()->json([ 'message' => 'تم تسجيل الخروج بنجاح.' ]); } public function deleteAccount(Request $request) { $user = $request->user(); // Revoke all tokens $user->tokens()->delete(); // Delete user (soft delete if configured, or hard delete) $user->delete(); return response()->json([ 'message' => 'تم حذف الحساب بنجاح.' ]); } }