"""User endpoints for WealthWise API. This module provides endpoints for user management and profile operations. All endpoints require authentication via JWT tokens. """ from fastapi import APIRouter, Depends from app.api.deps import get_current_active_user, get_current_user from app.models import User from app.schemas.user import UserPublic router = APIRouter() @router.get( "/me", response_model=UserPublic, summary="Get current user information", description="Returns the authenticated user's profile information. " "This endpoint proves that authentication is working correctly.", response_description="User information (id, email, is_active)", tags=["Users"], ) async def get_current_user_info( current_user: User = Depends(get_current_user), ) -> UserPublic: """Get current authenticated user's information. This endpoint returns the user's basic information from the database. It serves as a simple way to verify that authentication is working. Args: current_user: User model injected by get_current_user dependency Returns: UserPublic with the user's id, email, and account status """ return current_user @router.get( "/me/active", response_model=UserPublic, summary="Get current active user", description="Returns the authenticated user's profile. " "Demonstrates the get_current_active_user dependency.", tags=["Users"], ) async def get_active_user_info( current_user: User = Depends(get_current_active_user), ) -> UserPublic: """Get current active user's information. This endpoint demonstrates the get_current_active_user dependency. Args: current_user: User model injected by get_current_active_user dependency Returns: UserPublic with the user's information """ return current_user