use serde::{Deserialize, Serialize};
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsExplore {
pub keywords: Option<Vec<String>>,
#[serde(rename = "type")]
pub explore_type: Option<String>,
pub location_code: Option<i32>,
pub language_code: Option<String>,
pub check_url: Option<String>,
pub datetime: Option<String>,
pub items_count: Option<i64>,
pub items: Option<Vec<KeywordsDataApiGoogleTrendsItem>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum KeywordsDataApiGoogleTrendsItem {
GoogleTrendsGraph(KeywordsDataApiGoogleTrendsGraph),
GoogleTrendsMap(KeywordsDataApiGoogleTrendsMap),
GoogleTrendsTopicsList(KeywordsDataApiGoogleTrendsTopicsList),
GoogleTrendsQueriesList(KeywordsDataApiGoogleTrendsQueriesList),
#[serde(other)]
#[default]
Unknown,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsGraph {
pub position: Option<i32>,
pub title: Option<String>,
pub keywords: Option<Vec<String>>,
pub data: Option<Vec<KeywordsDataApiGoogleTrendsGraphData>>,
pub averages: Option<Vec<i64>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsGraphData {
pub date_from: Option<String>,
pub date_to: Option<String>,
pub timestamp: Option<i64>,
pub missing_data: Option<bool>,
pub values: Option<Vec<i64>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsMap {
pub position: Option<i32>,
pub title: Option<String>,
pub keywords: Option<Vec<String>>,
pub data: Option<Vec<KeywordsDataApiGoogleTrendsMapData>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsMapData {
pub geo_id: Option<String>,
pub geo_name: Option<String>,
pub values: Option<Vec<i64>>,
pub max_value_index: Option<i32>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsTopicsList {
pub position: Option<i32>,
pub title: Option<String>,
pub keywords: Option<Vec<String>>,
pub data: Option<KeywordsDataApiGoogleTrendsTopicsData>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsTopicsData {
pub top: Option<Vec<KeywordsDataApiGoogleTrendsTopic>>,
pub rising: Option<Vec<KeywordsDataApiGoogleTrendsTopic>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsTopic {
pub topic_id: Option<String>,
pub topic_title: Option<String>,
pub topic_type: Option<String>,
pub value: Option<String>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsQueriesList {
pub position: Option<i32>,
pub title: Option<String>,
pub keywords: Option<Vec<String>>,
pub data: Option<KeywordsDataApiGoogleTrendsQueriesData>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsQueriesData {
pub top: Option<Vec<KeywordsDataApiGoogleTrendsQuery>>,
pub rising: Option<Vec<KeywordsDataApiGoogleTrendsQuery>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct KeywordsDataApiGoogleTrendsQuery {
pub query: Option<String>,
pub value: Option<String>,
}