use crate::entity::SerpApiGoogleAiModeTaskAdvanced;
use crate::{DataForSeoApiResponse, SerpApiGoogle};
use serde::{Deserialize, Serialize};
impl SerpApiGoogle<'_> {
pub async fn ai_mode_live_advanced(
&self,
data: Vec<SerpApiGoogleAiModeLiveRequest>,
) -> DataForSeoApiResponse<SerpApiGoogleAiModeTaskAdvanced> {
self.client
.http_post("/v3/serp/google/ai_mode/live/advanced", &data)
.await
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiGoogleAiModeLiveRequest {
pub keyword: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub location_name: Option<String>,
pub location_code: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub location_coordinate: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
pub language_code: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub device: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub os: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub calculate_rectangles: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_height: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_resolution_ratio: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl SerpApiGoogleAiModeLiveRequest {
pub fn new(language_code: String, location_code: i32) -> Self {
SerpApiGoogleAiModeLiveRequest {
language_code,
location_code,
..SerpApiGoogleAiModeLiveRequest::default()
}
}
}