X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fdb_schema%2Fsrc%2Fsource%2Fcomment.rs;h=f76e2fba77ddb97b1ca2d66f2f7dd4a0aecba764;hb=969f8b2ce9cd80492eb5e556ce3bda95c9b892b3;hp=5b7ab085b6275e5d2241a14be4626b57fb925b25;hpb=235cc8b22897bfb3e71ba3dbd725d36863fea8ba;p=lemmy.git diff --git a/crates/db_schema/src/source/comment.rs b/crates/db_schema/src/source/comment.rs index 5b7ab085..f76e2fba 100644 --- a/crates/db_schema/src/source/comment.rs +++ b/crates/db_schema/src/source/comment.rs @@ -1,28 +1,46 @@ -use crate::newtypes::{CommentId, DbUrl, LanguageId, LtreeDef, PersonId, PostId}; +#[cfg(feature = "full")] +use crate::newtypes::LtreeDef; +use crate::newtypes::{CommentId, DbUrl, LanguageId, PersonId, PostId}; +#[cfg(feature = "full")] +use crate::schema::{comment, comment_like, comment_saved}; +#[cfg(feature = "full")] use diesel_ltree::Ltree; use serde::{Deserialize, Serialize}; -use typed_builder::TypedBuilder; - +use serde_with::skip_serializing_none; #[cfg(feature = "full")] -use crate::schema::{comment, comment_like, comment_saved}; +use ts_rs::TS; +use typed_builder::TypedBuilder; +#[skip_serializing_none] #[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)] -#[cfg_attr(feature = "full", derive(Queryable, Associations, Identifiable))] +#[cfg_attr(feature = "full", derive(Queryable, Associations, Identifiable, TS))] +#[cfg_attr(feature = "full", ts(export))] #[cfg_attr(feature = "full", diesel(belongs_to(crate::source::post::Post)))] #[cfg_attr(feature = "full", diesel(table_name = comment))] +/// A comment. pub struct Comment { pub id: CommentId, pub creator_id: PersonId, pub post_id: PostId, pub content: String, + /// Whether the comment has been removed. pub removed: bool, pub published: chrono::NaiveDateTime, pub updated: Option, + /// Whether the comment has been deleted by its creator. pub deleted: bool, + /// The federated activity id / ap_id. pub ap_id: DbUrl, + /// Whether the comment is local. pub local: bool, - #[serde(with = "LtreeDef")] + #[cfg(feature = "full")] + #[cfg_attr(feature = "full", serde(with = "LtreeDef"))] + #[cfg_attr(feature = "full", ts(type = "string"))] + /// The path / tree location of a comment, separated by dots, ending with the comment's id. Ex: 0.24.27 pub path: Ltree, + #[cfg(not(feature = "full"))] + pub path: String, + /// Whether the comment has been distinguished(speaking officially) by a mod. pub distinguished: bool, pub language_id: LanguageId, } @@ -48,8 +66,7 @@ pub struct CommentInsertForm { pub language_id: Option, } -#[derive(Debug, Clone, TypedBuilder)] -#[builder(field_defaults(default))] +#[derive(Debug, Clone, Default)] #[cfg_attr(feature = "full", derive(AsChangeset))] #[cfg_attr(feature = "full", diesel(table_name = comment))] pub struct CommentUpdateForm {