use axum::extract::State;
use axum::Json;
use sqlx::query::query;
use crate::api::dto::HealthResponse;
use crate::api::error::ApiError;
use crate::api::AppState;
#[utoipa::path(
get,
path = "/health",
responses(
(status = 200, description = "Service and database are reachable", body = HealthResponse),
(status = 500, description = "Database not reachable", body = crate::api::dto::ErrorBody),
),
tag = "ops",
)]
pub async fn health(State(state): State<AppState>) -> Result<Json<HealthResponse>, ApiError> {
query("SELECT 1").execute(&state.pool).await?;
Ok(Json(HealthResponse { status: "ok" }))
}