use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CommentFull {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<CommentType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_reply_comment: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_by: Option<UserMini>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub item: Option<CommentItem>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tagged_message: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct Comments {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_count: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub order: Option<Vec<CollectionsOrder>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub entries: Option<Vec<CommentFull>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct CommentType(pub String);
impl CommentType {
pub const COMMENT: &'static str = "comment";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateCommentRequest {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub message: Option<String>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ItemType(pub String);
impl ItemType {
pub const FILE: &'static str = "file";
pub const COMMENT: &'static str = "comment";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostItem {
pub id: String,
pub r#type: ItemType,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateCommentRequest {
pub message: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tagged_message: Option<String>,
pub item: PostItem,
}