use crate::Request;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct OptimizationMessage {
#[serde(rename = "accumulationBid")]
pub accumulation_bid: Option<i64>,
#[serde(rename = "optimizationBid")]
pub optimization_bid: Option<i64>,
#[serde(rename = "optimizationGoal")]
pub optimization_goal: Option<i32>,
#[serde(rename = "optimizationMethod")]
pub optimization_method: Option<i32>,
#[serde(rename = "optionalOptimizationBidMessageList")]
pub optional_optimization_bid_message_list: Option<Vec<OptionalOptimizationBidMessageList>>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdUnitCreateMessage {
#[serde(rename = "adName")]
pub ad_name: Option<String>,
#[serde(rename = "bid")]
pub bid: Option<i64>,
#[serde(rename = "optimizationMessage")]
pub optimization_message: Option<OptimizationMessage>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdImageVoList {
#[serde(rename = "imageUrl")]
pub image_url: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PlanDiscount {
#[serde(rename = "discounts")]
pub discounts: Option<Vec<Discounts>>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdProductCreateMessage {
#[serde(rename = "goodsId")]
pub goods_id: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdUnitCreateComplexMessageList {
#[serde(rename = "adCreativeCreateMessagesList")]
pub ad_creative_create_messages_list: Option<Vec<AdCreativeCreateMessagesList>>,
#[serde(rename = "adKeywordCreateMessageList")]
pub ad_keyword_create_message_list: Option<Vec<AdKeywordCreateMessageList>>,
#[serde(rename = "adKeywordSetMessage")]
pub ad_keyword_set_message: Option<AdKeywordSetMessage>,
#[serde(rename = "adProductCreateMessage")]
pub ad_product_create_message: Option<AdProductCreateMessage>,
#[serde(rename = "adUnitCreateMessage")]
pub ad_unit_create_message: Option<AdUnitCreateMessage>,
#[serde(rename = "audienceBidCreateMessageList")]
pub audience_bid_create_message_list: Option<Vec<AudienceBidCreateMessageList>>,
#[serde(rename = "locationBidCreateMessageList")]
pub location_bid_create_message_list: Option<Vec<LocationBidCreateMessageList>>,
#[serde(rename = "smartCreativeCreateMessage")]
pub smart_creative_create_message: Option<SmartCreativeCreateMessage>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdTextVoList {
#[serde(rename = "text")]
pub text: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct OptionalOptimizationBidMessageList {
#[serde(rename = "optimizationBid")]
pub optimization_bid: Option<i64>,
#[serde(rename = "optimizationGoal")]
pub optimization_goal: Option<i32>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdTargetingCreateMessage {
#[serde(rename = "adTargetingSet")]
pub ad_targeting_set: Option<AdTargetingSet>,
#[serde(rename = "targetingName")]
pub targeting_name: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdKeywordSetMessage {
#[serde(rename = "keywordSetBid")]
pub keyword_set_bid: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct SmartCreativeCreateMessage {
#[serde(rename = "creativeFlowRate")]
pub creative_flow_rate: Option<i32>,
#[serde(rename = "enableSmartCreative")]
pub enable_smart_creative: Option<i32>,
#[serde(rename = "smartCreativeTitle")]
pub smart_creative_title: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdCreativeCreateMessagesList {
#[serde(rename = "adImageVOList")]
pub ad_image_vo_list: Option<Vec<AdImageVoList>>,
#[serde(rename = "adTextVOList")]
pub ad_text_vo_list: Option<Vec<AdTextVoList>>,
#[serde(rename = "creativeSpecificationId")]
pub creative_specification_id: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct Discounts {
#[serde(rename = "index")]
pub index: Option<i32>,
#[serde(rename = "rate")]
pub rate: Option<i32>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AreaStruct {
#[serde(rename = "areaIds")]
pub area_ids: Option<Vec<i32>>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdKeywordCreateMessageList {
#[serde(rename = "bid")]
pub bid: Option<i64>,
#[serde(rename = "premiumRate")]
pub premium_rate: Option<i64>,
#[serde(rename = "word")]
pub word: Option<String>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AudienceBidCreateMessageList {
#[serde(rename = "adTargetingCreateMessage")]
pub ad_targeting_create_message: Option<AdTargetingCreateMessage>,
#[serde(rename = "bidReferenceId")]
pub bid_reference_id: Option<i64>,
#[serde(rename = "bidValue")]
pub bid_value: Option<i64>,
#[serde(rename = "subBidReferenceId")]
pub sub_bid_reference_id: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct PddAdApiPlanCreate {
#[serde(rename = "adPlanCreateMessage")]
pub ad_plan_create_message: Option<AdPlanCreateMessage>,
#[serde(rename = "adUnitCreateComplexMessageList")]
pub ad_unit_create_complex_message_list: Option<Vec<AdUnitCreateComplexMessageList>>,
#[serde(rename = "planStrategy")]
pub plan_strategy: Option<i32>,
#[serde(rename = "scenesType")]
pub scenes_type: Option<i32>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdTargetingSet {
#[serde(rename = "areaStruct")]
pub area_struct: Option<AreaStruct>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct LocationBidCreateMessageList {
#[serde(rename = "bidReferenceId")]
pub bid_reference_id: Option<i64>,
#[serde(rename = "bidValue")]
pub bid_value: Option<i64>,
}
#[derive(Serialize, Deserialize, Debug, Default)]
pub struct AdPlanCreateMessage {
#[serde(rename = "maxCost")]
pub max_cost: Option<i64>,
#[serde(rename = "planDiscount")]
pub plan_discount: Option<PlanDiscount>,
#[serde(rename = "planName")]
pub plan_name: Option<String>,
}
impl Request for PddAdApiPlanCreate {
fn get_type() -> String {
"pdd.ad.api.plan.create".to_string()
}
fn get_response_name() -> String {
"response".to_string()
}
}