"""Recents route — GET /api/recent/{project}."""

from __future__ import annotations

from fastapi import APIRouter, HTTPException, Query, status

from recoil.api.adapters.recent import list_recent

router = APIRouter()


@router.get("/recent/{project_id}")
def get_recent(
    project_id: str,
    limit: int = Query(default=50, ge=1, le=500),
    offset: int = Query(default=0, ge=0),
) -> dict:
    """Mtime-sorted recent media for a project.

    Returns {schemaVersion, files, total}. Each row carries explicit
    beat_id / episode_id / take_id (null when derivation fails).
    """
    try:
        return list_recent(project_id, limit=limit, offset=offset)
    except ValueError as exc:
        raise HTTPException(
            status_code=status.HTTP_400_BAD_REQUEST,
            detail=str(exc),
        ) from exc


__all__ = ["router"]
