presenceService = $presenceService; } public function heartbeat(Request $request) { $guard = $request->get('guard', 'web'); if (auth($guard)->check()) { $this->presenceService->updatePresence(auth($guard)->user(), $guard); return response()->json([ 'status' => 'online', 'timestamp' => now(), 'user_id' => auth($guard)->id() ]); } return response()->json(['status' => 'unauthorized'], 401); } public function setOffline(Request $request) { $guard = $request->get('guard', 'web'); if (auth($guard)->check()) { $this->presenceService->setUserOffline(auth($guard)->user(), $guard); return response()->json([ 'status' => 'offline', 'timestamp' => now(), 'user_id' => auth($guard)->id() ]); } return response()->json(['status' => 'unauthorized'], 401); } public function getOnlineUsers(Request $request) { $guard = $request->get('guard', 'web'); $users = $this->presenceService->getOnlineUsers($guard); return response()->json([ 'users' => $users, 'count' => $users->count(), 'guard' => $guard, 'updated_at' => now() ]); } }