diff --git a/drizzle/20260715164907_hot_darwin/migration.sql b/drizzle/20260715164907_hot_darwin/migration.sql
new file mode 100644
index 0000000..ea91dfd
--- /dev/null
+++ b/drizzle/20260715164907_hot_darwin/migration.sql
@@ -0,0 +1 @@
+ALTER TABLE `swarm_nodes` ADD `media_count` integer;
\ No newline at end of file
diff --git a/drizzle/20260715164907_hot_darwin/snapshot.json b/drizzle/20260715164907_hot_darwin/snapshot.json
new file mode 100644
index 0000000..1f9adfe
--- /dev/null
+++ b/drizzle/20260715164907_hot_darwin/snapshot.json
@@ -0,0 +1,7202 @@
+{
+ "version": "7",
+ "dialect": "sqlite",
+ "id": "eacbe50b-bb47-41dc-b591-b3098e9859e6",
+ "prevIds": [
+ "f2dee26d-ac08-4b7b-b708-d5d737b8866c"
+ ],
+ "ddl": [
+ {
+ "name": "blocks",
+ "entityType": "tables"
+ },
+ {
+ "name": "bot_activity_logs",
+ "entityType": "tables"
+ },
+ {
+ "name": "bot_content_items",
+ "entityType": "tables"
+ },
+ {
+ "name": "bot_content_sources",
+ "entityType": "tables"
+ },
+ {
+ "name": "bot_mentions",
+ "entityType": "tables"
+ },
+ {
+ "name": "bot_rate_limits",
+ "entityType": "tables"
+ },
+ {
+ "name": "bots",
+ "entityType": "tables"
+ },
+ {
+ "name": "chat_conversations",
+ "entityType": "tables"
+ },
+ {
+ "name": "chat_messages",
+ "entityType": "tables"
+ },
+ {
+ "name": "chat_typing_indicators",
+ "entityType": "tables"
+ },
+ {
+ "name": "e2ee_key_bundles",
+ "entityType": "tables"
+ },
+ {
+ "name": "e2ee_key_vaults",
+ "entityType": "tables"
+ },
+ {
+ "name": "e2ee_message_receipts",
+ "entityType": "tables"
+ },
+ {
+ "name": "e2ee_remote_key_bundles",
+ "entityType": "tables"
+ },
+ {
+ "name": "follows",
+ "entityType": "tables"
+ },
+ {
+ "name": "handle_registry",
+ "entityType": "tables"
+ },
+ {
+ "name": "likes",
+ "entityType": "tables"
+ },
+ {
+ "name": "media",
+ "entityType": "tables"
+ },
+ {
+ "name": "muted_nodes",
+ "entityType": "tables"
+ },
+ {
+ "name": "mutes",
+ "entityType": "tables"
+ },
+ {
+ "name": "nodes",
+ "entityType": "tables"
+ },
+ {
+ "name": "notifications",
+ "entityType": "tables"
+ },
+ {
+ "name": "posts",
+ "entityType": "tables"
+ },
+ {
+ "name": "remote_followers",
+ "entityType": "tables"
+ },
+ {
+ "name": "remote_follows",
+ "entityType": "tables"
+ },
+ {
+ "name": "remote_identity_cache",
+ "entityType": "tables"
+ },
+ {
+ "name": "remote_likes",
+ "entityType": "tables"
+ },
+ {
+ "name": "remote_posts",
+ "entityType": "tables"
+ },
+ {
+ "name": "remote_reposts",
+ "entityType": "tables"
+ },
+ {
+ "name": "reports",
+ "entityType": "tables"
+ },
+ {
+ "name": "sessions",
+ "entityType": "tables"
+ },
+ {
+ "name": "signed_action_dedupe",
+ "entityType": "tables"
+ },
+ {
+ "name": "stuffbox_connections",
+ "entityType": "tables"
+ },
+ {
+ "name": "swarm_nodes",
+ "entityType": "tables"
+ },
+ {
+ "name": "swarm_seeds",
+ "entityType": "tables"
+ },
+ {
+ "name": "swarm_sync_log",
+ "entityType": "tables"
+ },
+ {
+ "name": "user_swarm_likes",
+ "entityType": "tables"
+ },
+ {
+ "name": "user_swarm_reposts",
+ "entityType": "tables"
+ },
+ {
+ "name": "users",
+ "entityType": "tables"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "blocks"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "blocks"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "blocked_user_id",
+ "entityType": "columns",
+ "table": "blocks"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "blocks"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bot_id",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "action",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "details",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "success",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error_message",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "bot_activity_logs"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "source_id",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "external_id",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "title",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "url",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "published_at",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "fetched_at",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_processed",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "processed_at",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "interest_score",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "interest_reason",
+ "entityType": "columns",
+ "table": "bot_content_items"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bot_id",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "url",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "subreddit",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "api_key_encrypted",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "source_config",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "keywords",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "true",
+ "generated": null,
+ "name": "is_active",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_fetch_at",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_error",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "consecutive_errors",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "bot_content_sources"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bot_id",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_id",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_processed",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "processed_at",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "response_post_id",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_remote",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "remote_actor_url",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "bot_mentions"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bot_id",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "window_start",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "window_type",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "post_count",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "reply_count",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "bot_rate_limits"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "owner_id",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "personality_config",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "llm_provider",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "llm_model",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "llm_endpoint",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "llm_api_key_encrypted",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "schedule_config",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "autonomous_mode",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "true",
+ "generated": null,
+ "name": "is_active",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_suspended",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "suspension_reason",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "suspended_at",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_post_at",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "bots"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'direct'",
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "participant1_id",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "participant2_handle",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_message_at",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_message_preview",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'legacy'",
+ "generated": null,
+ "name": "encryption_mode",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "e2ee_activated_at",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "chat_conversations"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "conversation_id",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "sender_handle",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "sender_display_name",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "sender_avatar_url",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "sender_node_domain",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "sender_did",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "protocol_version",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "client_message_id",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "encrypted_envelope",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "e2ee_signature",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "e2ee_action_nonce",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "e2ee_action_ts",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "swarm_message_id",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "delivered_at",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "read_at",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "chat_messages"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "conversation_id",
+ "entityType": "columns",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_handle",
+ "entityType": "columns",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "expires_at",
+ "entityType": "columns",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "did",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "key_id",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "key_version",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "proof_action",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "key_id",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "key_version",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "owner_did",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ciphertext",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "nonce",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "salt",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "kdf_algorithm",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "kdf_ops_limit",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "kdf_mem_limit",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "pin_verifier_mac",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "server_share_encrypted",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "failed_attempts",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "locked_until",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "owner_user_id",
+ "entityType": "columns",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "sender_did",
+ "entityType": "columns",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "message_id",
+ "entityType": "columns",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "1",
+ "generated": null,
+ "name": "protocol_version",
+ "entityType": "columns",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "received_at",
+ "entityType": "columns",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "did",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "handle",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "key_id",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "key_version",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "proof_action",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "signing_public_key",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "first_seen_at",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "follower_id",
+ "entityType": "columns",
+ "table": "follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "following_id",
+ "entityType": "columns",
+ "table": "follows"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ap_id",
+ "entityType": "columns",
+ "table": "follows"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "pending",
+ "entityType": "columns",
+ "table": "follows"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "follows"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "handle",
+ "entityType": "columns",
+ "table": "handle_registry"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "did",
+ "entityType": "columns",
+ "table": "handle_registry"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "node_domain",
+ "entityType": "columns",
+ "table": "handle_registry"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "registered_at",
+ "entityType": "columns",
+ "table": "handle_registry"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "handle_registry"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ap_id",
+ "entityType": "columns",
+ "table": "likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "url",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_provider",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_asset_id",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "alt_text",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "mime_type",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "width",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "height",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "media"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "muted_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "muted_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "node_domain",
+ "entityType": "columns",
+ "table": "muted_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "muted_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "mutes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "mutes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "muted_user_id",
+ "entityType": "columns",
+ "table": "mutes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "mutes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "domain",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "description",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "long_description",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "rules",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "banner_url",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "logo_url",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "favicon_url",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "logo_data",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "favicon_data",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": "'#FFFFFF'",
+ "generated": null,
+ "name": "accent_color",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "private_key_encrypted",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_nsfw",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "turnstile_site_key",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "turnstile_secret_key",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_id",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_handle",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_display_name",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_avatar_url",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_node_domain",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_handle",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_display_name",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_avatar_url",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_node_domain",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_is_bot",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_content",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "type",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "read_at",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "notifications"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bot_id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "reply_to_id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "repost_of_id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "swarm_reply_to_id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "swarm_reply_to_content",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "swarm_reply_to_author",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "likes_count",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "reposts_count",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "replies_count",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_nsfw",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_removed",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "removed_at",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "removed_by",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "removed_reason",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ap_id",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ap_url",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_url",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_title",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_description",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_image",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_type",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_video_url",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_media_json",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_url",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "inbox_url",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "shared_inbox_url",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "handle",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "activity_id",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "remote_followers"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "follower_id",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_handle",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_actor_url",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "inbox_url",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "activity_id",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "display_name",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bio",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "avatar_url",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "remote_follows"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "did",
+ "entityType": "columns",
+ "table": "remote_identity_cache"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "remote_identity_cache"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "fetched_at",
+ "entityType": "columns",
+ "table": "remote_identity_cache"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "expires_at",
+ "entityType": "columns",
+ "table": "remote_identity_cache"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "remote_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "remote_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_handle",
+ "entityType": "columns",
+ "table": "remote_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_node_domain",
+ "entityType": "columns",
+ "table": "remote_likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "remote_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ap_id",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_handle",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_actor_url",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_display_name",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_avatar_url",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "published_at",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_url",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_title",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_description",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_image",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_type",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_video_url",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_media_json",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "media_json",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "fetched_at",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "remote_posts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "remote_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_id",
+ "entityType": "columns",
+ "table": "remote_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_handle",
+ "entityType": "columns",
+ "table": "remote_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "actor_node_domain",
+ "entityType": "columns",
+ "table": "remote_reposts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "remote_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "reporter_id",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_type",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "target_id",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "reason",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'open'",
+ "generated": null,
+ "name": "status",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "resolved_at",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "resolved_by",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "resolution_note",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "reports"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "sessions"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "sessions"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "token",
+ "entityType": "columns",
+ "table": "sessions"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "expires_at",
+ "entityType": "columns",
+ "table": "sessions"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "sessions"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "action_id",
+ "entityType": "columns",
+ "table": "signed_action_dedupe"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "did",
+ "entityType": "columns",
+ "table": "signed_action_dedupe"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "nonce",
+ "entityType": "columns",
+ "table": "signed_action_dedupe"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "ts",
+ "entityType": "columns",
+ "table": "signed_action_dedupe"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "signed_action_dedupe"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "base_url",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "access_token_encrypted",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "access_token_expires_at",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "refresh_token_encrypted",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "refresh_token_expires_at",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "scopes",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "connected_at",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "stuffbox_connections"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "domain",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "name",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "description",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "logo_url",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "software_version",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_count",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_count",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "media_count",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_nsfw",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "discovered_via",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "discovered_at",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "last_seen_at",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_sync_at",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "consecutive_failures",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "true",
+ "generated": null,
+ "name": "is_active",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "50",
+ "generated": null,
+ "name": "trust_score",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_blocked",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "block_reason",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "blocked_at",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "capabilities",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "swarm_nodes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "domain",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "100",
+ "generated": null,
+ "name": "priority",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "true",
+ "generated": null,
+ "name": "is_enabled",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "last_contact_at",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "consecutive_failures",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "swarm_seeds"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "remote_domain",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "direction",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "nodes_received",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "nodes_sent",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "handles_received",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "handles_sent",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "success",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "error_message",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "duration_ms",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "swarm_sync_log"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "node_domain",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "original_post_id",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_handle",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_display_name",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_avatar_url",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_created_at",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "likes_count",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "reposts_count",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "replies_count",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_url",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_title",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_description",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_image",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_type",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_video_url",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_media_json",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "media_json",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "liked_at",
+ "entityType": "columns",
+ "table": "user_swarm_likes"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "user_id",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "node_domain",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "original_post_id",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_handle",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_display_name",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "author_avatar_url",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "content",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "post_created_at",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "likes_count",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "reposts_count",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "replies_count",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_url",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_title",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_description",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_image",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_type",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_video_url",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "link_preview_media_json",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "media_json",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "reposted_at",
+ "entityType": "columns",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "id",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "did",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "handle",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "email",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "password_hash",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "display_name",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bio",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "avatar_url",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "header_url",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "private_key_encrypted",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "public_key",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "node_id",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_bot",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "bot_owner_id",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_nsfw",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "nsfw_enabled",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "age_verified_at",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_suspended",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "suspension_reason",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "suspended_at",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "false",
+ "generated": null,
+ "name": "is_silenced",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "silence_reason",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "silenced_at",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "moved_to",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "moved_from",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "migrated_at",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_provider",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_endpoint",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_public_base_url",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_region",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_bucket",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_access_key_encrypted",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "storage_secret_key_encrypted",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "followers_count",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "following_count",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "0",
+ "generated": null,
+ "name": "posts_count",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": false,
+ "autoincrement": false,
+ "default": null,
+ "generated": null,
+ "name": "website",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "text",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "'everyone'",
+ "generated": null,
+ "name": "dm_privacy",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "created_at",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "type": "integer",
+ "notNull": true,
+ "autoincrement": false,
+ "default": "(unixepoch())",
+ "generated": null,
+ "name": "updated_at",
+ "entityType": "columns",
+ "table": "users"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_blocks_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "blocks"
+ },
+ {
+ "columns": [
+ "blocked_user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_blocks_blocked_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "blocks"
+ },
+ {
+ "columns": [
+ "bot_id"
+ ],
+ "tableTo": "bots",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bot_activity_logs_bot_id_bots_id_fk",
+ "entityType": "fks",
+ "table": "bot_activity_logs"
+ },
+ {
+ "columns": [
+ "source_id"
+ ],
+ "tableTo": "bot_content_sources",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bot_content_items_source_id_bot_content_sources_id_fk",
+ "entityType": "fks",
+ "table": "bot_content_items"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "SET NULL",
+ "nameExplicit": false,
+ "name": "fk_bot_content_items_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "bot_content_items"
+ },
+ {
+ "columns": [
+ "bot_id"
+ ],
+ "tableTo": "bots",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bot_content_sources_bot_id_bots_id_fk",
+ "entityType": "fks",
+ "table": "bot_content_sources"
+ },
+ {
+ "columns": [
+ "bot_id"
+ ],
+ "tableTo": "bots",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bot_mentions_bot_id_bots_id_fk",
+ "entityType": "fks",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bot_mentions_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ "author_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "NO ACTION",
+ "nameExplicit": false,
+ "name": "fk_bot_mentions_author_id_users_id_fk",
+ "entityType": "fks",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ "response_post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "NO ACTION",
+ "nameExplicit": false,
+ "name": "fk_bot_mentions_response_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ "bot_id"
+ ],
+ "tableTo": "bots",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bot_rate_limits_bot_id_bots_id_fk",
+ "entityType": "fks",
+ "table": "bot_rate_limits"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bots_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "bots"
+ },
+ {
+ "columns": [
+ "owner_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_bots_owner_id_users_id_fk",
+ "entityType": "fks",
+ "table": "bots"
+ },
+ {
+ "columns": [
+ "participant1_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_chat_conversations_participant1_id_users_id_fk",
+ "entityType": "fks",
+ "table": "chat_conversations"
+ },
+ {
+ "columns": [
+ "conversation_id"
+ ],
+ "tableTo": "chat_conversations",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_chat_messages_conversation_id_chat_conversations_id_fk",
+ "entityType": "fks",
+ "table": "chat_messages"
+ },
+ {
+ "columns": [
+ "conversation_id"
+ ],
+ "tableTo": "chat_conversations",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_chat_typing_indicators_conversation_id_chat_conversations_id_fk",
+ "entityType": "fks",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_e2ee_key_bundles_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_e2ee_key_vaults_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "columns": [
+ "owner_user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_e2ee_message_receipts_owner_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "columns": [
+ "follower_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_follows_follower_id_users_id_fk",
+ "entityType": "fks",
+ "table": "follows"
+ },
+ {
+ "columns": [
+ "following_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_follows_following_id_users_id_fk",
+ "entityType": "fks",
+ "table": "follows"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_likes_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "likes"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_likes_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "likes"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_media_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "media"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_media_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "media"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_muted_nodes_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "muted_nodes"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_mutes_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "mutes"
+ },
+ {
+ "columns": [
+ "muted_user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_mutes_muted_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "mutes"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_notifications_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "notifications"
+ },
+ {
+ "columns": [
+ "actor_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_notifications_actor_id_users_id_fk",
+ "entityType": "fks",
+ "table": "notifications"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_notifications_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "notifications"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_posts_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ "bot_id"
+ ],
+ "tableTo": "bots",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "SET NULL",
+ "nameExplicit": false,
+ "name": "fk_posts_bot_id_bots_id_fk",
+ "entityType": "fks",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ "removed_by"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "NO ACTION",
+ "nameExplicit": false,
+ "name": "fk_posts_removed_by_users_id_fk",
+ "entityType": "fks",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_remote_followers_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "remote_followers"
+ },
+ {
+ "columns": [
+ "follower_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_remote_follows_follower_id_users_id_fk",
+ "entityType": "fks",
+ "table": "remote_follows"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_remote_likes_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "remote_likes"
+ },
+ {
+ "columns": [
+ "post_id"
+ ],
+ "tableTo": "posts",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_remote_reposts_post_id_posts_id_fk",
+ "entityType": "fks",
+ "table": "remote_reposts"
+ },
+ {
+ "columns": [
+ "reporter_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "SET NULL",
+ "nameExplicit": false,
+ "name": "fk_reports_reporter_id_users_id_fk",
+ "entityType": "fks",
+ "table": "reports"
+ },
+ {
+ "columns": [
+ "resolved_by"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "NO ACTION",
+ "nameExplicit": false,
+ "name": "fk_reports_resolved_by_users_id_fk",
+ "entityType": "fks",
+ "table": "reports"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_sessions_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "sessions"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_stuffbox_connections_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "stuffbox_connections"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_user_swarm_likes_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "user_swarm_likes"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": false,
+ "name": "fk_user_swarm_reposts_user_id_users_id_fk",
+ "entityType": "fks",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "columns": [
+ "node_id"
+ ],
+ "tableTo": "nodes",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "NO ACTION",
+ "nameExplicit": false,
+ "name": "fk_users_node_id_nodes_id_fk",
+ "entityType": "fks",
+ "table": "users"
+ },
+ {
+ "columns": [
+ "bot_owner_id"
+ ],
+ "tableTo": "users",
+ "columnsTo": [
+ "id"
+ ],
+ "onUpdate": "NO ACTION",
+ "onDelete": "CASCADE",
+ "nameExplicit": true,
+ "name": "users_bot_owner_id_users_id_fk",
+ "entityType": "fks",
+ "table": "users"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "blocks_pk",
+ "table": "blocks",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "bot_activity_logs_pk",
+ "table": "bot_activity_logs",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "bot_content_items_pk",
+ "table": "bot_content_items",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "bot_content_sources_pk",
+ "table": "bot_content_sources",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "bot_mentions_pk",
+ "table": "bot_mentions",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "bot_rate_limits_pk",
+ "table": "bot_rate_limits",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "bots_pk",
+ "table": "bots",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "chat_conversations_pk",
+ "table": "chat_conversations",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "chat_messages_pk",
+ "table": "chat_messages",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "chat_typing_indicators_pk",
+ "table": "chat_typing_indicators",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "nameExplicit": false,
+ "name": "e2ee_key_bundles_pk",
+ "table": "e2ee_key_bundles",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "nameExplicit": false,
+ "name": "e2ee_key_vaults_pk",
+ "table": "e2ee_key_vaults",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "e2ee_message_receipts_pk",
+ "table": "e2ee_message_receipts",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "did"
+ ],
+ "nameExplicit": false,
+ "name": "e2ee_remote_key_bundles_pk",
+ "table": "e2ee_remote_key_bundles",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "follows_pk",
+ "table": "follows",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "handle"
+ ],
+ "nameExplicit": false,
+ "name": "handle_registry_pk",
+ "table": "handle_registry",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "likes_pk",
+ "table": "likes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "media_pk",
+ "table": "media",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "muted_nodes_pk",
+ "table": "muted_nodes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "mutes_pk",
+ "table": "mutes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "nodes_pk",
+ "table": "nodes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "notifications_pk",
+ "table": "notifications",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "posts_pk",
+ "table": "posts",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "remote_followers_pk",
+ "table": "remote_followers",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "remote_follows_pk",
+ "table": "remote_follows",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "did"
+ ],
+ "nameExplicit": false,
+ "name": "remote_identity_cache_pk",
+ "table": "remote_identity_cache",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "remote_likes_pk",
+ "table": "remote_likes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "remote_posts_pk",
+ "table": "remote_posts",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "remote_reposts_pk",
+ "table": "remote_reposts",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "reports_pk",
+ "table": "reports",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "sessions_pk",
+ "table": "sessions",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "action_id"
+ ],
+ "nameExplicit": false,
+ "name": "signed_action_dedupe_pk",
+ "table": "signed_action_dedupe",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "user_id"
+ ],
+ "nameExplicit": false,
+ "name": "stuffbox_connections_pk",
+ "table": "stuffbox_connections",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "swarm_nodes_pk",
+ "table": "swarm_nodes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "swarm_seeds_pk",
+ "table": "swarm_seeds",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "swarm_sync_log_pk",
+ "table": "swarm_sync_log",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "user_swarm_likes_pk",
+ "table": "user_swarm_likes",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "user_swarm_reposts_pk",
+ "table": "user_swarm_reposts",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ "id"
+ ],
+ "nameExplicit": false,
+ "name": "users_pk",
+ "table": "users",
+ "entityType": "pks"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "blocks_user_idx",
+ "entityType": "indexes",
+ "table": "blocks"
+ },
+ {
+ "columns": [
+ {
+ "value": "blocked_user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "blocks_blocked_user_idx",
+ "entityType": "indexes",
+ "table": "blocks"
+ },
+ {
+ "columns": [
+ {
+ "value": "bot_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_activity_logs_bot_idx",
+ "entityType": "indexes",
+ "table": "bot_activity_logs"
+ },
+ {
+ "columns": [
+ {
+ "value": "action",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_activity_logs_action_idx",
+ "entityType": "indexes",
+ "table": "bot_activity_logs"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_activity_logs_created_idx",
+ "entityType": "indexes",
+ "table": "bot_activity_logs"
+ },
+ {
+ "columns": [
+ {
+ "value": "source_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_content_items_source_idx",
+ "entityType": "indexes",
+ "table": "bot_content_items"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_processed",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_content_items_processed_idx",
+ "entityType": "indexes",
+ "table": "bot_content_items"
+ },
+ {
+ "columns": [
+ {
+ "value": "external_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_content_items_external_idx",
+ "entityType": "indexes",
+ "table": "bot_content_items"
+ },
+ {
+ "columns": [
+ {
+ "value": "bot_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_content_sources_bot_idx",
+ "entityType": "indexes",
+ "table": "bot_content_sources"
+ },
+ {
+ "columns": [
+ {
+ "value": "type",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_content_sources_type_idx",
+ "entityType": "indexes",
+ "table": "bot_content_sources"
+ },
+ {
+ "columns": [
+ {
+ "value": "bot_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_mentions_bot_idx",
+ "entityType": "indexes",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_processed",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_mentions_processed_idx",
+ "entityType": "indexes",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_mentions_created_idx",
+ "entityType": "indexes",
+ "table": "bot_mentions"
+ },
+ {
+ "columns": [
+ {
+ "value": "bot_id",
+ "isExpression": false
+ },
+ {
+ "value": "window_start",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bot_rate_limits_bot_window_idx",
+ "entityType": "indexes",
+ "table": "bot_rate_limits"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bots_user_id_idx",
+ "entityType": "indexes",
+ "table": "bots"
+ },
+ {
+ "columns": [
+ {
+ "value": "owner_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bots_owner_id_idx",
+ "entityType": "indexes",
+ "table": "bots"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_active",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "bots_active_idx",
+ "entityType": "indexes",
+ "table": "bots"
+ },
+ {
+ "columns": [
+ {
+ "value": "participant1_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_conversations_participant1_idx",
+ "entityType": "indexes",
+ "table": "chat_conversations"
+ },
+ {
+ "columns": [
+ {
+ "value": "last_message_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_conversations_last_message_idx",
+ "entityType": "indexes",
+ "table": "chat_conversations"
+ },
+ {
+ "columns": [
+ {
+ "value": "participant1_id",
+ "isExpression": false
+ },
+ {
+ "value": "participant2_handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_conversations_unique",
+ "entityType": "indexes",
+ "table": "chat_conversations"
+ },
+ {
+ "columns": [
+ {
+ "value": "conversation_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_messages_conversation_idx",
+ "entityType": "indexes",
+ "table": "chat_messages"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_messages_created_idx",
+ "entityType": "indexes",
+ "table": "chat_messages"
+ },
+ {
+ "columns": [
+ {
+ "value": "swarm_message_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_messages_swarm_id_idx",
+ "entityType": "indexes",
+ "table": "chat_messages"
+ },
+ {
+ "columns": [
+ {
+ "value": "conversation_id",
+ "isExpression": false
+ },
+ {
+ "value": "client_message_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_messages_conversation_client_id_unique",
+ "entityType": "indexes",
+ "table": "chat_messages"
+ },
+ {
+ "columns": [
+ {
+ "value": "conversation_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_typing_conversation_idx",
+ "entityType": "indexes",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "columns": [
+ {
+ "value": "expires_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_typing_expires_idx",
+ "entityType": "indexes",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "columns": [
+ {
+ "value": "conversation_id",
+ "isExpression": false
+ },
+ {
+ "value": "user_handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "chat_typing_unique",
+ "entityType": "indexes",
+ "table": "chat_typing_indicators"
+ },
+ {
+ "columns": [
+ {
+ "value": "did",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_key_bundles_did_unique",
+ "entityType": "indexes",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "columns": [
+ {
+ "value": "key_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_key_bundles_key_id_unique",
+ "entityType": "indexes",
+ "table": "e2ee_key_bundles"
+ },
+ {
+ "columns": [
+ {
+ "value": "key_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_key_vaults_key_id_unique",
+ "entityType": "indexes",
+ "table": "e2ee_key_vaults"
+ },
+ {
+ "columns": [
+ {
+ "value": "owner_user_id",
+ "isExpression": false
+ },
+ {
+ "value": "sender_did",
+ "isExpression": false
+ },
+ {
+ "value": "message_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_message_receipts_owner_sender_message_unique",
+ "entityType": "indexes",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "columns": [
+ {
+ "value": "received_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_message_receipts_received_idx",
+ "entityType": "indexes",
+ "table": "e2ee_message_receipts"
+ },
+ {
+ "columns": [
+ {
+ "value": "key_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_remote_key_bundles_key_id_idx",
+ "entityType": "indexes",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "columns": [
+ {
+ "value": "handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "e2ee_remote_key_bundles_handle_idx",
+ "entityType": "indexes",
+ "table": "e2ee_remote_key_bundles"
+ },
+ {
+ "columns": [
+ {
+ "value": "follower_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "follows_follower_idx",
+ "entityType": "indexes",
+ "table": "follows"
+ },
+ {
+ "columns": [
+ {
+ "value": "following_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "follows_following_idx",
+ "entityType": "indexes",
+ "table": "follows"
+ },
+ {
+ "columns": [
+ {
+ "value": "updated_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "handle_registry_updated_idx",
+ "entityType": "indexes",
+ "table": "handle_registry"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ },
+ {
+ "value": "post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "likes_user_post_idx",
+ "entityType": "indexes",
+ "table": "likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "media_user_idx",
+ "entityType": "indexes",
+ "table": "media"
+ },
+ {
+ "columns": [
+ {
+ "value": "post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "media_post_idx",
+ "entityType": "indexes",
+ "table": "media"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "muted_nodes_user_idx",
+ "entityType": "indexes",
+ "table": "muted_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "node_domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "muted_nodes_domain_idx",
+ "entityType": "indexes",
+ "table": "muted_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "mutes_user_idx",
+ "entityType": "indexes",
+ "table": "mutes"
+ },
+ {
+ "columns": [
+ {
+ "value": "muted_user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "mutes_muted_user_idx",
+ "entityType": "indexes",
+ "table": "mutes"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "notifications_user_idx",
+ "entityType": "indexes",
+ "table": "notifications"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "notifications_created_idx",
+ "entityType": "indexes",
+ "table": "notifications"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "posts_user_id_idx",
+ "entityType": "indexes",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "bot_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "posts_bot_id_idx",
+ "entityType": "indexes",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "posts_created_at_idx",
+ "entityType": "indexes",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "reply_to_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "posts_reply_to_idx",
+ "entityType": "indexes",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_removed",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "posts_removed_idx",
+ "entityType": "indexes",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_nsfw",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "posts_nsfw_idx",
+ "entityType": "indexes",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_followers_user_idx",
+ "entityType": "indexes",
+ "table": "remote_followers"
+ },
+ {
+ "columns": [
+ {
+ "value": "actor_url",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_followers_actor_idx",
+ "entityType": "indexes",
+ "table": "remote_followers"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ },
+ {
+ "value": "actor_url",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_followers_user_actor_unique",
+ "entityType": "indexes",
+ "table": "remote_followers"
+ },
+ {
+ "columns": [
+ {
+ "value": "follower_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_follows_follower_idx",
+ "entityType": "indexes",
+ "table": "remote_follows"
+ },
+ {
+ "columns": [
+ {
+ "value": "target_handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_follows_target_idx",
+ "entityType": "indexes",
+ "table": "remote_follows"
+ },
+ {
+ "columns": [
+ {
+ "value": "post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_likes_post_idx",
+ "entityType": "indexes",
+ "table": "remote_likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "actor_handle",
+ "isExpression": false
+ },
+ {
+ "value": "actor_node_domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_likes_actor_idx",
+ "entityType": "indexes",
+ "table": "remote_likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "post_id",
+ "isExpression": false
+ },
+ {
+ "value": "actor_handle",
+ "isExpression": false
+ },
+ {
+ "value": "actor_node_domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_likes_unique",
+ "entityType": "indexes",
+ "table": "remote_likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "author_handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_posts_author_idx",
+ "entityType": "indexes",
+ "table": "remote_posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "published_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_posts_published_idx",
+ "entityType": "indexes",
+ "table": "remote_posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "ap_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_posts_ap_id_idx",
+ "entityType": "indexes",
+ "table": "remote_posts"
+ },
+ {
+ "columns": [
+ {
+ "value": "post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_reposts_post_idx",
+ "entityType": "indexes",
+ "table": "remote_reposts"
+ },
+ {
+ "columns": [
+ {
+ "value": "actor_handle",
+ "isExpression": false
+ },
+ {
+ "value": "actor_node_domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_reposts_actor_idx",
+ "entityType": "indexes",
+ "table": "remote_reposts"
+ },
+ {
+ "columns": [
+ {
+ "value": "post_id",
+ "isExpression": false
+ },
+ {
+ "value": "actor_handle",
+ "isExpression": false
+ },
+ {
+ "value": "actor_node_domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "remote_reposts_unique",
+ "entityType": "indexes",
+ "table": "remote_reposts"
+ },
+ {
+ "columns": [
+ {
+ "value": "status",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "reports_status_idx",
+ "entityType": "indexes",
+ "table": "reports"
+ },
+ {
+ "columns": [
+ {
+ "value": "target_type",
+ "isExpression": false
+ },
+ {
+ "value": "target_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "reports_target_idx",
+ "entityType": "indexes",
+ "table": "reports"
+ },
+ {
+ "columns": [
+ {
+ "value": "reporter_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "reports_reporter_idx",
+ "entityType": "indexes",
+ "table": "reports"
+ },
+ {
+ "columns": [
+ {
+ "value": "token",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "sessions_token_idx",
+ "entityType": "indexes",
+ "table": "sessions"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "sessions_user_idx",
+ "entityType": "indexes",
+ "table": "sessions"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "signed_action_dedupe_created_idx",
+ "entityType": "indexes",
+ "table": "signed_action_dedupe"
+ },
+ {
+ "columns": [
+ {
+ "value": "domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_nodes_domain_idx",
+ "entityType": "indexes",
+ "table": "swarm_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_active",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_nodes_active_idx",
+ "entityType": "indexes",
+ "table": "swarm_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "last_seen_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_nodes_last_seen_idx",
+ "entityType": "indexes",
+ "table": "swarm_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "trust_score",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_nodes_trust_idx",
+ "entityType": "indexes",
+ "table": "swarm_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_nsfw",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_nodes_nsfw_idx",
+ "entityType": "indexes",
+ "table": "swarm_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_blocked",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_nodes_blocked_idx",
+ "entityType": "indexes",
+ "table": "swarm_nodes"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_enabled",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_seeds_enabled_idx",
+ "entityType": "indexes",
+ "table": "swarm_seeds"
+ },
+ {
+ "columns": [
+ {
+ "value": "priority",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_seeds_priority_idx",
+ "entityType": "indexes",
+ "table": "swarm_seeds"
+ },
+ {
+ "columns": [
+ {
+ "value": "remote_domain",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_sync_log_remote_idx",
+ "entityType": "indexes",
+ "table": "swarm_sync_log"
+ },
+ {
+ "columns": [
+ {
+ "value": "created_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "swarm_sync_log_created_idx",
+ "entityType": "indexes",
+ "table": "swarm_sync_log"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ },
+ {
+ "value": "liked_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "user_swarm_likes_user_idx",
+ "entityType": "indexes",
+ "table": "user_swarm_likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "node_domain",
+ "isExpression": false
+ },
+ {
+ "value": "original_post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "user_swarm_likes_post_idx",
+ "entityType": "indexes",
+ "table": "user_swarm_likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ },
+ {
+ "value": "node_domain",
+ "isExpression": false
+ },
+ {
+ "value": "original_post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "user_swarm_likes_unique",
+ "entityType": "indexes",
+ "table": "user_swarm_likes"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ },
+ {
+ "value": "reposted_at",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "user_swarm_reposts_user_idx",
+ "entityType": "indexes",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "columns": [
+ {
+ "value": "node_domain",
+ "isExpression": false
+ },
+ {
+ "value": "original_post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "user_swarm_reposts_post_idx",
+ "entityType": "indexes",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "columns": [
+ {
+ "value": "user_id",
+ "isExpression": false
+ },
+ {
+ "value": "node_domain",
+ "isExpression": false
+ },
+ {
+ "value": "original_post_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "user_swarm_reposts_unique",
+ "entityType": "indexes",
+ "table": "user_swarm_reposts"
+ },
+ {
+ "columns": [
+ {
+ "value": "handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_handle_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "did",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_did_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "handle",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "users_handle_unique_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "did",
+ "isExpression": false
+ }
+ ],
+ "isUnique": true,
+ "where": null,
+ "origin": "manual",
+ "name": "users_did_unique_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_suspended",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_suspended_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_silenced",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_silenced_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_bot",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_is_bot_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "bot_owner_id",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_bot_owner_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ {
+ "value": "is_nsfw",
+ "isExpression": false
+ }
+ ],
+ "isUnique": false,
+ "where": null,
+ "origin": "manual",
+ "name": "users_nsfw_idx",
+ "entityType": "indexes",
+ "table": "users"
+ },
+ {
+ "columns": [
+ "ap_id"
+ ],
+ "nameExplicit": false,
+ "name": "follows_ap_id_unique",
+ "entityType": "uniques",
+ "table": "follows"
+ },
+ {
+ "columns": [
+ "ap_id"
+ ],
+ "nameExplicit": false,
+ "name": "likes_ap_id_unique",
+ "entityType": "uniques",
+ "table": "likes"
+ },
+ {
+ "columns": [
+ "domain"
+ ],
+ "nameExplicit": false,
+ "name": "nodes_domain_unique",
+ "entityType": "uniques",
+ "table": "nodes"
+ },
+ {
+ "columns": [
+ "ap_id"
+ ],
+ "nameExplicit": false,
+ "name": "posts_ap_id_unique",
+ "entityType": "uniques",
+ "table": "posts"
+ },
+ {
+ "columns": [
+ "domain"
+ ],
+ "nameExplicit": false,
+ "name": "swarm_seeds_domain_unique",
+ "entityType": "uniques",
+ "table": "swarm_seeds"
+ },
+ {
+ "columns": [
+ "email"
+ ],
+ "nameExplicit": false,
+ "name": "users_email_unique",
+ "entityType": "uniques",
+ "table": "users"
+ }
+ ],
+ "renames": []
+}
\ No newline at end of file
diff --git a/src/app/api/swarm/announce/route.ts b/src/app/api/swarm/announce/route.ts
index b3c164d..410b11c 100644
--- a/src/app/api/swarm/announce/route.ts
+++ b/src/app/api/swarm/announce/route.ts
@@ -32,10 +32,11 @@ const announcementSchema = z.object({
softwareVersion: z.string().optional(),
userCount: z.number().optional(),
postCount: z.number().optional(),
+ mediaCount: z.number().optional(),
isNsfw: z.boolean().optional(),
capabilities: z.array(z.enum(['handles', 'gossip', 'relay', 'search', 'interactions', 'e2ee_dm_v1'])).optional(),
timestamp: z.string().optional(),
-});
+}).passthrough();
// Schema including signature for verification
const signedAnnouncementSchema = announcementSchema.extend({
@@ -101,6 +102,7 @@ export async function POST(request: Request) {
softwareVersion: data.softwareVersion,
userCount: data.userCount,
postCount: data.postCount,
+ mediaCount: data.mediaCount,
isNsfw: data.isNsfw,
capabilities: data.capabilities,
lastSeenAt: new Date().toISOString(),
@@ -122,6 +124,7 @@ export async function POST(request: Request) {
softwareVersion: ourAnnouncement.softwareVersion,
userCount: ourAnnouncement.userCount,
postCount: ourAnnouncement.postCount,
+ mediaCount: ourAnnouncement.mediaCount,
isNsfw: ourAnnouncement.isNsfw,
capabilities: ourAnnouncement.capabilities,
lastSeenAt: new Date().toISOString(),
diff --git a/src/app/api/swarm/gossip/route.ts b/src/app/api/swarm/gossip/route.ts
index 9519d15..63cea2b 100644
--- a/src/app/api/swarm/gossip/route.ts
+++ b/src/app/api/swarm/gossip/route.ts
@@ -30,10 +30,11 @@ const nodeInfoSchema = z.object({
softwareVersion: z.string().optional(),
userCount: z.number().optional(),
postCount: z.number().optional(),
+ mediaCount: z.number().optional(),
isNsfw: z.boolean().optional(),
capabilities: z.array(z.enum(['handles', 'gossip', 'relay', 'search', 'interactions', 'e2ee_dm_v1'])).optional(),
lastSeenAt: z.string().optional(),
-});
+}).passthrough();
const gossipPayloadSchema = z.object({
sender: z.string().min(1),
@@ -41,7 +42,7 @@ const gossipPayloadSchema = z.object({
handles: z.array(handleSchema).optional(),
timestamp: z.string(),
since: z.string().optional(),
-});
+}).passthrough();
// Schema including signature for verification
const signedGossipSchema = gossipPayloadSchema.extend({
diff --git a/src/app/api/swarm/info/route.ts b/src/app/api/swarm/info/route.ts
index 8224acd..95aa7ce 100644
--- a/src/app/api/swarm/info/route.ts
+++ b/src/app/api/swarm/info/route.ts
@@ -26,6 +26,7 @@ export async function GET() {
softwareVersion: announcement.softwareVersion,
userCount: announcement.userCount,
postCount: announcement.postCount,
+ mediaCount: announcement.mediaCount,
isNsfw: announcement.isNsfw,
capabilities: announcement.capabilities,
lastSeenAt: new Date().toISOString(),
diff --git a/src/components/RightSidebar.tsx b/src/components/RightSidebar.tsx
index 93e0767..425d893 100644
--- a/src/components/RightSidebar.tsx
+++ b/src/components/RightSidebar.tsx
@@ -22,6 +22,17 @@ interface NodeInfo {
isNsfw: boolean;
}
+interface NetworkStats {
+ totalNodes: number;
+ totalUsers: number;
+ totalMedia: number;
+ totalPosts: number;
+}
+
+function formatNetworkTotal(value: number | undefined): string {
+ return typeof value === 'number' ? value.toLocaleString() : '—';
+}
+
export function RightSidebar() {
const fallbackDescription = process.env.NEXT_PUBLIC_NODE_DESCRIPTION || 'A swarm social network node.';
const [nodeInfo, setNodeInfo] = useState