use crate::db;
use crate::AppState;
use axum::{
    extract::State,
    response::{IntoResponse, Json},
};
use serde_json::json;

/// 健康检查端点
pub async fn health_check(State(state): State<AppState>) -> impl IntoResponse {
    let database = db::health_check(&state.pool).await.is_ok();
    Json(
        json!({"status": if database { "ok" } else { "unavailable" }, "capabilities": {
            "database": database, "redis": state.redis_client.is_some(), "email": state.config.email.enabled
        }}),
    )
}

/// 获取服务器信息
pub async fn server_info() -> impl IntoResponse {
    Json(json!({
        "name": "email-unlimit-server",
        "version": "0.1.0",
        "status": "running",
        "timestamp": chrono::Utc::now().timestamp()
    }))
}
