use std::collections::BTreeMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Default, Deserialize, schemars::JsonSchema)]
pub struct SearchInput {
pub query: String,
}
#[derive(Debug, Clone, Default, Deserialize, schemars::JsonSchema)]
pub struct FetchInput {
pub id: String,
}
#[derive(Debug, Clone, Serialize, schemars::JsonSchema, PartialEq, Eq)]
pub struct SearchResult {
pub id: String,
pub title: String,
pub url: String,
}
#[derive(Debug, Clone, Serialize, schemars::JsonSchema, PartialEq, Eq)]
pub struct SearchOutput {
pub results: Vec<SearchResult>,
}
#[derive(Debug, Clone, Serialize, schemars::JsonSchema, PartialEq)]
pub struct FetchOutput {
pub id: String,
pub title: String,
pub text: String,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<BTreeMap<String, Value>>,
}