use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TikTokPlatformData {
#[serde(rename = "draft", skip_serializing_if = "Option::is_none")]
pub draft: Option<bool>,
#[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<CommercialContentType>,
#[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<MediaType>,
#[serde(
rename = "videoCoverTimestampMs",
skip_serializing_if = "Option::is_none"
)]
pub video_cover_timestamp_ms: Option<i32>,
#[serde(rename = "videoCoverImageUrl", skip_serializing_if = "Option::is_none")]
pub video_cover_image_url: Option<String>,
#[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 TikTokPlatformData {
pub fn new() -> TikTokPlatformData {
TikTokPlatformData {
draft: None,
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,
video_cover_image_url: None,
photo_cover_index: None,
auto_add_music: None,
video_made_with_ai: None,
description: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CommercialContentType {
#[serde(rename = "none")]
None,
#[serde(rename = "brand_organic")]
BrandOrganic,
#[serde(rename = "brand_content")]
BrandContent,
}
impl Default for CommercialContentType {
fn default() -> CommercialContentType {
Self::None
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MediaType {
#[serde(rename = "video")]
Video,
#[serde(rename = "photo")]
Photo,
}
impl Default for MediaType {
fn default() -> MediaType {
Self::Video
}
}