from fastapi import APIRouter from app.api.v1.auth import router as auth_router from app.api.v1.chats import router as chats_router from app.api.v1.admin import router as admin_router from app.api.v1.skills import router as skills_router from app.api.v1.users import router as users_router from app.api.v1.documents import router as documents_router from app.api.v1.memory import router as memory_router from app.api.v1.notifications import router as notifications_router from app.api.v1.ws import router as ws_router from app.api.v1.pdf import router as pdf_router api_v1_router = APIRouter(prefix="/api/v1") api_v1_router.include_router(auth_router) api_v1_router.include_router(chats_router) api_v1_router.include_router(admin_router) api_v1_router.include_router(skills_router) api_v1_router.include_router(users_router) api_v1_router.include_router(documents_router) api_v1_router.include_router(memory_router) api_v1_router.include_router(notifications_router) api_v1_router.include_router(ws_router) api_v1_router.include_router(pdf_router) @api_v1_router.get("/health", tags=["health"]) async def health(): from sqlalchemy import text from app.database import async_session_factory db_status = "ok" try: async with async_session_factory() as db: await db.execute(text("SELECT 1")) except Exception: import logging logging.getLogger(__name__).warning("Health check DB error", exc_info=True) db_status = "error" status_val = "ok" if db_status == "ok" else "degraded" status_code = 200 if status_val == "ok" else 503 from fastapi.responses import JSONResponse return JSONResponse( status_code=status_code, content={"status": status_val, "db": db_status, "version": "0.1.0"}, )