from fastapi import APIRouter
from fastapi.responses import JSONResponse

from app.api.readiness import readiness_payload
from app.api.routes.chunks import router as chunks_router
from app.api.routes.embeddings import router as embedding_router
from app.api.routes.health import router as health_router
from app.api.routes.ingest import router as ingest_router
from app.api.routes.meta import router as meta_router
from app.api.routes.pipeline import router as pipeline_router
from app.api.routes.search import router as search_router
from app.api.routes.slack_sync import router as slack_sync_router

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

router.include_router(health_router)
router.include_router(meta_router)
router.include_router(pipeline_router)
router.include_router(ingest_router)
router.include_router(chunks_router)
router.include_router(embedding_router)
router.include_router(search_router)
router.include_router(slack_sync_router)


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