/*
 * 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.4
 * Contact: support@zernio.com
 * Generated by: https://openapi-generator.tech
 */

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

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetInboxPostComments200ResponseCommentsInnerFrom {
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
    pub name: Option<String>,
    #[serde(rename = "username", skip_serializing_if = "Option::is_none")]
    pub username: Option<String>,
    #[serde(
        rename = "picture",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub picture: Option<Option<String>>,
    #[serde(rename = "isOwner", skip_serializing_if = "Option::is_none")]
    pub is_owner: Option<bool>,
    /// X/Twitter verified badge type. Only present for Twitter/X comments.
    #[serde(
        rename = "verifiedType",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub verified_type: Option<Option<VerifiedType>>,
}

impl GetInboxPostComments200ResponseCommentsInnerFrom {
    pub fn new() -> GetInboxPostComments200ResponseCommentsInnerFrom {
        GetInboxPostComments200ResponseCommentsInnerFrom {
            id: None,
            name: None,
            username: None,
            picture: None,
            is_owner: None,
            verified_type: None,
        }
    }
}
/// X/Twitter verified badge type. Only present for Twitter/X comments.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum VerifiedType {
    #[serde(rename = "blue")]
    Blue,
    #[serde(rename = "government")]
    Government,
    #[serde(rename = "business")]
    Business,
    #[serde(rename = "none")]
    None,
}

impl Default for VerifiedType {
    fn default() -> VerifiedType {
        Self::Blue
    }
}
