use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone, JsonSchema)]
#[serde(rename_all = "camelCase")]
pub struct SearchResponse {
pub success: bool,
pub total: usize,
pub data: Vec<SearchResultEntry>,
}
#[derive(Serialize, Deserialize, Debug, Clone, JsonSchema)]
#[serde(rename_all = "camelCase")]
pub struct SearchResultEntry {
pub url: String,
pub title: String,
pub description: String,
pub position: usize,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub content: Option<serde_json::Value>,
}
#[derive(Serialize, Deserialize, Debug, Default, JsonSchema, Clone)]
pub struct SearchOptions {
pub query: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<usize>,
}