/*
 * 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};

/// SnapchatPlatformData : Requires a Public Profile. Single media item only. Content types: story (ephemeral 24h), saved_story (permanent, title max 45 chars), spotlight (video, max 160 chars).
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SnapchatPlatformData {
    /// Content type: story (ephemeral 24h, default), saved_story (permanent on Public Profile), spotlight (video feed)
    #[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
    pub content_type: Option<ContentType>,
}

impl SnapchatPlatformData {
    /// Requires a Public Profile. Single media item only. Content types: story (ephemeral 24h), saved_story (permanent, title max 45 chars), spotlight (video, max 160 chars).
    pub fn new() -> SnapchatPlatformData {
        SnapchatPlatformData { content_type: None }
    }
}
/// Content type: story (ephemeral 24h, default), saved_story (permanent on Public Profile), spotlight (video feed)
#[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
    }
}
