"""Health check router.""" from fastapi import APIRouter, Depends from sqlalchemy import text from sqlalchemy.ext.asyncio import AsyncSession from app.database import get_db, engine from app.cache import cache router = APIRouter(prefix="/api/health", tags=["health"]) @router.get("") async def health_check(db: AsyncSession = Depends(get_db)) -> dict: """Return health status: app, db, redis.""" db_ok = "connected" redis_ok = "connected" try: await db.execute(text("SELECT 1")) except Exception: db_ok = "disconnected" try: await cache.connect() await cache._redis.ping() except Exception: redis_ok = "disconnected" return {"status": "ok", "db": db_ok, "redis": redis_ok}