"""Route du socle jobs (spec 2026-08-31 « socle jobs » §3).

Unique endpoint du socle : le polling web ne consomme que lui. L'enfilage se fait toujours
depuis la route métier du module concerné (`POST /imports/…`, `POST /sites/{id}/crawls`),
jamais par une route générique — un client ne choisit pas le type de job qu'il exécute.
"""

import uuid

from fastapi import APIRouter

from app.core.auth import CurrentOrgDep
from app.db.engine import SessionDep
from app.jobs import service
from app.jobs.schemas import JobOut

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


@router.get("/{job_id}")
async def get_job(user: CurrentOrgDep, session: SessionDep, job_id: uuid.UUID) -> JobOut:
    return JobOut.model_validate(await service.get_job(session, user.org_id, job_id))
