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

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

/// TikTokSettings : **DEPRECATED**: Use flat properties directly in TikTokPlatformData instead. This nested format is supported for backwards compatibility only.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TikTokSettings {
    #[serde(rename = "privacyLevel", skip_serializing_if = "Option::is_none")]
    pub privacy_level: Option<String>,
    #[serde(rename = "allowComment", skip_serializing_if = "Option::is_none")]
    pub allow_comment: Option<bool>,
    #[serde(rename = "allowDuet", skip_serializing_if = "Option::is_none")]
    pub allow_duet: Option<bool>,
    #[serde(rename = "allowStitch", skip_serializing_if = "Option::is_none")]
    pub allow_stitch: Option<bool>,
    #[serde(
        rename = "commercialContentType",
        skip_serializing_if = "Option::is_none"
    )]
    pub commercial_content_type: Option<String>,
    #[serde(
        rename = "brandPartnerPromote",
        skip_serializing_if = "Option::is_none"
    )]
    pub brand_partner_promote: Option<bool>,
    #[serde(rename = "isBrandOrganicPost", skip_serializing_if = "Option::is_none")]
    pub is_brand_organic_post: Option<bool>,
    #[serde(
        rename = "contentPreviewConfirmed",
        skip_serializing_if = "Option::is_none"
    )]
    pub content_preview_confirmed: Option<bool>,
    #[serde(
        rename = "expressConsentGiven",
        skip_serializing_if = "Option::is_none"
    )]
    pub express_consent_given: Option<bool>,
    #[serde(rename = "mediaType", skip_serializing_if = "Option::is_none")]
    pub media_type: Option<String>,
    #[serde(
        rename = "videoCoverTimestampMs",
        skip_serializing_if = "Option::is_none"
    )]
    pub video_cover_timestamp_ms: Option<i32>,
    #[serde(rename = "photoCoverIndex", skip_serializing_if = "Option::is_none")]
    pub photo_cover_index: Option<i32>,
    #[serde(rename = "autoAddMusic", skip_serializing_if = "Option::is_none")]
    pub auto_add_music: Option<bool>,
    #[serde(rename = "videoMadeWithAi", skip_serializing_if = "Option::is_none")]
    pub video_made_with_ai: Option<bool>,
    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
    pub description: Option<String>,
}

impl TikTokSettings {
    /// **DEPRECATED**: Use flat properties directly in TikTokPlatformData instead. This nested format is supported for backwards compatibility only.
    pub fn new() -> TikTokSettings {
        TikTokSettings {
            privacy_level: None,
            allow_comment: None,
            allow_duet: None,
            allow_stitch: None,
            commercial_content_type: None,
            brand_partner_promote: None,
            is_brand_organic_post: None,
            content_preview_confirmed: None,
            express_consent_given: None,
            media_type: None,
            video_cover_timestamp_ms: None,
            photo_cover_index: None,
            auto_add_music: None,
            video_made_with_ai: None,
            description: None,
        }
    }
}
