/*
 * Zernio API
 *
 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
 *
 * The version of the OpenAPI document: 1.0.1
 * Contact: support@zernio.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// AdPromotedObject : Meta promoted object containing conversion event details. Structure varies by objective. Only present for Meta ads.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AdPromotedObject {
    /// Conversion event type (e.g. PURCHASE, LEAD, COMPLETE_REGISTRATION, ADD_TO_CART)
    #[serde(rename = "custom_event_type", skip_serializing_if = "Option::is_none")]
    pub custom_event_type: Option<String>,
    /// Meta pixel ID
    #[serde(rename = "pixel_id", skip_serializing_if = "Option::is_none")]
    pub pixel_id: Option<String>,
    /// Facebook page ID
    #[serde(rename = "page_id", skip_serializing_if = "Option::is_none")]
    pub page_id: Option<String>,
    /// Facebook app ID
    #[serde(rename = "application_id", skip_serializing_if = "Option::is_none")]
    pub application_id: Option<String>,
    /// Product catalog set ID
    #[serde(rename = "product_set_id", skip_serializing_if = "Option::is_none")]
    pub product_set_id: Option<String>,
}

impl AdPromotedObject {
    /// Meta promoted object containing conversion event details. Structure varies by objective. Only present for Meta ads.
    pub fn new() -> AdPromotedObject {
        AdPromotedObject {
            custom_event_type: None,
            pixel_id: None,
            page_id: None,
            application_id: None,
            product_set_id: None,
        }
    }
}
