use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct PlatformTarget {
#[serde(rename = "platform", skip_serializing_if = "Option::is_none")]
pub platform: Option<String>,
#[serde(rename = "accountId", skip_serializing_if = "Option::is_none")]
pub account_id: Option<Box<models::PlatformTargetAccountId>>,
#[serde(rename = "customContent", skip_serializing_if = "Option::is_none")]
pub custom_content: Option<String>,
#[serde(rename = "customMedia", skip_serializing_if = "Option::is_none")]
pub custom_media: Option<Vec<models::MediaItem>>,
#[serde(rename = "scheduledFor", skip_serializing_if = "Option::is_none")]
pub scheduled_for: Option<String>,
#[serde(
rename = "platformSpecificData",
skip_serializing_if = "Option::is_none"
)]
pub platform_specific_data: Option<Box<models::PlatformTargetPlatformSpecificData>>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "platformPostId", skip_serializing_if = "Option::is_none")]
pub platform_post_id: Option<String>,
#[serde(rename = "platformPostUrl", skip_serializing_if = "Option::is_none")]
pub platform_post_url: Option<String>,
#[serde(rename = "publishedAt", skip_serializing_if = "Option::is_none")]
pub published_at: Option<String>,
#[serde(rename = "errorMessage", skip_serializing_if = "Option::is_none")]
pub error_message: Option<String>,
#[serde(rename = "errorCategory", skip_serializing_if = "Option::is_none")]
pub error_category: Option<ErrorCategory>,
#[serde(rename = "errorSource", skip_serializing_if = "Option::is_none")]
pub error_source: Option<ErrorSource>,
}
impl PlatformTarget {
pub fn new() -> PlatformTarget {
PlatformTarget {
platform: None,
account_id: None,
custom_content: None,
custom_media: None,
scheduled_for: None,
platform_specific_data: None,
status: None,
platform_post_id: None,
platform_post_url: None,
published_at: None,
error_message: None,
error_category: None,
error_source: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ErrorCategory {
#[serde(rename = "auth_expired")]
AuthExpired,
#[serde(rename = "user_content")]
UserContent,
#[serde(rename = "user_abuse")]
UserAbuse,
#[serde(rename = "account_issue")]
AccountIssue,
#[serde(rename = "platform_rejected")]
PlatformRejected,
#[serde(rename = "platform_error")]
PlatformError,
#[serde(rename = "system_error")]
SystemError,
#[serde(rename = "unknown")]
Unknown,
}
impl Default for ErrorCategory {
fn default() -> ErrorCategory {
Self::AuthExpired
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ErrorSource {
#[serde(rename = "user")]
User,
#[serde(rename = "platform")]
Platform,
#[serde(rename = "system")]
System,
}
impl Default for ErrorSource {
fn default() -> ErrorSource {
Self::User
}
}