from fastapi import APIRouter, Depends

from ..auth import admin_gate
from ..services.scheduler import scheduler

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


@router.get("/status")
def status():
    return scheduler.status()


@router.post("/run-now")
def run_now(_admin=Depends(admin_gate)):
    """Trigger one scan+alert cycle immediately (admin when auth enforced)."""
    scheduler._run_cycle()  # noqa: SLF001 — intentional manual trigger
    return scheduler.status()
