]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/source/instance.rs
Adding instance software and version. Fixes #2222 (#2733)
[lemmy.git] / crates / db_schema / src / source / instance.rs
index d581300555eca07ad8ee5bf7facc22bbb1c84ee2..a6c50cff5c29d05ef176b386aae1f90fa105833b 100644 (file)
@@ -1,21 +1,30 @@
 use crate::newtypes::InstanceId;
 #[cfg(feature = "full")]
 use crate::schema::instance;
+use serde::{Deserialize, Serialize};
 use std::fmt::Debug;
+use typed_builder::TypedBuilder;
 
-#[derive(PartialEq, Eq, Debug)]
+#[derive(Clone, PartialEq, Eq, Debug, Serialize, Deserialize)]
 #[cfg_attr(feature = "full", derive(Queryable, Identifiable))]
 #[cfg_attr(feature = "full", diesel(table_name = instance))]
 pub struct Instance {
   pub id: InstanceId,
   pub domain: String,
+  pub software: Option<String>,
+  pub version: Option<String>,
   pub published: chrono::NaiveDateTime,
   pub updated: Option<chrono::NaiveDateTime>,
 }
 
+#[derive(Clone, TypedBuilder)]
+#[builder(field_defaults(default))]
 #[cfg_attr(feature = "full", derive(Insertable, AsChangeset))]
 #[cfg_attr(feature = "full", diesel(table_name = instance))]
 pub struct InstanceForm {
+  #[builder(!default)]
   pub domain: String,
+  pub software: Option<String>,
+  pub version: Option<String>,
   pub updated: Option<chrono::NaiveDateTime>,
 }