use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PlatformTargetPlatformSpecificData {
TwitterPlatformData(Box<models::TwitterPlatformData>),
ThreadsPlatformData(Box<models::ThreadsPlatformData>),
FacebookPlatformData(Box<models::FacebookPlatformData>),
InstagramPlatformData(Box<models::InstagramPlatformData>),
LinkedInPlatformData(Box<models::LinkedInPlatformData>),
PinterestPlatformData(Box<models::PinterestPlatformData>),
YouTubePlatformData(Box<models::YouTubePlatformData>),
GoogleBusinessPlatformData(Box<models::GoogleBusinessPlatformData>),
TikTokPlatformData(Box<models::TikTokPlatformData>),
TelegramPlatformData(Box<models::TelegramPlatformData>),
SnapchatPlatformData(Box<models::SnapchatPlatformData>),
RedditPlatformData(Box<models::RedditPlatformData>),
BlueskyPlatformData(Box<models::BlueskyPlatformData>),
}
impl Default for PlatformTargetPlatformSpecificData {
fn default() -> Self {
Self::TwitterPlatformData(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ReplySettings {
#[serde(rename = "following")]
Following,
#[serde(rename = "mentionedUsers")]
MentionedUsers,
#[serde(rename = "subscribers")]
Subscribers,
#[serde(rename = "verified")]
Verified,
}
impl Default for ReplySettings {
fn default() -> ReplySettings {
Self::Following
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ContentType {
#[serde(rename = "story")]
Story,
#[serde(rename = "saved_story")]
SavedStory,
#[serde(rename = "spotlight")]
Spotlight,
}
impl Default for ContentType {
fn default() -> ContentType {
Self::Story
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Visibility {
#[serde(rename = "public")]
Public,
#[serde(rename = "private")]
Private,
#[serde(rename = "unlisted")]
Unlisted,
}
impl Default for Visibility {
fn default() -> Visibility {
Self::Public
}
}
#[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
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ParseMode {
#[serde(rename = "HTML")]
Html,
#[serde(rename = "Markdown")]
Markdown,
#[serde(rename = "MarkdownV2")]
MarkdownV2,
}
impl Default for ParseMode {
fn default() -> ParseMode {
Self::Html
}
}