"""Analytics route."""
from fastapi import APIRouter, Depends
from app.middleware.auth import require_auth
from app.repository.store import avatars_store, projects_store, videos_store
from app.utils.response import ok

router = APIRouter()


@router.get("/")
async def dashboard(_: str = Depends(require_auth)):
    p_all = projects_store.list(per_page=1000)["items"]
    v_all = videos_store.list(per_page=1000)["items"]
    status_counts = {}
    for p in p_all:
        s = p.get("status", "unknown")
        status_counts[s] = status_counts.get(s, 0) + 1

    return ok({
        "totals": {
            "avatars":   avatars_store.count(),
            "projects":  projects_store.count(),
            "videos":    videos_store.count(),
            "completed": status_counts.get("completed", 0),
            "processing": status_counts.get("processing", 0) + status_counts.get("queued", 0),
            "failed":    status_counts.get("failed", 0),
        },
        "status_breakdown": status_counts,
        "recent_videos":   sorted(v_all, key=lambda x: x.get("created_at", ""), reverse=True)[:6],
        "recent_projects": sorted(p_all, key=lambda x: x.get("created_at", ""), reverse=True)[:5],
    })
