]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/source/local_site.rs
Use enum for registration mode setting (#2604)
[lemmy.git] / crates / db_schema / src / source / local_site.rs
index 4ae68ec1d39477597a78519715299253a24be9c1..40744a534a55b70602f7f5725de6c962daf44f45 100644 (file)
@@ -13,11 +13,9 @@ pub struct LocalSite {
   pub site_id: SiteId,
   pub site_setup: bool,
   pub enable_downvotes: bool,
-  pub open_registration: bool,
   pub enable_nsfw: bool,
   pub community_creation_admin_only: bool,
   pub require_email_verification: bool,
-  pub require_application: bool,
   pub application_question: Option<String>,
   pub private_instance: bool,
   pub default_theme: String,
@@ -32,6 +30,7 @@ pub struct LocalSite {
   pub federation_worker_count: i32,
   pub captcha_enabled: bool,
   pub captcha_difficulty: String,
+  pub registration_mode: RegistrationMode,
   pub published: chrono::NaiveDateTime,
   pub updated: Option<chrono::NaiveDateTime>,
 }
@@ -45,11 +44,9 @@ pub struct LocalSiteInsertForm {
   pub site_id: SiteId,
   pub site_setup: Option<bool>,
   pub enable_downvotes: Option<bool>,
-  pub open_registration: Option<bool>,
   pub enable_nsfw: Option<bool>,
   pub community_creation_admin_only: Option<bool>,
   pub require_email_verification: Option<bool>,
-  pub require_application: Option<bool>,
   pub application_question: Option<String>,
   pub private_instance: Option<bool>,
   pub default_theme: Option<String>,
@@ -64,6 +61,7 @@ pub struct LocalSiteInsertForm {
   pub federation_worker_count: Option<i32>,
   pub captcha_enabled: Option<bool>,
   pub captcha_difficulty: Option<String>,
+  pub registration_mode: Option<RegistrationMode>,
 }
 
 #[derive(Clone, TypedBuilder)]
@@ -73,11 +71,9 @@ pub struct LocalSiteInsertForm {
 pub struct LocalSiteUpdateForm {
   pub site_setup: Option<bool>,
   pub enable_downvotes: Option<bool>,
-  pub open_registration: Option<bool>,
   pub enable_nsfw: Option<bool>,
   pub community_creation_admin_only: Option<bool>,
   pub require_email_verification: Option<bool>,
-  pub require_application: Option<bool>,
   pub application_question: Option<Option<String>>,
   pub private_instance: Option<bool>,
   pub default_theme: Option<String>,
@@ -92,5 +88,21 @@ pub struct LocalSiteUpdateForm {
   pub federation_worker_count: Option<i32>,
   pub captcha_enabled: Option<bool>,
   pub captcha_difficulty: Option<String>,
+  pub registration_mode: Option<RegistrationMode>,
   pub updated: Option<Option<chrono::NaiveDateTime>>,
 }
+
+#[cfg(feature = "full")]
+#[derive(SqlType)]
+#[diesel(postgres_type(name = "registration_mode_enum"))]
+pub struct RegistrationModeType;
+
+#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
+#[cfg_attr(feature = "full", derive(FromSqlRow, AsExpression))]
+#[cfg_attr(feature = "full", diesel(sql_type = RegistrationModeType))]
+#[serde(rename_all = "lowercase")]
+pub enum RegistrationMode {
+  Closed,
+  RequireApplication,
+  Open,
+}