/*
* 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, 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. On X 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,
}
}
}