from fastapi import APIRouter
from fastapi.responses import JSONResponse

from app.api.readiness import readiness_payload
from app.api.routes.agent import router as agent_router
from app.api.routes.health import router as health_router
from app.api.routes.meta import router as meta_router
from app.api.routes.models import router as models_router
from app.api.routes.query import router as query_router
from app.api.routes.repos import router as repos_router
from app.api.routes.search import router as search_router

router = APIRouter(prefix="/api/v1")

router.include_router(health_router)
router.include_router(meta_router)
router.include_router(search_router)
router.include_router(query_router)
router.include_router(agent_router)
router.include_router(repos_router)
router.include_router(models_router)


@router.get("/readyz")
async def api_readyz():
    body, status_code = await readiness_payload()
    return JSONResponse(status_code=status_code, content=body)
