"""Health check endpoint — used by CI, uptime monitors, and Passenger restarts."""

from __future__ import annotations

from django.db import connection
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import AllowAny
from rest_framework.request import Request
from rest_framework.response import Response


@api_view(["GET"])
@permission_classes([AllowAny])
def health_check(_request: Request) -> Response:
    db_ok = True
    try:
        with connection.cursor() as cursor:
            cursor.execute("SELECT 1")
            cursor.fetchone()
    except Exception:
        db_ok = False

    status = "ok" if db_ok else "degraded"
    return Response({"status": status, "checks": {"database": db_ok}})
