use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateAdInsightsReportRequest {
#[serde(rename = "accountId")]
pub account_id: String,
#[serde(rename = "objectId")]
pub object_id: String,
#[serde(rename = "level", skip_serializing_if = "Option::is_none")]
pub level: Option<Level>,
#[serde(rename = "fields", skip_serializing_if = "Option::is_none")]
pub fields: Option<String>,
#[serde(rename = "breakdowns", skip_serializing_if = "Option::is_none")]
pub breakdowns: Option<String>,
#[serde(rename = "filtering", skip_serializing_if = "Option::is_none")]
pub filtering: Option<Vec<models::CreateAdInsightsReportRequestFilteringInner>>,
#[serde(rename = "datePreset", skip_serializing_if = "Option::is_none")]
pub date_preset: Option<String>,
#[serde(rename = "fromDate", skip_serializing_if = "Option::is_none")]
pub from_date: Option<String>,
#[serde(rename = "toDate", skip_serializing_if = "Option::is_none")]
pub to_date: Option<String>,
#[serde(rename = "timeIncrement", skip_serializing_if = "Option::is_none")]
pub time_increment: Option<Box<models::CreateAdInsightsReportRequestTimeIncrement>>,
}
impl CreateAdInsightsReportRequest {
pub fn new(account_id: String, object_id: String) -> CreateAdInsightsReportRequest {
CreateAdInsightsReportRequest {
account_id,
object_id,
level: None,
fields: None,
breakdowns: None,
filtering: None,
date_preset: None,
from_date: None,
to_date: None,
time_increment: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Level {
#[serde(rename = "ad")]
Ad,
#[serde(rename = "adset")]
Adset,
#[serde(rename = "campaign")]
Campaign,
#[serde(rename = "account")]
Account,
}
impl Default for Level {
fn default() -> Level {
Self::Ad
}
}