use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(deny_unknown_fields)]
pub struct SearchRequest {
pub model: String,
pub query: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_results: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub search_domain_filter: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub country: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchResponse {
pub results: Vec<SearchResult>,
pub model: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SearchResult {
pub title: String,
pub url: String,
pub snippet: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
}