from fastapi import APIRouter, Response, status

from ..kafka_client import KafkaProducer

router = APIRouter(tags=["health"])


@router.get("/health")
async def health() -> dict:
    """Liveness probe — process is alive."""
    return {"status": "ok"}


@router.get("/ready")
async def ready(response: Response) -> dict:
    """Readiness probe — Kafka producer is connected and ready."""
    inst = KafkaProducer._instance
    if inst is None or not inst._started:
        response.status_code = status.HTTP_503_SERVICE_UNAVAILABLE
        return {"status": "not-ready", "kafka": "disconnected"}
    return {"status": "ready", "kafka": "connected"}


@router.get("/")
async def root() -> dict:
    return {"service": "btl-fastlane", "status": "ok"}
