late 0.0.862

API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
Documentation
/*
 * Zernio API
 *
 * API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api  Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal.  Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
 *
 * 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 GetInboxPostComments200ResponseCommentsInner {
    #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
    pub id: Option<String>,
    #[serde(rename = "message", skip_serializing_if = "Option::is_none")]
    pub message: Option<String>,
    #[serde(rename = "createdTime", skip_serializing_if = "Option::is_none")]
    pub created_time: Option<String>,
    #[serde(rename = "from", skip_serializing_if = "Option::is_none")]
    pub from: Option<Box<models::GetInboxPostComments200ResponseCommentsInnerFrom>>,
    #[serde(rename = "likeCount", skip_serializing_if = "Option::is_none")]
    pub like_count: Option<i32>,
    /// The platform's own reply count, which includes hidden and deleted replies. Can exceed replies[].length even when repliesHasMore is false or absent.
    #[serde(rename = "replyCount", skip_serializing_if = "Option::is_none")]
    pub reply_count: Option<i32>,
    /// The platform this comment is from
    #[serde(rename = "platform", skip_serializing_if = "Option::is_none")]
    pub platform: Option<String>,
    /// Direct link to the comment on the platform (if available)
    #[serde(
        rename = "url",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub url: Option<Option<String>>,
    #[serde(rename = "replies", skip_serializing_if = "Option::is_none")]
    pub replies: Option<Vec<serde_json::Value>>,
    /// Facebook only. True when replies[] (capped at 10) does not hold the comment's full reply thread; fetch the rest by passing the comment id as postId to GET /v1/inbox/comments/{postId}. Absent (not false) on every other platform, including Instagram, which has no equivalent signal.
    #[serde(rename = "repliesHasMore", skip_serializing_if = "Option::is_none")]
    pub replies_has_more: Option<bool>,
    #[serde(rename = "canReply", skip_serializing_if = "Option::is_none")]
    pub can_reply: Option<bool>,
    #[serde(rename = "canDelete", skip_serializing_if = "Option::is_none")]
    pub can_delete: Option<bool>,
    /// Whether this comment can be hidden (Facebook, Instagram, Threads)
    #[serde(rename = "canHide", skip_serializing_if = "Option::is_none")]
    pub can_hide: Option<bool>,
    /// Whether this comment can be liked (Facebook, Twitter/X, Bluesky, Reddit)
    #[serde(rename = "canLike", skip_serializing_if = "Option::is_none")]
    pub can_like: Option<bool>,
    /// Whether the comment is currently hidden
    #[serde(rename = "isHidden", skip_serializing_if = "Option::is_none")]
    pub is_hidden: Option<bool>,
    /// Whether the current user has liked this comment
    #[serde(rename = "isLiked", skip_serializing_if = "Option::is_none")]
    pub is_liked: Option<bool>,
    /// Bluesky like URI for unliking
    #[serde(
        rename = "likeUri",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub like_uri: Option<Option<String>>,
    /// Bluesky content identifier
    #[serde(
        rename = "cid",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub cid: Option<Option<String>>,
    /// ID of the parent comment. Present on entries inside replies[] for Facebook, Instagram and X/Twitter. On X/Twitter it is also present on top-level entries, where it holds the ID of the post replied to. Omitted entirely (key absent, not null) on top-level Facebook and Instagram entries and on every other platform, which express the parent relationship only through replies[] nesting.
    #[serde(
        rename = "parentId",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub parent_id: Option<Option<String>>,
    /// Bluesky root post URI
    #[serde(
        rename = "rootUri",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub root_uri: Option<Option<String>>,
    /// Bluesky root post CID
    #[serde(
        rename = "rootCid",
        default,
        with = "::serde_with::rust::double_option",
        skip_serializing_if = "Option::is_none"
    )]
    pub root_cid: Option<Option<String>>,
}

impl GetInboxPostComments200ResponseCommentsInner {
    pub fn new() -> GetInboxPostComments200ResponseCommentsInner {
        GetInboxPostComments200ResponseCommentsInner {
            id: None,
            message: None,
            created_time: None,
            from: None,
            like_count: None,
            reply_count: None,
            platform: None,
            url: None,
            replies: None,
            replies_has_more: None,
            can_reply: None,
            can_delete: None,
            can_hide: None,
            can_like: None,
            is_hidden: None,
            is_liked: None,
            like_uri: None,
            cid: None,
            parent_id: None,
            root_uri: None,
            root_cid: None,
        }
    }
}