use crate::entity::DataForSeoLabsKeywordData;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppKeywordItem {
pub se_type: Option<String>,
pub ranked_serp_element: Option<DataForSeoLabsAppRankedSerpElement>,
pub keyword_data: Option<DataForSeoLabsKeywordData>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppRankedSerpElement {
pub se_type: Option<String>,
pub serp_item: Option<DataForSeoLabsAppSerpItem>,
pub check_url: Option<String>,
pub last_updated_time: Option<String>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppSerpItem {
pub se_type: Option<String>,
#[serde(rename = "type")]
pub item_type: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub app_id: Option<String>,
pub title: Option<String>,
pub url: Option<String>,
pub icon: Option<String>,
pub is_free: Option<bool>,
pub price: Option<DataForSeoLabsAppPrice>,
pub rating: Option<DataForSeoLabsAppRating>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppPrice {
pub current: Option<f64>,
pub currency: Option<String>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppRating {
pub rating_type: Option<String>,
pub value: Option<f64>,
pub votes_count: Option<i64>,
pub rating_max: Option<i64>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppMetricsInfo {
pub pos_1: Option<i64>,
pub pos_2_3: Option<i64>,
pub pos_4_10: Option<i64>,
pub pos_11_100: Option<i64>,
pub count: Option<i64>,
pub search_volume: Option<i64>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppCompetitorItem {
pub se_type: Option<String>,
pub app_id: Option<String>,
pub avg_position: Option<f64>,
pub sum_position: Option<i64>,
pub intersections: Option<i64>,
pub competitor_metrics: Option<HashMap<String, DataForSeoLabsAppMetricsInfo>>,
pub full_metrics: Option<HashMap<String, DataForSeoLabsAppMetricsInfo>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsAppIntersectionItem {
pub se_type: Option<String>,
pub keyword_data: Option<DataForSeoLabsKeywordData>,
pub intersection_result: Option<HashMap<String, DataForSeoLabsAppSerpItem>>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct DataForSeoLabsBulkAppMetricsItem {
pub se_type: Option<String>,
pub app_id: Option<String>,
pub metrics: Option<HashMap<String, DataForSeoLabsAppMetricsInfo>>,
}