diff --git a/packages/backend-rs/Makefile b/packages/backend-rs/Makefile
index 11b614c82a..29a00e847d 100644
--- a/packages/backend-rs/Makefile
+++ b/packages/backend-rs/Makefile
@@ -6,6 +6,7 @@ SRC += $(call recursive_wildcard, src, *)
 
 .PHONY: regenerate-entities
 regenerate-entities:
+	rm --recursive --force src/model/entity
 	sea-orm-cli generate entity \
 	  --output-dir='src/model/entity' \
 	  --database-url='postgres://$(POSTGRES_USER):$(POSTGRES_PASSWORD)@localhost:25432/$(POSTGRES_DB)' \
@@ -16,8 +17,9 @@ regenerate-entities:
 	  jsname=$$(printf '%s\n' "$${base%.*}" | perl -pe 's/(^|_)./uc($$&)/ge;s/_//g'); \
 	  attribute=$$(printf 'cfg_attr(feature = "napi", napi_derive::napi(object, js_name = "%s", use_nullable = true))' "$${jsname}"); \
 	  sed -i "s/NAPI_EXTRA_ATTR_PLACEHOLDER/$${attribute}/" "$${file}"; \
+		sed -i 's/#\[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)\]/#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]/' "$${file}"; \
 	done
-	sed -i 's/#\[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)\]/#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]\n#[cfg_attr(not(feature = "napi"), derive(Clone))]\n#[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]/' \
+	sed -i 's/#\[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)\]/#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]\n#[cfg_attr(not(feature = "napi"), derive(Clone))]\n#[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]/' \
 	  src/model/entity/sea_orm_active_enums.rs
 	cargo fmt --all --
 
diff --git a/packages/backend-rs/src/model/entity/abuse_user_report.rs b/packages/backend-rs/src/model/entity/abuse_user_report.rs
index 4d781f06dd..4d46581a89 100644
--- a/packages/backend-rs/src/model/entity/abuse_user_report.rs
+++ b/packages/backend-rs/src/model/entity/abuse_user_report.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "abuse_user_report")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/access_token.rs b/packages/backend-rs/src/model/entity/access_token.rs
index 3083bb8c90..ffe4fd9914 100644
--- a/packages/backend-rs/src/model/entity/access_token.rs
+++ b/packages/backend-rs/src/model/entity/access_token.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "access_token")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/ad.rs b/packages/backend-rs/src/model/entity/ad.rs
index 98ec50ea91..f8de656383 100644
--- a/packages/backend-rs/src/model/entity/ad.rs
+++ b/packages/backend-rs/src/model/entity/ad.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "ad")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/announcement.rs b/packages/backend-rs/src/model/entity/announcement.rs
index 311571c113..73b9c84080 100644
--- a/packages/backend-rs/src/model/entity/announcement.rs
+++ b/packages/backend-rs/src/model/entity/announcement.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "announcement")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/announcement_read.rs b/packages/backend-rs/src/model/entity/announcement_read.rs
index 157e402aa6..5f0c27599d 100644
--- a/packages/backend-rs/src/model/entity/announcement_read.rs
+++ b/packages/backend-rs/src/model/entity/announcement_read.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "announcement_read")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/antenna.rs b/packages/backend-rs/src/model/entity/antenna.rs
index 1edd6e8761..2abe216cda 100644
--- a/packages/backend-rs/src/model/entity/antenna.rs
+++ b/packages/backend-rs/src/model/entity/antenna.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::AntennaSrcEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "antenna")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/antenna_note.rs b/packages/backend-rs/src/model/entity/antenna_note.rs
deleted file mode 100644
index c86fb349d4..0000000000
--- a/packages/backend-rs/src/model/entity/antenna_note.rs
+++ /dev/null
@@ -1,49 +0,0 @@
-//! `SeaORM` Entity. Generated by sea-orm-codegen 0.11.3
-
-use sea_orm::entity::prelude::*;
-
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Default)]
-#[sea_orm(table_name = "antenna_note")]
-pub struct Model {
-    #[sea_orm(primary_key, auto_increment = false)]
-    pub id: String,
-    #[sea_orm(column_name = "noteId")]
-    pub note_id: String,
-    #[sea_orm(column_name = "antennaId")]
-    pub antenna_id: String,
-    pub read: bool,
-}
-
-#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
-pub enum Relation {
-    #[sea_orm(
-        belongs_to = "super::antenna::Entity",
-        from = "Column::AntennaId",
-        to = "super::antenna::Column::Id",
-        on_update = "NoAction",
-        on_delete = "Cascade"
-    )]
-    Antenna,
-    #[sea_orm(
-        belongs_to = "super::note::Entity",
-        from = "Column::NoteId",
-        to = "super::note::Column::Id",
-        on_update = "NoAction",
-        on_delete = "Cascade"
-    )]
-    Note,
-}
-
-impl Related<super::antenna::Entity> for Entity {
-    fn to() -> RelationDef {
-        Relation::Antenna.def()
-    }
-}
-
-impl Related<super::note::Entity> for Entity {
-    fn to() -> RelationDef {
-        Relation::Note.def()
-    }
-}
-
-impl ActiveModelBehavior for ActiveModel {}
diff --git a/packages/backend-rs/src/model/entity/app.rs b/packages/backend-rs/src/model/entity/app.rs
index d9517ed211..72c908e87a 100644
--- a/packages/backend-rs/src/model/entity/app.rs
+++ b/packages/backend-rs/src/model/entity/app.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "app")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/attestation_challenge.rs b/packages/backend-rs/src/model/entity/attestation_challenge.rs
index 0c131066dd..9513a584e7 100644
--- a/packages/backend-rs/src/model/entity/attestation_challenge.rs
+++ b/packages/backend-rs/src/model/entity/attestation_challenge.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "attestation_challenge")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/auth_session.rs b/packages/backend-rs/src/model/entity/auth_session.rs
index f022a5e632..873a15ec3d 100644
--- a/packages/backend-rs/src/model/entity/auth_session.rs
+++ b/packages/backend-rs/src/model/entity/auth_session.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "auth_session")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/blocking.rs b/packages/backend-rs/src/model/entity/blocking.rs
index 2f5a3e0482..5ffc685f80 100644
--- a/packages/backend-rs/src/model/entity/blocking.rs
+++ b/packages/backend-rs/src/model/entity/blocking.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "blocking")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/channel.rs b/packages/backend-rs/src/model/entity/channel.rs
index 52f8059030..e309a7ead6 100644
--- a/packages/backend-rs/src/model/entity/channel.rs
+++ b/packages/backend-rs/src/model/entity/channel.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "channel")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/channel_following.rs b/packages/backend-rs/src/model/entity/channel_following.rs
index 01a25ccb83..ee5a5a9bbc 100644
--- a/packages/backend-rs/src/model/entity/channel_following.rs
+++ b/packages/backend-rs/src/model/entity/channel_following.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "channel_following")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/channel_note_pining.rs b/packages/backend-rs/src/model/entity/channel_note_pining.rs
index 0a41efd3e8..28431d2999 100644
--- a/packages/backend-rs/src/model/entity/channel_note_pining.rs
+++ b/packages/backend-rs/src/model/entity/channel_note_pining.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "channel_note_pining")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/clip.rs b/packages/backend-rs/src/model/entity/clip.rs
index 6cbbcf4756..7316831088 100644
--- a/packages/backend-rs/src/model/entity/clip.rs
+++ b/packages/backend-rs/src/model/entity/clip.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "clip")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/clip_note.rs b/packages/backend-rs/src/model/entity/clip_note.rs
index 262f4a9b50..c7b089d35b 100644
--- a/packages/backend-rs/src/model/entity/clip_note.rs
+++ b/packages/backend-rs/src/model/entity/clip_note.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "clip_note")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/drive_file.rs b/packages/backend-rs/src/model/entity/drive_file.rs
index e3e4622a62..5527d79530 100644
--- a/packages/backend-rs/src/model/entity/drive_file.rs
+++ b/packages/backend-rs/src/model/entity/drive_file.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "drive_file")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/drive_folder.rs b/packages/backend-rs/src/model/entity/drive_folder.rs
index 727a698ce3..717a28b8b0 100644
--- a/packages/backend-rs/src/model/entity/drive_folder.rs
+++ b/packages/backend-rs/src/model/entity/drive_folder.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "drive_folder")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/emoji.rs b/packages/backend-rs/src/model/entity/emoji.rs
index 530dfe12f5..19c080bc4d 100644
--- a/packages/backend-rs/src/model/entity/emoji.rs
+++ b/packages/backend-rs/src/model/entity/emoji.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "emoji")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/follow_request.rs b/packages/backend-rs/src/model/entity/follow_request.rs
index 4a6b572433..0ee2f954f6 100644
--- a/packages/backend-rs/src/model/entity/follow_request.rs
+++ b/packages/backend-rs/src/model/entity/follow_request.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "follow_request")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/following.rs b/packages/backend-rs/src/model/entity/following.rs
index f19e46140e..25a9caf226 100644
--- a/packages/backend-rs/src/model/entity/following.rs
+++ b/packages/backend-rs/src/model/entity/following.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "following")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/gallery_like.rs b/packages/backend-rs/src/model/entity/gallery_like.rs
index f4ede4169a..b07ad74266 100644
--- a/packages/backend-rs/src/model/entity/gallery_like.rs
+++ b/packages/backend-rs/src/model/entity/gallery_like.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "gallery_like")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/gallery_post.rs b/packages/backend-rs/src/model/entity/gallery_post.rs
index 797bf38242..396075c252 100644
--- a/packages/backend-rs/src/model/entity/gallery_post.rs
+++ b/packages/backend-rs/src/model/entity/gallery_post.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "gallery_post")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/hashtag.rs b/packages/backend-rs/src/model/entity/hashtag.rs
index e2bb816b26..a689e110b7 100644
--- a/packages/backend-rs/src/model/entity/hashtag.rs
+++ b/packages/backend-rs/src/model/entity/hashtag.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "hashtag")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/instance.rs b/packages/backend-rs/src/model/entity/instance.rs
index 8b598f72b1..8b534eae6e 100644
--- a/packages/backend-rs/src/model/entity/instance.rs
+++ b/packages/backend-rs/src/model/entity/instance.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "instance")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/messaging_message.rs b/packages/backend-rs/src/model/entity/messaging_message.rs
index 304f876d1a..0997d18013 100644
--- a/packages/backend-rs/src/model/entity/messaging_message.rs
+++ b/packages/backend-rs/src/model/entity/messaging_message.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "messaging_message")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/meta.rs b/packages/backend-rs/src/model/entity/meta.rs
index b9a89914bd..67cf3d96e7 100644
--- a/packages/backend-rs/src/model/entity/meta.rs
+++ b/packages/backend-rs/src/model/entity/meta.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "meta")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/migrations.rs b/packages/backend-rs/src/model/entity/migrations.rs
index 235156ba4e..9487b29f0f 100644
--- a/packages/backend-rs/src/model/entity/migrations.rs
+++ b/packages/backend-rs/src/model/entity/migrations.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "migrations")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/moderation_log.rs b/packages/backend-rs/src/model/entity/moderation_log.rs
index b76f2c33df..097f620318 100644
--- a/packages/backend-rs/src/model/entity/moderation_log.rs
+++ b/packages/backend-rs/src/model/entity/moderation_log.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "moderation_log")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/muted_note.rs b/packages/backend-rs/src/model/entity/muted_note.rs
index 7c2880a03d..580f13b1aa 100644
--- a/packages/backend-rs/src/model/entity/muted_note.rs
+++ b/packages/backend-rs/src/model/entity/muted_note.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::MutedNoteReasonEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "muted_note")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/muting.rs b/packages/backend-rs/src/model/entity/muting.rs
index 917e6a2e20..5ae9bf3dfa 100644
--- a/packages/backend-rs/src/model/entity/muting.rs
+++ b/packages/backend-rs/src/model/entity/muting.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "muting")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note.rs b/packages/backend-rs/src/model/entity/note.rs
index 5903216c1a..1344fe8fad 100644
--- a/packages/backend-rs/src/model/entity/note.rs
+++ b/packages/backend-rs/src/model/entity/note.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::NoteVisibilityEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_edit.rs b/packages/backend-rs/src/model/entity/note_edit.rs
index edfb35029a..e594704fe8 100644
--- a/packages/backend-rs/src/model/entity/note_edit.rs
+++ b/packages/backend-rs/src/model/entity/note_edit.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_edit")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_favorite.rs b/packages/backend-rs/src/model/entity/note_favorite.rs
index 76d45e9e98..c201b82092 100644
--- a/packages/backend-rs/src/model/entity/note_favorite.rs
+++ b/packages/backend-rs/src/model/entity/note_favorite.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_favorite")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_file.rs b/packages/backend-rs/src/model/entity/note_file.rs
index 2c52a4e5e8..fad63db8bd 100644
--- a/packages/backend-rs/src/model/entity/note_file.rs
+++ b/packages/backend-rs/src/model/entity/note_file.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_file")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_reaction.rs b/packages/backend-rs/src/model/entity/note_reaction.rs
index dd870a3e7f..ab4c87d76d 100644
--- a/packages/backend-rs/src/model/entity/note_reaction.rs
+++ b/packages/backend-rs/src/model/entity/note_reaction.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_reaction")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_thread_muting.rs b/packages/backend-rs/src/model/entity/note_thread_muting.rs
index 965001189e..fa7a4365a0 100644
--- a/packages/backend-rs/src/model/entity/note_thread_muting.rs
+++ b/packages/backend-rs/src/model/entity/note_thread_muting.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_thread_muting")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_unread.rs b/packages/backend-rs/src/model/entity/note_unread.rs
index ba96aed69f..9e15f631ec 100644
--- a/packages/backend-rs/src/model/entity/note_unread.rs
+++ b/packages/backend-rs/src/model/entity/note_unread.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_unread")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/note_watching.rs b/packages/backend-rs/src/model/entity/note_watching.rs
index 5b3b331e90..00433a08e0 100644
--- a/packages/backend-rs/src/model/entity/note_watching.rs
+++ b/packages/backend-rs/src/model/entity/note_watching.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "note_watching")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/notification.rs b/packages/backend-rs/src/model/entity/notification.rs
index 6ed5f718aa..b5d1dced95 100644
--- a/packages/backend-rs/src/model/entity/notification.rs
+++ b/packages/backend-rs/src/model/entity/notification.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::NotificationTypeEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "notification")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/page.rs b/packages/backend-rs/src/model/entity/page.rs
index e1652a372b..3256bfff1c 100644
--- a/packages/backend-rs/src/model/entity/page.rs
+++ b/packages/backend-rs/src/model/entity/page.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::PageVisibilityEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "page")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/page_like.rs b/packages/backend-rs/src/model/entity/page_like.rs
index c1e59ef0e1..e7a477e922 100644
--- a/packages/backend-rs/src/model/entity/page_like.rs
+++ b/packages/backend-rs/src/model/entity/page_like.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "page_like")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/password_reset_request.rs b/packages/backend-rs/src/model/entity/password_reset_request.rs
index 058eaedebe..76e89bd8d5 100644
--- a/packages/backend-rs/src/model/entity/password_reset_request.rs
+++ b/packages/backend-rs/src/model/entity/password_reset_request.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "password_reset_request")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/poll.rs b/packages/backend-rs/src/model/entity/poll.rs
index 6bcbcac08b..9572a3c728 100644
--- a/packages/backend-rs/src/model/entity/poll.rs
+++ b/packages/backend-rs/src/model/entity/poll.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::PollNotevisibilityEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "poll")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/poll_vote.rs b/packages/backend-rs/src/model/entity/poll_vote.rs
index 0f2df2f5db..8208c3a95a 100644
--- a/packages/backend-rs/src/model/entity/poll_vote.rs
+++ b/packages/backend-rs/src/model/entity/poll_vote.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "poll_vote")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/promo_note.rs b/packages/backend-rs/src/model/entity/promo_note.rs
index c4e012b1a9..5e38b3440f 100644
--- a/packages/backend-rs/src/model/entity/promo_note.rs
+++ b/packages/backend-rs/src/model/entity/promo_note.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "promo_note")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/promo_read.rs b/packages/backend-rs/src/model/entity/promo_read.rs
index 10fe176405..f4d8854e39 100644
--- a/packages/backend-rs/src/model/entity/promo_read.rs
+++ b/packages/backend-rs/src/model/entity/promo_read.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "promo_read")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/registration_ticket.rs b/packages/backend-rs/src/model/entity/registration_ticket.rs
index 55d60d78b0..e06f2b295e 100644
--- a/packages/backend-rs/src/model/entity/registration_ticket.rs
+++ b/packages/backend-rs/src/model/entity/registration_ticket.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "registration_ticket")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/registry_item.rs b/packages/backend-rs/src/model/entity/registry_item.rs
index 74ae18cef3..7c7fcbf4b5 100644
--- a/packages/backend-rs/src/model/entity/registry_item.rs
+++ b/packages/backend-rs/src/model/entity/registry_item.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "registry_item")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/relay.rs b/packages/backend-rs/src/model/entity/relay.rs
index c035a74bec..24e4fb81c0 100644
--- a/packages/backend-rs/src/model/entity/relay.rs
+++ b/packages/backend-rs/src/model/entity/relay.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::RelayStatusEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "relay")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/renote_muting.rs b/packages/backend-rs/src/model/entity/renote_muting.rs
index b6604cad88..80b0f57f59 100644
--- a/packages/backend-rs/src/model/entity/renote_muting.rs
+++ b/packages/backend-rs/src/model/entity/renote_muting.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "renote_muting")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/reply_muting.rs b/packages/backend-rs/src/model/entity/reply_muting.rs
index 84fe0cbbfa..8d2e00eb3f 100644
--- a/packages/backend-rs/src/model/entity/reply_muting.rs
+++ b/packages/backend-rs/src/model/entity/reply_muting.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "reply_muting")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/sea_orm_active_enums.rs b/packages/backend-rs/src/model/entity/sea_orm_active_enums.rs
index 38820e1bd8..2232800070 100644
--- a/packages/backend-rs/src/model/entity/sea_orm_active_enums.rs
+++ b/packages/backend-rs/src/model/entity/sea_orm_active_enums.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "antenna_src_enum")]
@@ -20,7 +20,7 @@ pub enum AntennaSrcEnum {
     #[sea_orm(string_value = "users")]
     Users,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -38,7 +38,7 @@ pub enum MutedNoteReasonEnum {
     #[sea_orm(string_value = "word")]
     Word,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -58,7 +58,7 @@ pub enum NoteVisibilityEnum {
     #[sea_orm(string_value = "specified")]
     Specified,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -92,7 +92,7 @@ pub enum NotificationTypeEnum {
     #[sea_orm(string_value = "reply")]
     Reply,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -108,7 +108,7 @@ pub enum PageVisibilityEnum {
     #[sea_orm(string_value = "specified")]
     Specified,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -126,7 +126,7 @@ pub enum PollNotevisibilityEnum {
     #[sea_orm(string_value = "specified")]
     Specified,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(rs_type = "String", db_type = "Enum", enum_name = "relay_status_enum")]
@@ -138,7 +138,7 @@ pub enum RelayStatusEnum {
     #[sea_orm(string_value = "requesting")]
     Requesting,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -156,7 +156,7 @@ pub enum UserEmojimodpermEnum {
     #[sea_orm(string_value = "unauthorized")]
     Unauthorized,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
@@ -172,7 +172,7 @@ pub enum UserProfileFfvisibilityEnum {
     #[sea_orm(string_value = "public")]
     Public,
 }
-#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]
+#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum, serde::Serialize)]
 #[cfg_attr(not(feature = "napi"), derive(Clone))]
 #[cfg_attr(feature = "napi", napi_derive::napi(string_enum = "camelCase"))]
 #[sea_orm(
diff --git a/packages/backend-rs/src/model/entity/signin.rs b/packages/backend-rs/src/model/entity/signin.rs
index 491f079a82..08c7ad59f1 100644
--- a/packages/backend-rs/src/model/entity/signin.rs
+++ b/packages/backend-rs/src/model/entity/signin.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "signin")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/sw_subscription.rs b/packages/backend-rs/src/model/entity/sw_subscription.rs
index 4aa275f77b..a1bf0a9b3d 100644
--- a/packages/backend-rs/src/model/entity/sw_subscription.rs
+++ b/packages/backend-rs/src/model/entity/sw_subscription.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "sw_subscription")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/used_username.rs b/packages/backend-rs/src/model/entity/used_username.rs
index 9e108a8a4f..af038530b4 100644
--- a/packages/backend-rs/src/model/entity/used_username.rs
+++ b/packages/backend-rs/src/model/entity/used_username.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "used_username")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user.rs b/packages/backend-rs/src/model/entity/user.rs
index 8af0b27e88..25c8854abe 100644
--- a/packages/backend-rs/src/model/entity/user.rs
+++ b/packages/backend-rs/src/model/entity/user.rs
@@ -3,7 +3,7 @@
 use super::sea_orm_active_enums::UserEmojimodpermEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_group.rs b/packages/backend-rs/src/model/entity/user_group.rs
index 7d9ae71b24..8c5b08514f 100644
--- a/packages/backend-rs/src/model/entity/user_group.rs
+++ b/packages/backend-rs/src/model/entity/user_group.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_group")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_group_invitation.rs b/packages/backend-rs/src/model/entity/user_group_invitation.rs
index c449a48078..c676248ce4 100644
--- a/packages/backend-rs/src/model/entity/user_group_invitation.rs
+++ b/packages/backend-rs/src/model/entity/user_group_invitation.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_group_invitation")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_group_invite.rs b/packages/backend-rs/src/model/entity/user_group_invite.rs
index 3df43af3f6..41d47eb1b5 100644
--- a/packages/backend-rs/src/model/entity/user_group_invite.rs
+++ b/packages/backend-rs/src/model/entity/user_group_invite.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_group_invite")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_group_joining.rs b/packages/backend-rs/src/model/entity/user_group_joining.rs
index 2ff31b3a5f..3289b7e1e4 100644
--- a/packages/backend-rs/src/model/entity/user_group_joining.rs
+++ b/packages/backend-rs/src/model/entity/user_group_joining.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_group_joining")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_ip.rs b/packages/backend-rs/src/model/entity/user_ip.rs
index d6eadc7f71..77caeec313 100644
--- a/packages/backend-rs/src/model/entity/user_ip.rs
+++ b/packages/backend-rs/src/model/entity/user_ip.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_ip")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_keypair.rs b/packages/backend-rs/src/model/entity/user_keypair.rs
index d59853158a..f5fc9cd6b5 100644
--- a/packages/backend-rs/src/model/entity/user_keypair.rs
+++ b/packages/backend-rs/src/model/entity/user_keypair.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_keypair")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_list.rs b/packages/backend-rs/src/model/entity/user_list.rs
index 356ec5318c..399767fb25 100644
--- a/packages/backend-rs/src/model/entity/user_list.rs
+++ b/packages/backend-rs/src/model/entity/user_list.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_list")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_list_joining.rs b/packages/backend-rs/src/model/entity/user_list_joining.rs
index 037d7af181..adfdda8560 100644
--- a/packages/backend-rs/src/model/entity/user_list_joining.rs
+++ b/packages/backend-rs/src/model/entity/user_list_joining.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_list_joining")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_note_pining.rs b/packages/backend-rs/src/model/entity/user_note_pining.rs
index f0a80a66c9..74f4e1c1cd 100644
--- a/packages/backend-rs/src/model/entity/user_note_pining.rs
+++ b/packages/backend-rs/src/model/entity/user_note_pining.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_note_pining")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_pending.rs b/packages/backend-rs/src/model/entity/user_pending.rs
index 1fa13c2829..ddab5f2aee 100644
--- a/packages/backend-rs/src/model/entity/user_pending.rs
+++ b/packages/backend-rs/src/model/entity/user_pending.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_pending")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_profile.rs b/packages/backend-rs/src/model/entity/user_profile.rs
index a121118926..076729669f 100644
--- a/packages/backend-rs/src/model/entity/user_profile.rs
+++ b/packages/backend-rs/src/model/entity/user_profile.rs
@@ -4,7 +4,7 @@ use super::sea_orm_active_enums::UserProfileFfvisibilityEnum;
 use super::sea_orm_active_enums::UserProfileMutingnotificationtypesEnum;
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_profile")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_publickey.rs b/packages/backend-rs/src/model/entity/user_publickey.rs
index ad6a456ead..3683a25a7c 100644
--- a/packages/backend-rs/src/model/entity/user_publickey.rs
+++ b/packages/backend-rs/src/model/entity/user_publickey.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_publickey")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/user_security_key.rs b/packages/backend-rs/src/model/entity/user_security_key.rs
index aae6dfa8c6..bd0a7a493a 100644
--- a/packages/backend-rs/src/model/entity/user_security_key.rs
+++ b/packages/backend-rs/src/model/entity/user_security_key.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "user_security_key")]
 #[cfg_attr(
     feature = "napi",
diff --git a/packages/backend-rs/src/model/entity/webhook.rs b/packages/backend-rs/src/model/entity/webhook.rs
index e7656056b9..72c1c7e011 100644
--- a/packages/backend-rs/src/model/entity/webhook.rs
+++ b/packages/backend-rs/src/model/entity/webhook.rs
@@ -2,7 +2,7 @@
 
 use sea_orm::entity::prelude::*;
 
-#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq)]
+#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, serde::Serialize)]
 #[sea_orm(table_name = "webhook")]
 #[cfg_attr(
     feature = "napi",