from typing import Annotated from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.api.deps import get_current_user from app.database import get_db from app.models.user import User from app.schemas.chat import ContextFileResponse, UpdateContextRequest from app.services import context_service router = APIRouter(prefix="/users", tags=["users"]) @router.get("/me/context", response_model=ContextFileResponse | None) async def get_personal_context( user: Annotated[User, Depends(get_current_user)], db: Annotated[AsyncSession, Depends(get_db)], ): ctx = await context_service.get_personal_context(db, user.id) if not ctx: return None return ContextFileResponse.model_validate(ctx) @router.put("/me/context", response_model=ContextFileResponse) async def update_personal_context( data: UpdateContextRequest, user: Annotated[User, Depends(get_current_user)], db: Annotated[AsyncSession, Depends(get_db)], ): ctx = await context_service.upsert_personal_context(db, user.id, data.content) return ContextFileResponse.model_validate(ctx)