use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct AiOptimizationLlmResponseModel {
pub model_name: Option<String>,
pub reasoning: Option<bool>,
pub web_search_supported: Option<bool>,
pub task_post_supported: Option<bool>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct AiOptimizationLlmResponseAnnotation {
pub title: Option<String>,
pub url: Option<String>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct AiOptimizationLlmResponseSection {
#[serde(rename = "type")]
pub section_type: Option<String>,
pub text: Option<String>,
pub annotations: Option<Vec<AiOptimizationLlmResponseAnnotation>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct AiOptimizationLlmResponseItem {
#[serde(rename = "type")]
pub item_type: Option<String>,
pub sections: Option<Vec<AiOptimizationLlmResponseSection>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct AiOptimizationLlmResponse {
pub model_name: Option<String>,
pub input_tokens: Option<i64>,
pub output_tokens: Option<i64>,
pub reasoning_tokens: Option<i64>,
pub web_search: Option<bool>,
pub money_spent: Option<f64>,
pub datetime: Option<String>,
pub items: Option<Vec<AiOptimizationLlmResponseItem>>,
pub fan_out_queries: Option<Value>,
}