]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/source/person_mention.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / db_schema / src / source / person_mention.rs
index 6ad9c078fcf949187c11cf81f537f1e4514ac5f3..b4a2ce59c090e72846f1c5977e67c6de414e05c4 100644 (file)
@@ -1,21 +1,31 @@
-use crate::{schema::person_mention, source::comment::Comment};
-use serde::Serialize;
+use crate::newtypes::{CommentId, PersonId, PersonMentionId};
+use serde::{Deserialize, Serialize};
 
-#[derive(Clone, Queryable, Associations, Identifiable, PartialEq, Debug, Serialize)]
-#[belongs_to(Comment)]
-#[table_name = "person_mention"]
+#[cfg(feature = "full")]
+use crate::schema::person_mention;
+
+#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)]
+#[cfg_attr(feature = "full", derive(Queryable, Associations, Identifiable))]
+#[cfg_attr(feature = "full", diesel(belongs_to(crate::source::comment::Comment)))]
+#[cfg_attr(feature = "full", diesel(table_name = person_mention))]
 pub struct PersonMention {
-  pub id: i32,
-  pub recipient_id: i32,
-  pub comment_id: i32,
+  pub id: PersonMentionId,
+  pub recipient_id: PersonId,
+  pub comment_id: CommentId,
   pub read: bool,
   pub published: chrono::NaiveDateTime,
 }
 
-#[derive(Insertable, AsChangeset)]
-#[table_name = "person_mention"]
-pub struct PersonMentionForm {
-  pub recipient_id: i32,
-  pub comment_id: i32,
+#[cfg_attr(feature = "full", derive(Insertable, AsChangeset))]
+#[cfg_attr(feature = "full", diesel(table_name = person_mention))]
+pub struct PersonMentionInsertForm {
+  pub recipient_id: PersonId,
+  pub comment_id: CommentId,
+  pub read: Option<bool>,
+}
+
+#[cfg_attr(feature = "full", derive(AsChangeset))]
+#[cfg_attr(feature = "full", diesel(table_name = person_mention))]
+pub struct PersonMentionUpdateForm {
   pub read: Option<bool>,
 }