]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/source/local_user.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / db_schema / src / source / local_user.rs
index 4b3a3414484c24ccd400a261d7d2d417e4836e8f..04fb4b87b64e399a0cb15a1950dd38537f90c299 100644 (file)
@@ -1,5 +1,6 @@
 use crate::newtypes::{LocalUserId, PersonId};
 use serde::{Deserialize, Serialize};
+use typed_builder::TypedBuilder;
 
 #[cfg(feature = "full")]
 use crate::schema::local_user;
@@ -28,29 +29,6 @@ pub struct LocalUser {
   pub accepted_application: bool,
 }
 
-// TODO redo these, check table defaults
-#[derive(Clone, Default)]
-#[cfg_attr(feature = "full", derive(Insertable, AsChangeset))]
-#[cfg_attr(feature = "full", diesel(table_name = local_user))]
-pub struct LocalUserForm {
-  pub person_id: Option<PersonId>,
-  pub password_encrypted: Option<String>,
-  pub email: Option<Option<String>>,
-  pub show_nsfw: Option<bool>,
-  pub theme: Option<String>,
-  pub default_sort_type: Option<i16>,
-  pub default_listing_type: Option<i16>,
-  pub interface_language: Option<String>,
-  pub show_avatars: Option<bool>,
-  pub send_notifications_to_email: Option<bool>,
-  pub show_bot_accounts: Option<bool>,
-  pub show_scores: Option<bool>,
-  pub show_read_posts: Option<bool>,
-  pub show_new_post_notifs: Option<bool>,
-  pub email_verified: Option<bool>,
-  pub accepted_application: Option<bool>,
-}
-
 /// A local user view that removes password encrypted
 #[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)]
 #[cfg_attr(feature = "full", derive(Queryable, Identifiable))]
@@ -74,3 +52,50 @@ pub struct LocalUserSettings {
   pub email_verified: bool,
   pub accepted_application: bool,
 }
+
+#[derive(Clone, TypedBuilder)]
+#[builder(field_defaults(default))]
+#[cfg_attr(feature = "full", derive(Insertable))]
+#[cfg_attr(feature = "full", diesel(table_name = local_user))]
+pub struct LocalUserInsertForm {
+  #[builder(!default)]
+  pub person_id: PersonId,
+  #[builder(!default)]
+  pub password_encrypted: String,
+  pub email: Option<String>,
+  pub show_nsfw: Option<bool>,
+  pub theme: Option<String>,
+  pub default_sort_type: Option<i16>,
+  pub default_listing_type: Option<i16>,
+  pub interface_language: Option<String>,
+  pub show_avatars: Option<bool>,
+  pub send_notifications_to_email: Option<bool>,
+  pub show_bot_accounts: Option<bool>,
+  pub show_scores: Option<bool>,
+  pub show_read_posts: Option<bool>,
+  pub show_new_post_notifs: Option<bool>,
+  pub email_verified: Option<bool>,
+  pub accepted_application: Option<bool>,
+}
+
+#[derive(Clone, TypedBuilder)]
+#[builder(field_defaults(default))]
+#[cfg_attr(feature = "full", derive(AsChangeset))]
+#[cfg_attr(feature = "full", diesel(table_name = local_user))]
+pub struct LocalUserUpdateForm {
+  pub password_encrypted: Option<String>,
+  pub email: Option<Option<String>>,
+  pub show_nsfw: Option<bool>,
+  pub theme: Option<String>,
+  pub default_sort_type: Option<i16>,
+  pub default_listing_type: Option<i16>,
+  pub interface_language: Option<String>,
+  pub show_avatars: Option<bool>,
+  pub send_notifications_to_email: Option<bool>,
+  pub show_bot_accounts: Option<bool>,
+  pub show_scores: Option<bool>,
+  pub show_read_posts: Option<bool>,
+  pub show_new_post_notifs: Option<bool>,
+  pub email_verified: Option<bool>,
+  pub accepted_application: Option<bool>,
+}