from fastapi import APIRouter, Depends from sqlalchemy.ext.asyncio import AsyncSession from app.database import get_db from app.deps import get_current_user from app.models.user import User from app.schemas.user import DashboardPrefsOut, DashboardPrefsUpdate, UserOut router = APIRouter() @router.get("/me", response_model=UserOut) async def get_me(current_user: User = Depends(get_current_user)): return current_user @router.get("/me/preferences", response_model=DashboardPrefsOut) async def get_preferences(current_user: User = Depends(get_current_user)): return DashboardPrefsOut(app_ids=current_user.dashboard_app_ids or []) @router.patch("/me/preferences", response_model=DashboardPrefsOut) async def update_preferences( body: DashboardPrefsUpdate, current_user: User = Depends(get_current_user), db: AsyncSession = Depends(get_db), ): current_user.dashboard_app_ids = body.app_ids await db.commit() await db.refresh(current_user) return DashboardPrefsOut(app_ids=current_user.dashboard_app_ids or [])