use crate::models::ProxyServerInfo;
use crate::state::AppState;
use axum::{extract::State, response::IntoResponse, Json};
pub async fn list_servers(State(state): State<AppState>) -> impl IntoResponse {
let servers = state.servers.lock().await;
let server_list_display: Vec<ProxyServerInfo> = servers
.iter()
.map(|server| ProxyServerInfo {
model_name: server.model_name.clone(),
addr: server.addr.clone(),
avg_response_time_ms: Some(server.metrics.avg_response_time_ms),
total_requests: Some(server.metrics.total_requests),
recent_failures: Some(server.metrics.recent_failures),
})
.collect();
Json(server_list_display)
}