from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession

from app.core.dependencies import get_current_user
from app.core.responses import api_response
from app.db.database import get_async_session
from app.schemas.preference import PreferenceUpdate
from app.services.compte_service import CompteService

router = APIRouter(prefix="/preferences", tags=["Préférences"])


@router.get("/")
async def get_preferences(
    db: AsyncSession = Depends(get_async_session),
    current_user=Depends(get_current_user),
):
    service = CompteService(db)
    data = await service.get_preferences(current_user.id)
    return api_response(data, message="Préférences récupérées")


@router.put("/")
async def update_preferences(
    body: PreferenceUpdate,
    db: AsyncSession = Depends(get_async_session),
    current_user=Depends(get_current_user),
):
    service = CompteService(db)
    data = await service.update_preferences(current_user.id, body)
    return api_response(data, message="Préférences mises à jour")
