use crate::ui::state::AppState;
use axum::Json;
use axum::extract::{Query, State};
use serde::Deserialize;
use serde_json::{Value, json};
use std::sync::Arc;
#[derive(Deserialize)]
pub struct SearchQuery {
pub q: String,
}
pub async fn search(
State(state): State<Arc<AppState>>,
Query(query): Query<SearchQuery>,
) -> Json<Value> {
let matches = state.registry.discovery.find_presets(&query.q);
let results: Vec<Value> = matches
.into_iter()
.map(|m| json!({ "name": m.name, "score": m.score }))
.collect();
Json(json!({ "results": results }))
}