"""API геймификации (ТЗ 3.13): XP, уровень, прогресс, события начисления."""

from typing import Any

from fastapi import APIRouter

from app.dependencies import DbDep, UserDep
from app.services.xp import xp_events, xp_summary

router = APIRouter(prefix="/api/xp", tags=["xp"])


@router.get("")
async def get_xp(db: DbDep, user: UserDep) -> dict[str, Any]:
    """Сводка: суммарный XP, уровень, прогресс до следующего."""
    return xp_summary(db)


@router.get("/events")
async def get_xp_events(db: DbDep, user: UserDep) -> list[dict[str, Any]]:
    """Все события начисления: редкость растения, признак «из 3 вариантов», даты."""
    return xp_events(db)
