"""Profile routes for user contact details.""" from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from auth import require_permission from database import get_db from models import Permission, User from schemas import ProfileResponse, ProfileUpdate from services.profile import ProfileService router = APIRouter(prefix="/api/profile", tags=["profile"]) @router.get("", response_model=ProfileResponse) async def get_profile( current_user: User = Depends(require_permission(Permission.MANAGE_OWN_PROFILE)), db: AsyncSession = Depends(get_db), ) -> ProfileResponse: """Get the current user's profile (contact details and godfather).""" service = ProfileService(db) return await service.get_profile(current_user) @router.put("", response_model=ProfileResponse) async def update_profile( data: ProfileUpdate, db: AsyncSession = Depends(get_db), current_user: User = Depends(require_permission(Permission.MANAGE_OWN_PROFILE)), ) -> ProfileResponse: """Update the current user's profile (contact details).""" service = ProfileService(db) return await service.update_profile(current_user, data)