from fastapi import APIRouter, Security from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse from fastapi_jwt import JwtAuthorizationCredentials from backend.infra.authentication.auth import access_security from backend.application.user.user_manager import ( UserManager, ) # Assuming UserManager handles user-related queries router = APIRouter() @router.get( "/get-latest-login-by-user-id/{user_id}", operation_id="get-latest-login-by-user-id", summary="Get the latest login timestamp for a given user", description="Fetches the latest login timestamp for a specific user by user_id.", response_description="Returns the latest login timestamp in Unix time seconds, or null if no login found", ) async def get_latest_login_by_user_id( user_id: str, credentials: JwtAuthorizationCredentials = Security(access_security), ): # Assume UserManager is responsible for handling user data result = await UserManager().fetch_latest_login(user_id) if result is None: return JSONResponse(content=jsonable_encoder({"timestamp": None})) return JSONResponse(content=jsonable_encoder({"timestamp": result}))