from fastapi import APIRouter from app.api.deps import CurrentUser, SessionDep from app.schemas.user import UserRead, UserSelfPersonUpdate from app.services import user_service router = APIRouter(prefix="/users", tags=["users"]) @router.get("/me", response_model=UserRead) async def read_me(current: CurrentUser) -> UserRead: return UserRead.model_validate(current) @router.patch("/me/self-person", response_model=UserRead) async def set_self_person( data: UserSelfPersonUpdate, session: SessionDep, current: CurrentUser ) -> UserRead: """Link (or unlink) the Person record that represents this account.""" user = await user_service.set_self_person( session, user=current, person_id=data.self_person_id ) return UserRead.model_validate(user)