From 79fbbc283a3395832d08744b857b8ba03dd2f7ab Mon Sep 17 00:00:00 2001
From: LittleSheep <littlesheep.code@hotmail.com>
Date: Wed, 21 May 2025 00:06:08 +0800
Subject: [PATCH] :card_file_box: Merge migrations

---
 .../DysonNetwork.Sphere.csproj                |    1 +
 ...0250514115228_InitialMigration.Designer.cs | 2827 --------------
 ...0250514142322_WalletAndPayment.Designer.cs | 3086 ---------------
 .../20250514142322_WalletAndPayment.cs        |  168 -
 ...250514150441_PublisherFeatures.Designer.cs | 3209 ----------------
 .../20250514150441_PublisherFeatures.cs       |   95 -
 ...164520_AddCustomAppsAndSecrets.Designer.cs | 3282 ----------------
 .../20250514164520_AddCustomAppsAndSecrets.cs |   82 -
 ...50514175019_AddRewardToCheckIn.Designer.cs | 3290 ----------------
 .../20250514175019_AddRewardToCheckIn.cs      |   38 -
 .../20250515165017_AddActionLogs.Designer.cs  | 3380 ----------------
 .../20250515165017_AddActionLogs.cs           |   84 -
 ...50516181203_AddAccountLeveling.Designer.cs | 3388 ----------------
 .../20250516181203_AddAccountLeveling.cs      |   41 -
 ...onalChatRoomNameAndDescription.Designer.cs | 3386 ----------------
 ...4042_OptionalChatRoomNameAndDescription.cs |   62 -
 ...517211759_IndexedMessageStatus.Designer.cs | 3390 ----------------
 .../20250517211759_IndexedMessageStatus.cs    |   28 -
 ...18041519_OptimizeDataStructure.Designer.cs | 3386 ----------------
 .../20250518041519_OptimizeDataStructure.cs   |  103 -
 ...0518092939_OptimizeFileStorage.Designer.cs | 3406 ----------------
 .../20250518092939_OptimizeFileStorage.cs     |  244 --
 ...8113150_DontKnowHowToNameThing.Designer.cs | 3414 -----------------
 .../20250518113150_DontKnowHowToNameThing.cs  |   37 -
 ...0250518123138_BetterLeavingChatAndRealm.cs |   50 -
 ...250520160525_InitialMigration.Designer.cs} |    4 +-
 ....cs => 20250520160525_InitialMigration.cs} |  387 +-
 27 files changed, 365 insertions(+), 40503 deletions(-)
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.Designer.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.cs
 delete mode 100644 DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.cs
 rename DysonNetwork.Sphere/Migrations/{20250518123138_BetterLeavingChatAndRealm.Designer.cs => 20250520160525_InitialMigration.Designer.cs} (99%)
 rename DysonNetwork.Sphere/Migrations/{20250514115228_InitialMigration.cs => 20250520160525_InitialMigration.cs} (81%)

diff --git a/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj b/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj
index 63d038f..2917848 100644
--- a/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj
+++ b/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj
@@ -70,6 +70,7 @@
     </ItemGroup>
 
     <ItemGroup>
+        <Folder Include="Migrations\" />
         <Folder Include="Uploads\"/>
     </ItemGroup>
 
diff --git a/DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.Designer.cs b/DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.Designer.cs
deleted file mode 100644
index cce0a5d..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.Designer.cs
+++ /dev/null
@@ -1,2827 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250514115228_InitialMigration")]
-    partial class InitialMigration
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<int>("PublisherType")
-                        .HasColumnType("integer")
-                        .HasColumnName("publisher_type");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.Designer.cs b/DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.Designer.cs
deleted file mode 100644
index e210a5d..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.Designer.cs
+++ /dev/null
@@ -1,3086 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250514142322_WalletAndPayment")]
-    partial class WalletAndPayment
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<int>("PublisherType")
-                        .HasColumnType("integer")
-                        .HasColumnName("publisher_type");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.cs b/DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.cs
deleted file mode 100644
index be88d80..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514142322_WalletAndPayment.cs
+++ /dev/null
@@ -1,168 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using NodaTime;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class WalletAndPayment : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateTable(
-                name: "wallets",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    account_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_wallets", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_wallets_accounts_account_id",
-                        column: x => x.account_id,
-                        principalTable: "accounts",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "payment_transactions",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    currency = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
-                    amount = table.Column<decimal>(type: "numeric", nullable: false),
-                    remarks = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
-                    type = table.Column<int>(type: "integer", nullable: false),
-                    payer_wallet_id = table.Column<Guid>(type: "uuid", nullable: true),
-                    payee_wallet_id = table.Column<Guid>(type: "uuid", nullable: true),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_payment_transactions", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_payment_transactions_wallets_payee_wallet_id",
-                        column: x => x.payee_wallet_id,
-                        principalTable: "wallets",
-                        principalColumn: "id");
-                    table.ForeignKey(
-                        name: "fk_payment_transactions_wallets_payer_wallet_id",
-                        column: x => x.payer_wallet_id,
-                        principalTable: "wallets",
-                        principalColumn: "id");
-                });
-
-            migrationBuilder.CreateTable(
-                name: "wallet_pockets",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    currency = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
-                    amount = table.Column<decimal>(type: "numeric", nullable: false),
-                    wallet_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_wallet_pockets", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_wallet_pockets_wallets_wallet_id",
-                        column: x => x.wallet_id,
-                        principalTable: "wallets",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "payment_orders",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    status = table.Column<int>(type: "integer", nullable: false),
-                    currency = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
-                    remarks = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
-                    amount = table.Column<decimal>(type: "numeric", nullable: false),
-                    expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    payee_wallet_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    transaction_id = table.Column<Guid>(type: "uuid", nullable: true),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_payment_orders", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_payment_orders_payment_transactions_transaction_id",
-                        column: x => x.transaction_id,
-                        principalTable: "payment_transactions",
-                        principalColumn: "id");
-                    table.ForeignKey(
-                        name: "fk_payment_orders_wallets_payee_wallet_id",
-                        column: x => x.payee_wallet_id,
-                        principalTable: "wallets",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "ix_payment_orders_payee_wallet_id",
-                table: "payment_orders",
-                column: "payee_wallet_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_payment_orders_transaction_id",
-                table: "payment_orders",
-                column: "transaction_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_payment_transactions_payee_wallet_id",
-                table: "payment_transactions",
-                column: "payee_wallet_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_payment_transactions_payer_wallet_id",
-                table: "payment_transactions",
-                column: "payer_wallet_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_wallet_pockets_wallet_id",
-                table: "wallet_pockets",
-                column: "wallet_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_wallets_account_id",
-                table: "wallets",
-                column: "account_id");
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "payment_orders");
-
-            migrationBuilder.DropTable(
-                name: "wallet_pockets");
-
-            migrationBuilder.DropTable(
-                name: "payment_transactions");
-
-            migrationBuilder.DropTable(
-                name: "wallets");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.Designer.cs b/DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.Designer.cs
deleted file mode 100644
index 92ed546..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.Designer.cs
+++ /dev/null
@@ -1,3209 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250514150441_PublisherFeatures")]
-    partial class PublisherFeatures
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.cs b/DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.cs
deleted file mode 100644
index 683571e..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514150441_PublisherFeatures.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using NodaTime;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class PublisherFeatures : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.RenameColumn(
-                name: "publisher_type",
-                table: "publishers",
-                newName: "type");
-
-            migrationBuilder.CreateTable(
-                name: "custom_apps",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    slug = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
-                    name = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
-                    status = table.Column<int>(type: "integer", nullable: false),
-                    verified_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
-                    verified_as = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
-                    publisher_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_custom_apps", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_custom_apps_publishers_publisher_id",
-                        column: x => x.publisher_id,
-                        principalTable: "publishers",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateTable(
-                name: "publisher_features",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    flag = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
-                    expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
-                    publisher_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_publisher_features", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_publisher_features_publishers_publisher_id",
-                        column: x => x.publisher_id,
-                        principalTable: "publishers",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "ix_custom_apps_publisher_id",
-                table: "custom_apps",
-                column: "publisher_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_publisher_features_publisher_id",
-                table: "publisher_features",
-                column: "publisher_id");
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "custom_apps");
-
-            migrationBuilder.DropTable(
-                name: "publisher_features");
-
-            migrationBuilder.RenameColumn(
-                name: "type",
-                table: "publishers",
-                newName: "publisher_type");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.Designer.cs b/DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.Designer.cs
deleted file mode 100644
index 3947bee..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.Designer.cs
+++ /dev/null
@@ -1,3282 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250514164520_AddCustomAppsAndSecrets")]
-    partial class AddCustomAppsAndSecrets
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.cs b/DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.cs
deleted file mode 100644
index 8f7c42f..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514164520_AddCustomAppsAndSecrets.cs
+++ /dev/null
@@ -1,82 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using NodaTime;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class AddCustomAppsAndSecrets : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AddColumn<Guid>(
-                name: "issuer_app_id",
-                table: "payment_orders",
-                type: "uuid",
-                nullable: true);
-
-            migrationBuilder.CreateTable(
-                name: "custom_app_secrets",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    secret = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
-                    remarks = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
-                    expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
-                    app_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_custom_app_secrets", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_custom_app_secrets_custom_apps_app_id",
-                        column: x => x.app_id,
-                        principalTable: "custom_apps",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "ix_payment_orders_issuer_app_id",
-                table: "payment_orders",
-                column: "issuer_app_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_custom_app_secrets_app_id",
-                table: "custom_app_secrets",
-                column: "app_id");
-
-            migrationBuilder.AddForeignKey(
-                name: "fk_payment_orders_custom_apps_issuer_app_id",
-                table: "payment_orders",
-                column: "issuer_app_id",
-                principalTable: "custom_apps",
-                principalColumn: "id");
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropForeignKey(
-                name: "fk_payment_orders_custom_apps_issuer_app_id",
-                table: "payment_orders");
-
-            migrationBuilder.DropTable(
-                name: "custom_app_secrets");
-
-            migrationBuilder.DropIndex(
-                name: "ix_payment_orders_issuer_app_id",
-                table: "payment_orders");
-
-            migrationBuilder.DropColumn(
-                name: "issuer_app_id",
-                table: "payment_orders");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.Designer.cs b/DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.Designer.cs
deleted file mode 100644
index 546762e..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.Designer.cs
+++ /dev/null
@@ -1,3290 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250514175019_AddRewardToCheckIn")]
-    partial class AddRewardToCheckIn
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.cs b/DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.cs
deleted file mode 100644
index 12e27d9..0000000
--- a/DysonNetwork.Sphere/Migrations/20250514175019_AddRewardToCheckIn.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class AddRewardToCheckIn : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AddColumn<int>(
-                name: "reward_experience",
-                table: "account_check_in_results",
-                type: "integer",
-                nullable: true);
-
-            migrationBuilder.AddColumn<decimal>(
-                name: "reward_points",
-                table: "account_check_in_results",
-                type: "numeric",
-                nullable: true);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "reward_experience",
-                table: "account_check_in_results");
-
-            migrationBuilder.DropColumn(
-                name: "reward_points",
-                table: "account_check_in_results");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.Designer.cs b/DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.Designer.cs
deleted file mode 100644
index 0465807..0000000
--- a/DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.Designer.cs
+++ /dev/null
@@ -1,3380 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-using Point = NetTopologySuite.Geometries.Point;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250515165017_AddActionLogs")]
-    partial class AddActionLogs
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.cs b/DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.cs
deleted file mode 100644
index 83df186..0000000
--- a/DysonNetwork.Sphere/Migrations/20250515165017_AddActionLogs.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Microsoft.EntityFrameworkCore.Migrations;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Point = NetTopologySuite.Geometries.Point;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class AddActionLogs : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AlterDatabase()
-                .Annotation("Npgsql:PostgresExtension:postgis", ",,");
-
-            migrationBuilder.AddColumn<Point>(
-                name: "location",
-                table: "auth_challenges",
-                type: "geometry",
-                nullable: true);
-
-            migrationBuilder.CreateTable(
-                name: "action_logs",
-                columns: table => new
-                {
-                    id = table.Column<Guid>(type: "uuid", nullable: false),
-                    action = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: false),
-                    meta = table.Column<Dictionary<string, object>>(type: "jsonb", nullable: false),
-                    user_agent = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: true),
-                    ip_address = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
-                    location = table.Column<Point>(type: "geometry", nullable: true),
-                    account_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    session_id = table.Column<Guid>(type: "uuid", nullable: true),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_action_logs", x => x.id);
-                    table.ForeignKey(
-                        name: "fk_action_logs_accounts_account_id",
-                        column: x => x.account_id,
-                        principalTable: "accounts",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "fk_action_logs_auth_sessions_session_id",
-                        column: x => x.session_id,
-                        principalTable: "auth_sessions",
-                        principalColumn: "id");
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "ix_action_logs_account_id",
-                table: "action_logs",
-                column: "account_id");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_action_logs_session_id",
-                table: "action_logs",
-                column: "session_id");
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "action_logs");
-
-            migrationBuilder.DropColumn(
-                name: "location",
-                table: "auth_challenges");
-
-            migrationBuilder.AlterDatabase()
-                .OldAnnotation("Npgsql:PostgresExtension:postgis", ",,");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.Designer.cs b/DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.Designer.cs
deleted file mode 100644
index 406d54a..0000000
--- a/DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.Designer.cs
+++ /dev/null
@@ -1,3388 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-using Point = NetTopologySuite.Geometries.Point;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250516181203_AddAccountLeveling")]
-    partial class AddAccountLeveling
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Experience")
-                        .HasColumnType("integer")
-                        .HasColumnName("experience");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.cs b/DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.cs
deleted file mode 100644
index 20b6921..0000000
--- a/DysonNetwork.Sphere/Migrations/20250516181203_AddAccountLeveling.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class AddAccountLeveling : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AddColumn<Guid>(
-                name: "account_id",
-                table: "account_profiles",
-                type: "uuid",
-                nullable: false,
-                defaultValue: new Guid("00000000-0000-0000-0000-000000000000"));
-
-            migrationBuilder.AddColumn<int>(
-                name: "experience",
-                table: "account_profiles",
-                type: "integer",
-                nullable: false,
-                defaultValue: 0);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "account_id",
-                table: "account_profiles");
-
-            migrationBuilder.DropColumn(
-                name: "experience",
-                table: "account_profiles");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.Designer.cs b/DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.Designer.cs
deleted file mode 100644
index 78cb24e..0000000
--- a/DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.Designer.cs
+++ /dev/null
@@ -1,3386 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-using Point = NetTopologySuite.Geometries.Point;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250517144042_OptionalChatRoomNameAndDescription")]
-    partial class OptionalChatRoomNameAndDescription
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Experience")
-                        .HasColumnType("integer")
-                        .HasColumnName("experience");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.cs b/DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.cs
deleted file mode 100644
index ee6064b..0000000
--- a/DysonNetwork.Sphere/Migrations/20250517144042_OptionalChatRoomNameAndDescription.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class OptionalChatRoomNameAndDescription : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AlterColumn<string>(
-                name: "name",
-                table: "chat_rooms",
-                type: "character varying(1024)",
-                maxLength: 1024,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(1024)",
-                oldMaxLength: 1024);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "description",
-                table: "chat_rooms",
-                type: "character varying(4096)",
-                maxLength: 4096,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(4096)",
-                oldMaxLength: 4096);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AlterColumn<string>(
-                name: "name",
-                table: "chat_rooms",
-                type: "character varying(1024)",
-                maxLength: 1024,
-                nullable: false,
-                defaultValue: "",
-                oldClrType: typeof(string),
-                oldType: "character varying(1024)",
-                oldMaxLength: 1024,
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "description",
-                table: "chat_rooms",
-                type: "character varying(4096)",
-                maxLength: 4096,
-                nullable: false,
-                defaultValue: "",
-                oldClrType: typeof(string),
-                oldType: "character varying(4096)",
-                oldMaxLength: 4096,
-                oldNullable: true);
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.Designer.cs b/DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.Designer.cs
deleted file mode 100644
index a65ac75..0000000
--- a/DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.Designer.cs
+++ /dev/null
@@ -1,3390 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-using Point = NetTopologySuite.Geometries.Point;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250517211759_IndexedMessageStatus")]
-    partial class IndexedMessageStatus
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Experience")
-                        .HasColumnType("integer")
-                        .HasColumnName("experience");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ReadAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("read_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_statuses");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_statuses_sender_id");
-
-                    b.HasIndex("MessageId", "SenderId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_chat_statuses_message_id_sender_id");
-
-                    b.ToTable("chat_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageStatus", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_statuses_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.cs b/DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.cs
deleted file mode 100644
index a7fe821..0000000
--- a/DysonNetwork.Sphere/Migrations/20250517211759_IndexedMessageStatus.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class IndexedMessageStatus : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateIndex(
-                name: "ix_chat_statuses_message_id_sender_id",
-                table: "chat_statuses",
-                columns: new[] { "message_id", "sender_id" },
-                unique: true);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropIndex(
-                name: "ix_chat_statuses_message_id_sender_id",
-                table: "chat_statuses");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.Designer.cs b/DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.Designer.cs
deleted file mode 100644
index 9e75a16..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.Designer.cs
+++ /dev/null
@@ -1,3386 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-using Point = NetTopologySuite.Geometries.Point;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250518041519_OptimizeDataStructure")]
-    partial class OptimizeDataStructure
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Experience")
-                        .HasColumnType("integer")
-                        .HasColumnName("experience");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReadReceipt", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_read_receipts");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_read_receipts_sender_id");
-
-                    b.HasIndex("MessageId", "SenderId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_chat_read_receipts_message_id_sender_id");
-
-                    b.ToTable("chat_read_receipts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReadReceipt", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_read_receipts_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_read_receipts_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.cs b/DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.cs
deleted file mode 100644
index 4de5db4..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518041519_OptimizeDataStructure.cs
+++ /dev/null
@@ -1,103 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-using NodaTime;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class OptimizeDataStructure : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "chat_statuses");
-
-            migrationBuilder.CreateTable(
-                name: "chat_read_receipts",
-                columns: table => new
-                {
-                    message_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    sender_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_chat_read_receipts", x => new { x.message_id, x.sender_id });
-                    table.ForeignKey(
-                        name: "fk_chat_read_receipts_chat_members_sender_id",
-                        column: x => x.sender_id,
-                        principalTable: "chat_members",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "fk_chat_read_receipts_chat_messages_message_id",
-                        column: x => x.message_id,
-                        principalTable: "chat_messages",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "ix_chat_read_receipts_message_id_sender_id",
-                table: "chat_read_receipts",
-                columns: new[] { "message_id", "sender_id" },
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "ix_chat_read_receipts_sender_id",
-                table: "chat_read_receipts",
-                column: "sender_id");
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropTable(
-                name: "chat_read_receipts");
-
-            migrationBuilder.CreateTable(
-                name: "chat_statuses",
-                columns: table => new
-                {
-                    message_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    sender_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
-                    read_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
-                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false)
-                },
-                constraints: table =>
-                {
-                    table.PrimaryKey("pk_chat_statuses", x => new { x.message_id, x.sender_id });
-                    table.ForeignKey(
-                        name: "fk_chat_statuses_chat_members_sender_id",
-                        column: x => x.sender_id,
-                        principalTable: "chat_members",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                    table.ForeignKey(
-                        name: "fk_chat_statuses_chat_messages_message_id",
-                        column: x => x.message_id,
-                        principalTable: "chat_messages",
-                        principalColumn: "id",
-                        onDelete: ReferentialAction.Cascade);
-                });
-
-            migrationBuilder.CreateIndex(
-                name: "ix_chat_statuses_message_id_sender_id",
-                table: "chat_statuses",
-                columns: new[] { "message_id", "sender_id" },
-                unique: true);
-
-            migrationBuilder.CreateIndex(
-                name: "ix_chat_statuses_sender_id",
-                table: "chat_statuses",
-                column: "sender_id");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.Designer.cs b/DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.Designer.cs
deleted file mode 100644
index 7e15a0a..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.Designer.cs
+++ /dev/null
@@ -1,3406 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using DysonNetwork.Sphere.Storage;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250518092939_OptimizeFileStorage")]
-    partial class OptimizeFileStorage
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Experience")
-                        .HasColumnType("integer")
-                        .HasColumnName("experience");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReadReceipt", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_read_receipts");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_read_receipts_sender_id");
-
-                    b.HasIndex("MessageId", "SenderId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_chat_read_receipts_message_id_sender_id");
-
-                    b.ToTable("chat_read_receipts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<List<CloudFileSensitiveMark>>("SensitiveMarks")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("sensitive_marks");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<string>("StorageId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("storage_id");
-
-                    b.Property<string>("StorageUrl")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("storage_url");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReadReceipt", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_read_receipts_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_read_receipts_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.cs b/DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.cs
deleted file mode 100644
index ea670b2..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518092939_OptimizeFileStorage.cs
+++ /dev/null
@@ -1,244 +0,0 @@
-using System.Collections.Generic;
-using DysonNetwork.Sphere.Storage;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class OptimizeFileStorage : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AlterColumn<string>(
-                name: "image_id",
-                table: "stickers",
-                type: "character varying(32)",
-                nullable: false,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)");
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "realms",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "realms",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "publishers",
-                type: "character varying(32)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "publishers",
-                type: "character varying(32)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "id",
-                table: "files",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: false,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldMaxLength: 128);
-
-            migrationBuilder.AddColumn<List<CloudFileSensitiveMark>>(
-                name: "sensitive_marks",
-                table: "files",
-                type: "jsonb",
-                nullable: true);
-
-            migrationBuilder.AddColumn<string>(
-                name: "storage_id",
-                table: "files",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true);
-
-            migrationBuilder.AddColumn<string>(
-                name: "storage_url",
-                table: "files",
-                type: "character varying(4096)",
-                maxLength: 4096,
-                nullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "chat_rooms",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "chat_rooms",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "account_profiles",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "account_profiles",
-                type: "character varying(32)",
-                maxLength: 32,
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(128)",
-                oldNullable: true);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "sensitive_marks",
-                table: "files");
-
-            migrationBuilder.DropColumn(
-                name: "storage_id",
-                table: "files");
-
-            migrationBuilder.DropColumn(
-                name: "storage_url",
-                table: "files");
-
-            migrationBuilder.AlterColumn<string>(
-                name: "image_id",
-                table: "stickers",
-                type: "character varying(128)",
-                nullable: false,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)");
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "realms",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32,
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "realms",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32,
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "publishers",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "publishers",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "id",
-                table: "files",
-                type: "character varying(128)",
-                maxLength: 128,
-                nullable: false,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "chat_rooms",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32,
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "chat_rooms",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32,
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "picture_id",
-                table: "account_profiles",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32,
-                oldNullable: true);
-
-            migrationBuilder.AlterColumn<string>(
-                name: "background_id",
-                table: "account_profiles",
-                type: "character varying(128)",
-                nullable: true,
-                oldClrType: typeof(string),
-                oldType: "character varying(32)",
-                oldMaxLength: 32,
-                oldNullable: true);
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.Designer.cs b/DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.Designer.cs
deleted file mode 100644
index 661e765..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.Designer.cs
+++ /dev/null
@@ -1,3414 +0,0 @@
-// <auto-generated />
-using System;
-using System.Collections.Generic;
-using System.Text.Json;
-using DysonNetwork.Sphere;
-using DysonNetwork.Sphere.Account;
-using DysonNetwork.Sphere.Storage;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using NetTopologySuite.Geometries;
-using NodaTime;
-using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
-using NpgsqlTypes;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    [DbContext(typeof(AppDatabase))]
-    [Migration("20250518113150_DontKnowHowToNameThing")]
-    partial class DontKnowHowToNameThing
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.3")
-                .HasAnnotation("Relational:MaxIdentifierLength", 63);
-
-            NpgsqlModelBuilderExtensions.HasPostgresExtension(modelBuilder, "postgis");
-            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant?>("ActivatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("activated_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsSuperuser")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_superuser");
-
-                    b.Property<string>("Language")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("language");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_accounts");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_accounts_name");
-
-                    b.ToTable("accounts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Secret")
-                        .HasMaxLength(8196)
-                        .HasColumnType("character varying(8196)")
-                        .HasColumnName("secret");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_auth_factors");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_auth_factors_account_id");
-
-                    b.ToTable("account_auth_factors", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_contacts");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_contacts_account_id");
-
-                    b.ToTable("account_contacts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Action")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("action");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Guid?>("SessionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("session_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_action_logs");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_action_logs_account_id");
-
-                    b.HasIndex("SessionId")
-                        .HasDatabaseName("ix_action_logs_session_id");
-
-                    b.ToTable("action_logs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Caption")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("caption");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_badges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_badges_account_id");
-
-                    b.ToTable("badges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Level")
-                        .HasColumnType("integer")
-                        .HasColumnName("level");
-
-                    b.Property<int?>("RewardExperience")
-                        .HasColumnType("integer")
-                        .HasColumnName("reward_experience");
-
-                    b.Property<decimal?>("RewardPoints")
-                        .HasColumnType("numeric")
-                        .HasColumnName("reward_points");
-
-                    b.Property<ICollection<FortuneTip>>("Tips")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("tips");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_check_in_results");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_check_in_results_account_id");
-
-                    b.ToTable("account_check_in_results", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiresAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expires_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Spell")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("spell");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_magic_spells");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_magic_spells_account_id");
-
-                    b.HasIndex("Spell")
-                        .IsUnique()
-                        .HasDatabaseName("ix_magic_spells_spell");
-
-                    b.ToTable("magic_spells", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<int>("Priority")
-                        .HasColumnType("integer")
-                        .HasColumnName("priority");
-
-                    b.Property<string>("Subtitle")
-                        .HasMaxLength(2048)
-                        .HasColumnType("character varying(2048)")
-                        .HasColumnName("subtitle");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<string>("Topic")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("topic");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("ViewedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("viewed_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notifications");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notifications_account_id");
-
-                    b.ToTable("notifications", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_id");
-
-                    b.Property<string>("DeviceToken")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("device_token");
-
-                    b.Property<Instant?>("LastUsedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_used_at");
-
-                    b.Property<int>("Provider")
-                        .HasColumnType("integer")
-                        .HasColumnName("provider");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_notification_push_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_notification_push_subscriptions_account_id");
-
-                    b.HasIndex("DeviceId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_id");
-
-                    b.HasIndex("DeviceToken")
-                        .IsUnique()
-                        .HasDatabaseName("ix_notification_push_subscriptions_device_token");
-
-                    b.ToTable("notification_push_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<int>("Experience")
-                        .HasColumnType("integer")
-                        .HasColumnName("experience");
-
-                    b.Property<string>("FirstName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("first_name");
-
-                    b.Property<string>("LastName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("last_name");
-
-                    b.Property<string>("MiddleName")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("middle_name");
-
-                    b.Property<string>("PictureId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_profiles");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_account_profiles_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_account_profiles_picture_id");
-
-                    b.ToTable("account_profiles", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("RelatedId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("related_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("AccountId", "RelatedId")
-                        .HasName("pk_account_relationships");
-
-                    b.HasIndex("RelatedId")
-                        .HasDatabaseName("ix_account_relationships_related_id");
-
-                    b.ToTable("account_relationships", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant?>("ClearedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("cleared_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsInvisible")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_invisible");
-
-                    b.Property<bool>("IsNotDisturb")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_not_disturb");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_account_statuses");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_account_statuses_account_id");
-
-                    b.ToTable("account_statuses", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("ResourceIdentifier")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("resource_identifier");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<ICollection<Guid>>("UsersVisible")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("users_visible");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_activities");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_activities_account_id");
-
-                    b.ToTable("activities", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<List<string>>("Audiences")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("audiences");
-
-                    b.Property<List<Guid>>("BlacklistFactors")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("blacklist_factors");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("DeviceId")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("device_id");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<int>("FailedAttempts")
-                        .HasColumnType("integer")
-                        .HasColumnName("failed_attempts");
-
-                    b.Property<string>("IpAddress")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("ip_address");
-
-                    b.Property<Point>("Location")
-                        .HasColumnType("geometry")
-                        .HasColumnName("location");
-
-                    b.Property<string>("Nonce")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nonce");
-
-                    b.Property<int>("Platform")
-                        .HasColumnType("integer")
-                        .HasColumnName("platform");
-
-                    b.Property<List<string>>("Scopes")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("scopes");
-
-                    b.Property<int>("StepRemain")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_remain");
-
-                    b.Property<int>("StepTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("step_total");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("UserAgent")
-                        .HasMaxLength(512)
-                        .HasColumnType("character varying(512)")
-                        .HasColumnName("user_agent");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_challenges");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_challenges_account_id");
-
-                    b.ToTable("auth_challenges", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChallengeId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("challenge_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Label")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("label");
-
-                    b.Property<Instant?>("LastGrantedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("last_granted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_auth_sessions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_auth_sessions_account_id");
-
-                    b.HasIndex("ChallengeId")
-                        .HasDatabaseName("ix_auth_sessions_challenge_id");
-
-                    b.ToTable("auth_sessions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<bool>("IsBot")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_bot");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<string>("Nick")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("nick");
-
-                    b.Property<int>("Notify")
-                        .HasColumnType("integer")
-                        .HasColumnName("notify");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_members");
-
-                    b.HasAlternateKey("ChatRoomId", "AccountId")
-                        .HasName("ak_chat_members_chat_room_id_account_id");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_chat_members_account_id");
-
-                    b.ToTable("chat_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_rooms");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_chat_rooms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_chat_rooms_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_chat_rooms_realm_id");
-
-                    b.ToTable("chat_rooms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("ChatRoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("chat_room_id");
-
-                    b.Property<string>("Content")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_message_id");
-
-                    b.Property<List<Guid>>("MembersMentioned")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("members_mentioned");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<string>("Nonce")
-                        .IsRequired()
-                        .HasMaxLength(36)
-                        .HasColumnType("character varying(36)")
-                        .HasColumnName("nonce");
-
-                    b.Property<Guid?>("RepliedMessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Type")
-                        .IsRequired()
-                        .HasColumnType("text")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_messages");
-
-                    b.HasIndex("ChatRoomId")
-                        .HasDatabaseName("ix_chat_messages_chat_room_id");
-
-                    b.HasIndex("ForwardedMessageId")
-                        .HasDatabaseName("ix_chat_messages_forwarded_message_id");
-
-                    b.HasIndex("RepliedMessageId")
-                        .HasDatabaseName("ix_chat_messages_replied_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_messages_sender_id");
-
-                    b.ToTable("chat_messages", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_reactions");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_chat_reactions_message_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_reactions_sender_id");
-
-                    b.ToTable("chat_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReadReceipt", b =>
-                {
-                    b.Property<Guid>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("MessageId", "SenderId")
-                        .HasName("pk_chat_read_receipts");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_read_receipts_sender_id");
-
-                    b.HasIndex("MessageId", "SenderId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_chat_read_receipts_message_id_sender_id");
-
-                    b.ToTable("chat_read_receipts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("EndedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("ended_at");
-
-                    b.Property<Guid>("RoomId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("room_id");
-
-                    b.Property<Guid>("SenderId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("sender_id");
-
-                    b.Property<string>("Title")
-                        .HasColumnType("text")
-                        .HasColumnName("title");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_chat_realtime_call");
-
-                    b.HasIndex("RoomId")
-                        .HasDatabaseName("ix_chat_realtime_call_room_id");
-
-                    b.HasIndex("SenderId")
-                        .HasDatabaseName("ix_chat_realtime_call_sender_id");
-
-                    b.ToTable("chat_realtime_call", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_apps");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_custom_apps_publisher_id");
-
-                    b.ToTable("custom_apps", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("app_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<string>("Secret")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("secret");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_custom_app_secrets");
-
-                    b.HasIndex("AppId")
-                        .HasDatabaseName("ix_custom_app_secrets_app_id");
-
-                    b.ToTable("custom_app_secrets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_groups");
-
-                    b.ToTable("permission_groups", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.Property<Guid>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Actor")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("GroupId", "Actor")
-                        .HasName("pk_permission_group_members");
-
-                    b.ToTable("permission_group_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Actor")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("actor");
-
-                    b.Property<Instant?>("AffectedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("affected_at");
-
-                    b.Property<string>("Area")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("area");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("GroupId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("group_id");
-
-                    b.Property<string>("Key")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("key");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<JsonDocument>("Value")
-                        .IsRequired()
-                        .HasColumnType("jsonb")
-                        .HasColumnName("value");
-
-                    b.HasKey("Id")
-                        .HasName("pk_permission_nodes");
-
-                    b.HasIndex("GroupId")
-                        .HasDatabaseName("ix_permission_nodes_group_id");
-
-                    b.HasIndex("Key", "Area", "Actor")
-                        .HasDatabaseName("ix_permission_nodes_key_area_actor");
-
-                    b.ToTable("permission_nodes", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<string>("Content")
-                        .HasColumnType("text")
-                        .HasColumnName("content");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<int>("Downvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("downvotes");
-
-                    b.Property<Instant?>("EditedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("edited_at");
-
-                    b.Property<Guid?>("ForwardedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("forwarded_post_id");
-
-                    b.Property<string>("Language")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("language");
-
-                    b.Property<Dictionary<string, object>>("Meta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("meta");
-
-                    b.Property<Instant?>("PublishedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("published_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid?>("RepliedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("replied_post_id");
-
-                    b.Property<NpgsqlTsVector>("SearchVector")
-                        .IsRequired()
-                        .ValueGeneratedOnAddOrUpdate()
-                        .HasColumnType("tsvector")
-                        .HasColumnName("search_vector")
-                        .HasAnnotation("Npgsql:TsVectorConfig", "simple")
-                        .HasAnnotation("Npgsql:TsVectorProperties", new[] { "Title", "Description", "Content" });
-
-                    b.Property<Guid?>("ThreadedPostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("threaded_post_id");
-
-                    b.Property<string>("Title")
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("title");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<int>("Upvotes")
-                        .HasColumnType("integer")
-                        .HasColumnName("upvotes");
-
-                    b.Property<int>("ViewsTotal")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_total");
-
-                    b.Property<int>("ViewsUnique")
-                        .HasColumnType("integer")
-                        .HasColumnName("views_unique");
-
-                    b.Property<int>("Visibility")
-                        .HasColumnType("integer")
-                        .HasColumnName("visibility");
-
-                    b.HasKey("Id")
-                        .HasName("pk_posts");
-
-                    b.HasIndex("ForwardedPostId")
-                        .HasDatabaseName("ix_posts_forwarded_post_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_posts_publisher_id");
-
-                    b.HasIndex("RepliedPostId")
-                        .HasDatabaseName("ix_posts_replied_post_id");
-
-                    b.HasIndex("SearchVector")
-                        .HasDatabaseName("ix_posts_search_vector");
-
-                    NpgsqlIndexBuilderExtensions.HasMethod(b.HasIndex("SearchVector"), "GIN");
-
-                    b.HasIndex("ThreadedPostId")
-                        .IsUnique()
-                        .HasDatabaseName("ix_posts_threaded_post_id");
-
-                    b.ToTable("posts", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCategory", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_categories");
-
-                    b.ToTable("post_categories", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_collections");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_post_collections_publisher_id");
-
-                    b.ToTable("post_collections", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<int>("Attitude")
-                        .HasColumnType("integer")
-                        .HasColumnName("attitude");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<string>("Symbol")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("symbol");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_reactions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_post_reactions_account_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_post_reactions_post_id");
-
-                    b.ToTable("post_reactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostTag", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_post_tags");
-
-                    b.ToTable("post_tags", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid?>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<string>("Bio")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("bio");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Nick")
-                        .IsRequired()
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("nick");
-
-                    b.Property<string>("PictureId")
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<Guid?>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publishers");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publishers_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_publishers_background_id");
-
-                    b.HasIndex("Name")
-                        .IsUnique()
-                        .HasDatabaseName("ix_publishers_name");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_publishers_picture_id");
-
-                    b.HasIndex("RealmId")
-                        .HasDatabaseName("ix_publishers_realm_id");
-
-                    b.ToTable("publishers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<string>("Flag")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("flag");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_features");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_features_publisher_id");
-
-                    b.ToTable("publisher_features", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("PublisherId", "AccountId")
-                        .HasName("pk_publisher_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_members_account_id");
-
-                    b.ToTable("publisher_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<int>("Tier")
-                        .HasColumnType("integer")
-                        .HasColumnName("tier");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_publisher_subscriptions");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_publisher_subscriptions_account_id");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_publisher_subscriptions_publisher_id");
-
-                    b.ToTable("publisher_subscriptions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<string>("BackgroundId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("background_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<bool>("IsCommunity")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_community");
-
-                    b.Property<bool>("IsPublic")
-                        .HasColumnType("boolean")
-                        .HasColumnName("is_public");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("PictureId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("picture_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<string>("VerifiedAs")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("verified_as");
-
-                    b.Property<Instant?>("VerifiedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("verified_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_realms");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realms_account_id");
-
-                    b.HasIndex("BackgroundId")
-                        .HasDatabaseName("ix_realms_background_id");
-
-                    b.HasIndex("PictureId")
-                        .HasDatabaseName("ix_realms_picture_id");
-
-                    b.HasIndex("Slug")
-                        .IsUnique()
-                        .HasDatabaseName("ix_realms_slug");
-
-                    b.ToTable("realms", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.Property<Guid>("RealmId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("realm_id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant?>("JoinedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("joined_at");
-
-                    b.Property<int>("Role")
-                        .HasColumnType("integer")
-                        .HasColumnName("role");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("RealmId", "AccountId")
-                        .HasName("pk_realm_members");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_realm_members_account_id");
-
-                    b.ToTable("realm_members", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("ImageId")
-                        .IsRequired()
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("image_id");
-
-                    b.Property<Guid>("PackId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("pack_id");
-
-                    b.Property<string>("Slug")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("slug");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_stickers");
-
-                    b.HasIndex("ImageId")
-                        .HasDatabaseName("ix_stickers_image_id");
-
-                    b.HasIndex("PackId")
-                        .HasDatabaseName("ix_stickers_pack_id");
-
-                    b.HasIndex("Slug")
-                        .HasDatabaseName("ix_stickers_slug");
-
-                    b.ToTable("stickers", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .IsRequired()
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<string>("Prefix")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("prefix");
-
-                    b.Property<Guid>("PublisherId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("publisher_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_sticker_packs");
-
-                    b.HasIndex("Prefix")
-                        .IsUnique()
-                        .HasDatabaseName("ix_sticker_packs_prefix");
-
-                    b.HasIndex("PublisherId")
-                        .HasDatabaseName("ix_sticker_packs_publisher_id");
-
-                    b.ToTable("sticker_packs", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.Property<string>("Id")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<string>("Description")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("description");
-
-                    b.Property<Instant?>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Dictionary<string, object>>("FileMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("file_meta");
-
-                    b.Property<bool>("HasCompression")
-                        .HasColumnType("boolean")
-                        .HasColumnName("has_compression");
-
-                    b.Property<string>("Hash")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("hash");
-
-                    b.Property<Guid?>("MessageId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("message_id");
-
-                    b.Property<string>("MimeType")
-                        .HasMaxLength(256)
-                        .HasColumnType("character varying(256)")
-                        .HasColumnName("mime_type");
-
-                    b.Property<string>("Name")
-                        .IsRequired()
-                        .HasMaxLength(1024)
-                        .HasColumnType("character varying(1024)")
-                        .HasColumnName("name");
-
-                    b.Property<Guid?>("PostId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("post_id");
-
-                    b.Property<List<CloudFileSensitiveMark>>("SensitiveMarks")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("sensitive_marks");
-
-                    b.Property<long>("Size")
-                        .HasColumnType("bigint")
-                        .HasColumnName("size");
-
-                    b.Property<string>("StorageId")
-                        .HasMaxLength(32)
-                        .HasColumnType("character varying(32)")
-                        .HasColumnName("storage_id");
-
-                    b.Property<string>("StorageUrl")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("storage_url");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Instant?>("UploadedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("uploaded_at");
-
-                    b.Property<string>("UploadedTo")
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("uploaded_to");
-
-                    b.Property<int>("UsedCount")
-                        .HasColumnType("integer")
-                        .HasColumnName("used_count");
-
-                    b.Property<Dictionary<string, object>>("UserMeta")
-                        .HasColumnType("jsonb")
-                        .HasColumnName("user_meta");
-
-                    b.HasKey("Id")
-                        .HasName("pk_files");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_files_account_id");
-
-                    b.HasIndex("MessageId")
-                        .HasDatabaseName("ix_files_message_id");
-
-                    b.HasIndex("PostId")
-                        .HasDatabaseName("ix_files_post_id");
-
-                    b.ToTable("files", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("ExpiredAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("expired_at");
-
-                    b.Property<Guid?>("IssuerAppId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("issuer_app_id");
-
-                    b.Property<Guid>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Status")
-                        .HasColumnType("integer")
-                        .HasColumnName("status");
-
-                    b.Property<Guid?>("TransactionId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("transaction_id");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_orders");
-
-                    b.HasIndex("IssuerAppId")
-                        .HasDatabaseName("ix_payment_orders_issuer_app_id");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_orders_payee_wallet_id");
-
-                    b.HasIndex("TransactionId")
-                        .HasDatabaseName("ix_payment_orders_transaction_id");
-
-                    b.ToTable("payment_orders", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Guid?>("PayeeWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payee_wallet_id");
-
-                    b.Property<Guid?>("PayerWalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("payer_wallet_id");
-
-                    b.Property<string>("Remarks")
-                        .HasMaxLength(4096)
-                        .HasColumnType("character varying(4096)")
-                        .HasColumnName("remarks");
-
-                    b.Property<int>("Type")
-                        .HasColumnType("integer")
-                        .HasColumnName("type");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_payment_transactions");
-
-                    b.HasIndex("PayeeWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payee_wallet_id");
-
-                    b.HasIndex("PayerWalletId")
-                        .HasDatabaseName("ix_payment_transactions_payer_wallet_id");
-
-                    b.ToTable("payment_transactions", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<Guid>("AccountId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("account_id");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallets");
-
-                    b.HasIndex("AccountId")
-                        .HasDatabaseName("ix_wallets_account_id");
-
-                    b.ToTable("wallets", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.Property<Guid>("Id")
-                        .ValueGeneratedOnAdd()
-                        .HasColumnType("uuid")
-                        .HasColumnName("id");
-
-                    b.Property<decimal>("Amount")
-                        .HasColumnType("numeric")
-                        .HasColumnName("amount");
-
-                    b.Property<Instant>("CreatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("created_at");
-
-                    b.Property<string>("Currency")
-                        .IsRequired()
-                        .HasMaxLength(128)
-                        .HasColumnType("character varying(128)")
-                        .HasColumnName("currency");
-
-                    b.Property<Instant?>("DeletedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("deleted_at");
-
-                    b.Property<Instant>("UpdatedAt")
-                        .HasColumnType("timestamp with time zone")
-                        .HasColumnName("updated_at");
-
-                    b.Property<Guid>("WalletId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("wallet_id");
-
-                    b.HasKey("Id")
-                        .HasName("pk_wallet_pockets");
-
-                    b.HasIndex("WalletId")
-                        .HasDatabaseName("ix_wallet_pockets_wallet_id");
-
-                    b.ToTable("wallet_pockets", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.Property<Guid>("CategoriesId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("categories_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CategoriesId", "PostsId")
-                        .HasName("pk_post_category_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_category_links_posts_id");
-
-                    b.ToTable("post_category_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.Property<Guid>("CollectionsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("collections_id");
-
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.HasKey("CollectionsId", "PostsId")
-                        .HasName("pk_post_collection_links");
-
-                    b.HasIndex("PostsId")
-                        .HasDatabaseName("ix_post_collection_links_posts_id");
-
-                    b.ToTable("post_collection_links", (string)null);
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.Property<Guid>("PostsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("posts_id");
-
-                    b.Property<Guid>("TagsId")
-                        .HasColumnType("uuid")
-                        .HasColumnName("tags_id");
-
-                    b.HasKey("PostsId", "TagsId")
-                        .HasName("pk_post_tag_links");
-
-                    b.HasIndex("TagsId")
-                        .HasDatabaseName("ix_post_tag_links_tags_id");
-
-                    b.ToTable("post_tag_links", (string)null);
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountAuthFactor", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("AuthFactors")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_auth_factors_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.AccountContact", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Contacts")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_contacts_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.ActionLog", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_action_logs_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Session", "Session")
-                        .WithMany()
-                        .HasForeignKey("SessionId")
-                        .HasConstraintName("fk_action_logs_auth_sessions_session_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Session");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Badge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Badges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_badges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.CheckInResult", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_check_in_results_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.MagicSpell", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_magic_spells_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Notification", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notifications_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.NotificationPushSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_notification_push_subscriptions_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Profile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_account_profiles_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithOne("Profile")
-                        .HasForeignKey("DysonNetwork.Sphere.Account.Profile", "Id")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_profiles_accounts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_account_profiles_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Relationship", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("OutgoingRelationships")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Related")
-                        .WithMany("IncomingRelationships")
-                        .HasForeignKey("RelatedId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_relationships_accounts_related_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Related");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Status", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_account_statuses_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Activity.Activity", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_activities_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Challenge", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Challenges")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_challenges_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Auth.Session", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany("Sessions")
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Auth.Challenge", "Challenge")
-                        .WithMany()
-                        .HasForeignKey("ChallengeId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_auth_sessions_auth_challenges_challenge_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Challenge");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany("Members")
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_members_chat_rooms_chat_room_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("ChatRoom");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_chat_rooms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_chat_rooms_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("ChatRooms")
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_chat_rooms_realms_realm_id");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "ChatRoom")
-                        .WithMany()
-                        .HasForeignKey("ChatRoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_rooms_chat_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "ForwardedMessage")
-                        .WithMany()
-                        .HasForeignKey("ForwardedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_forwarded_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "RepliedMessage")
-                        .WithMany()
-                        .HasForeignKey("RepliedMessageId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_chat_messages_chat_messages_replied_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_messages_chat_members_sender_id");
-
-                    b.Navigation("ChatRoom");
-
-                    b.Navigation("ForwardedMessage");
-
-                    b.Navigation("RepliedMessage");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Reactions")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_reactions_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.MessageReadReceipt", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", "Message")
-                        .WithMany("Statuses")
-                        .HasForeignKey("MessageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_read_receipts_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_read_receipts_chat_members_sender_id");
-
-                    b.Navigation("Message");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.RealtimeCall", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatRoom", "Room")
-                        .WithMany()
-                        .HasForeignKey("RoomId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_rooms_room_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.ChatMember", "Sender")
-                        .WithMany()
-                        .HasForeignKey("SenderId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_chat_realtime_call_chat_members_sender_id");
-
-                    b.Navigation("Room");
-
-                    b.Navigation("Sender");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomApp", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Developer")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_apps_publishers_publisher_id");
-
-                    b.Navigation("Developer");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Developer.CustomAppSecret", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "App")
-                        .WithMany()
-                        .HasForeignKey("AppId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_custom_app_secrets_custom_apps_app_id");
-
-                    b.Navigation("App");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroupMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Members")
-                        .HasForeignKey("GroupId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_permission_group_members_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionNode", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Permission.PermissionGroup", "Group")
-                        .WithMany("Nodes")
-                        .HasForeignKey("GroupId")
-                        .HasConstraintName("fk_permission_nodes_permission_groups_group_id");
-
-                    b.Navigation("Group");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ForwardedPost")
-                        .WithMany()
-                        .HasForeignKey("ForwardedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_forwarded_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Posts")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_posts_publishers_publisher_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "RepliedPost")
-                        .WithMany()
-                        .HasForeignKey("RepliedPostId")
-                        .OnDelete(DeleteBehavior.Restrict)
-                        .HasConstraintName("fk_posts_posts_replied_post_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "ThreadedPost")
-                        .WithOne()
-                        .HasForeignKey("DysonNetwork.Sphere.Post.Post", "ThreadedPostId")
-                        .HasConstraintName("fk_posts_posts_threaded_post_id");
-
-                    b.Navigation("ForwardedPost");
-
-                    b.Navigation("Publisher");
-
-                    b.Navigation("RepliedPost");
-
-                    b.Navigation("ThreadedPost");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Collections")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collections_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.PostReaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", "Post")
-                        .WithMany("Reactions")
-                        .HasForeignKey("PostId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_reactions_posts_post_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Post");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .HasConstraintName("fk_publishers_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_publishers_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_publishers_files_picture_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany()
-                        .HasForeignKey("RealmId")
-                        .HasConstraintName("fk_publishers_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherFeature", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_features_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Members")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_members_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.PublisherSubscription", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany("Subscriptions")
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_publisher_subscriptions_publishers_publisher_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realms_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Background")
-                        .WithMany()
-                        .HasForeignKey("BackgroundId")
-                        .HasConstraintName("fk_realms_files_background_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Picture")
-                        .WithMany()
-                        .HasForeignKey("PictureId")
-                        .HasConstraintName("fk_realms_files_picture_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Background");
-
-                    b.Navigation("Picture");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.RealmMember", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Realm.Realm", "Realm")
-                        .WithMany("Members")
-                        .HasForeignKey("RealmId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_realm_members_realms_realm_id");
-
-                    b.Navigation("Account");
-
-                    b.Navigation("Realm");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.Sticker", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Storage.CloudFile", "Image")
-                        .WithMany()
-                        .HasForeignKey("ImageId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_files_image_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Sticker.StickerPack", "Pack")
-                        .WithMany()
-                        .HasForeignKey("PackId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_stickers_sticker_packs_pack_id");
-
-                    b.Navigation("Image");
-
-                    b.Navigation("Pack");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Sticker.StickerPack", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Publisher.Publisher", "Publisher")
-                        .WithMany()
-                        .HasForeignKey("PublisherId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_sticker_packs_publishers_publisher_id");
-
-                    b.Navigation("Publisher");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Storage.CloudFile", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_files_accounts_account_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Chat.Message", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("MessageId")
-                        .HasConstraintName("fk_files_chat_messages_message_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany("Attachments")
-                        .HasForeignKey("PostId")
-                        .HasConstraintName("fk_files_posts_post_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Order", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Developer.CustomApp", "IssuerApp")
-                        .WithMany()
-                        .HasForeignKey("IssuerAppId")
-                        .HasConstraintName("fk_payment_orders_custom_apps_issuer_app_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_payment_orders_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Transaction", "Transaction")
-                        .WithMany()
-                        .HasForeignKey("TransactionId")
-                        .HasConstraintName("fk_payment_orders_payment_transactions_transaction_id");
-
-                    b.Navigation("IssuerApp");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("Transaction");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Transaction", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayeeWallet")
-                        .WithMany()
-                        .HasForeignKey("PayeeWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payee_wallet_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "PayerWallet")
-                        .WithMany()
-                        .HasForeignKey("PayerWalletId")
-                        .HasConstraintName("fk_payment_transactions_wallets_payer_wallet_id");
-
-                    b.Navigation("PayeeWallet");
-
-                    b.Navigation("PayerWallet");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Account.Account", "Account")
-                        .WithMany()
-                        .HasForeignKey("AccountId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallets_accounts_account_id");
-
-                    b.Navigation("Account");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.WalletPocket", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Wallet.Wallet", "Wallet")
-                        .WithMany("Pockets")
-                        .HasForeignKey("WalletId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_wallet_pockets_wallets_wallet_id");
-
-                    b.Navigation("Wallet");
-                });
-
-            modelBuilder.Entity("PostPostCategory", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCategory", null)
-                        .WithMany()
-                        .HasForeignKey("CategoriesId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_post_categories_categories_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_category_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostCollection", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.PostCollection", null)
-                        .WithMany()
-                        .HasForeignKey("CollectionsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_post_collections_collections_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_collection_links_posts_posts_id");
-                });
-
-            modelBuilder.Entity("PostPostTag", b =>
-                {
-                    b.HasOne("DysonNetwork.Sphere.Post.Post", null)
-                        .WithMany()
-                        .HasForeignKey("PostsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_posts_posts_id");
-
-                    b.HasOne("DysonNetwork.Sphere.Post.PostTag", null)
-                        .WithMany()
-                        .HasForeignKey("TagsId")
-                        .OnDelete(DeleteBehavior.Cascade)
-                        .IsRequired()
-                        .HasConstraintName("fk_post_tag_links_post_tags_tags_id");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Account.Account", b =>
-                {
-                    b.Navigation("AuthFactors");
-
-                    b.Navigation("Badges");
-
-                    b.Navigation("Challenges");
-
-                    b.Navigation("Contacts");
-
-                    b.Navigation("IncomingRelationships");
-
-                    b.Navigation("OutgoingRelationships");
-
-                    b.Navigation("Profile")
-                        .IsRequired();
-
-                    b.Navigation("Sessions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.ChatRoom", b =>
-                {
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Chat.Message", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-
-                    b.Navigation("Statuses");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Permission.PermissionGroup", b =>
-                {
-                    b.Navigation("Members");
-
-                    b.Navigation("Nodes");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Post.Post", b =>
-                {
-                    b.Navigation("Attachments");
-
-                    b.Navigation("Reactions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Publisher.Publisher", b =>
-                {
-                    b.Navigation("Collections");
-
-                    b.Navigation("Members");
-
-                    b.Navigation("Posts");
-
-                    b.Navigation("Subscriptions");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Realm.Realm", b =>
-                {
-                    b.Navigation("ChatRooms");
-
-                    b.Navigation("Members");
-                });
-
-            modelBuilder.Entity("DysonNetwork.Sphere.Wallet.Wallet", b =>
-                {
-                    b.Navigation("Pockets");
-                });
-#pragma warning restore 612, 618
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.cs b/DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.cs
deleted file mode 100644
index 52c381f..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518113150_DontKnowHowToNameThing.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class DontKnowHowToNameThing : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.CreateIndex(
-                name: "ix_stickers_slug",
-                table: "stickers",
-                column: "slug");
-
-            migrationBuilder.CreateIndex(
-                name: "ix_sticker_packs_prefix",
-                table: "sticker_packs",
-                column: "prefix",
-                unique: true);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropIndex(
-                name: "ix_stickers_slug",
-                table: "stickers");
-
-            migrationBuilder.DropIndex(
-                name: "ix_sticker_packs_prefix",
-                table: "sticker_packs");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.cs b/DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.cs
deleted file mode 100644
index a55f96a..0000000
--- a/DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using Microsoft.EntityFrameworkCore.Migrations;
-using NodaTime;
-
-#nullable disable
-
-namespace DysonNetwork.Sphere.Migrations
-{
-    /// <inheritdoc />
-    public partial class BetterLeavingChatAndRealm : Migration
-    {
-        /// <inheritdoc />
-        protected override void Up(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.AddColumn<Instant>(
-                name: "leave_at",
-                table: "realm_members",
-                type: "timestamp with time zone",
-                nullable: true);
-
-            migrationBuilder.AddColumn<bool>(
-                name: "is_community",
-                table: "chat_rooms",
-                type: "boolean",
-                nullable: false,
-                defaultValue: false);
-
-            migrationBuilder.AddColumn<Instant>(
-                name: "leave_at",
-                table: "chat_members",
-                type: "timestamp with time zone",
-                nullable: true);
-        }
-
-        /// <inheritdoc />
-        protected override void Down(MigrationBuilder migrationBuilder)
-        {
-            migrationBuilder.DropColumn(
-                name: "leave_at",
-                table: "realm_members");
-
-            migrationBuilder.DropColumn(
-                name: "is_community",
-                table: "chat_rooms");
-
-            migrationBuilder.DropColumn(
-                name: "leave_at",
-                table: "chat_members");
-        }
-    }
-}
diff --git a/DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.Designer.cs b/DysonNetwork.Sphere/Migrations/20250520160525_InitialMigration.Designer.cs
similarity index 99%
rename from DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.Designer.cs
rename to DysonNetwork.Sphere/Migrations/20250520160525_InitialMigration.Designer.cs
index ee4e153..11341f6 100644
--- a/DysonNetwork.Sphere/Migrations/20250518123138_BetterLeavingChatAndRealm.Designer.cs
+++ b/DysonNetwork.Sphere/Migrations/20250520160525_InitialMigration.Designer.cs
@@ -19,8 +19,8 @@ using NpgsqlTypes;
 namespace DysonNetwork.Sphere.Migrations
 {
     [DbContext(typeof(AppDatabase))]
-    [Migration("20250518123138_BetterLeavingChatAndRealm")]
-    partial class BetterLeavingChatAndRealm
+    [Migration("20250520160525_InitialMigration")]
+    partial class InitialMigration
     {
         /// <inheritdoc />
         protected override void BuildTargetModel(ModelBuilder modelBuilder)
diff --git a/DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.cs b/DysonNetwork.Sphere/Migrations/20250520160525_InitialMigration.cs
similarity index 81%
rename from DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.cs
rename to DysonNetwork.Sphere/Migrations/20250520160525_InitialMigration.cs
index 5782b4c..f973664 100644
--- a/DysonNetwork.Sphere/Migrations/20250514115228_InitialMigration.cs
+++ b/DysonNetwork.Sphere/Migrations/20250520160525_InitialMigration.cs
@@ -2,7 +2,9 @@
 using System.Collections.Generic;
 using System.Text.Json;
 using DysonNetwork.Sphere.Account;
+using DysonNetwork.Sphere.Storage;
 using Microsoft.EntityFrameworkCore.Migrations;
+using NetTopologySuite.Geometries;
 using NodaTime;
 using NpgsqlTypes;
 
@@ -16,6 +18,9 @@ namespace DysonNetwork.Sphere.Migrations
         /// <inheritdoc />
         protected override void Up(MigrationBuilder migrationBuilder)
         {
+            migrationBuilder.AlterDatabase()
+                .Annotation("Npgsql:PostgresExtension:postgis", ",,");
+
             migrationBuilder.CreateTable(
                 name: "accounts",
                 columns: table => new
@@ -111,6 +116,8 @@ namespace DysonNetwork.Sphere.Migrations
                 {
                     id = table.Column<Guid>(type: "uuid", nullable: false),
                     level = table.Column<int>(type: "integer", nullable: false),
+                    reward_points = table.Column<decimal>(type: "numeric", nullable: true),
+                    reward_experience = table.Column<int>(type: "integer", nullable: true),
                     tips = table.Column<ICollection<FortuneTip>>(type: "jsonb", nullable: false),
                     account_id = table.Column<Guid>(type: "uuid", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -251,6 +258,7 @@ namespace DysonNetwork.Sphere.Migrations
                     user_agent = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: true),
                     device_id = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
                     nonce = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
+                    location = table.Column<Point>(type: "geometry", nullable: true),
                     account_id = table.Column<Guid>(type: "uuid", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -371,6 +379,27 @@ namespace DysonNetwork.Sphere.Migrations
                         onDelete: ReferentialAction.Cascade);
                 });
 
+            migrationBuilder.CreateTable(
+                name: "wallets",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    account_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_wallets", x => x.id);
+                    table.ForeignKey(
+                        name: "fk_wallets_accounts_account_id",
+                        column: x => x.account_id,
+                        principalTable: "accounts",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
             migrationBuilder.CreateTable(
                 name: "permission_group_members",
                 columns: table => new
@@ -451,6 +480,91 @@ namespace DysonNetwork.Sphere.Migrations
                         onDelete: ReferentialAction.Cascade);
                 });
 
+            migrationBuilder.CreateTable(
+                name: "payment_transactions",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    currency = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
+                    amount = table.Column<decimal>(type: "numeric", nullable: false),
+                    remarks = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
+                    type = table.Column<int>(type: "integer", nullable: false),
+                    payer_wallet_id = table.Column<Guid>(type: "uuid", nullable: true),
+                    payee_wallet_id = table.Column<Guid>(type: "uuid", nullable: true),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_payment_transactions", x => x.id);
+                    table.ForeignKey(
+                        name: "fk_payment_transactions_wallets_payee_wallet_id",
+                        column: x => x.payee_wallet_id,
+                        principalTable: "wallets",
+                        principalColumn: "id");
+                    table.ForeignKey(
+                        name: "fk_payment_transactions_wallets_payer_wallet_id",
+                        column: x => x.payer_wallet_id,
+                        principalTable: "wallets",
+                        principalColumn: "id");
+                });
+
+            migrationBuilder.CreateTable(
+                name: "wallet_pockets",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    currency = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
+                    amount = table.Column<decimal>(type: "numeric", nullable: false),
+                    wallet_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_wallet_pockets", x => x.id);
+                    table.ForeignKey(
+                        name: "fk_wallet_pockets_wallets_wallet_id",
+                        column: x => x.wallet_id,
+                        principalTable: "wallets",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "action_logs",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    action = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: false),
+                    meta = table.Column<Dictionary<string, object>>(type: "jsonb", nullable: false),
+                    user_agent = table.Column<string>(type: "character varying(512)", maxLength: 512, nullable: true),
+                    ip_address = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
+                    location = table.Column<Point>(type: "geometry", nullable: true),
+                    account_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    session_id = table.Column<Guid>(type: "uuid", nullable: true),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_action_logs", x => x.id);
+                    table.ForeignKey(
+                        name: "fk_action_logs_accounts_account_id",
+                        column: x => x.account_id,
+                        principalTable: "accounts",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                    table.ForeignKey(
+                        name: "fk_action_logs_auth_sessions_session_id",
+                        column: x => x.session_id,
+                        principalTable: "auth_sessions",
+                        principalColumn: "id");
+                });
+
             migrationBuilder.CreateTable(
                 name: "account_profiles",
                 columns: table => new
@@ -460,8 +574,10 @@ namespace DysonNetwork.Sphere.Migrations
                     middle_name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
                     last_name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
                     bio = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
-                    picture_id = table.Column<string>(type: "character varying(128)", nullable: true),
-                    background_id = table.Column<string>(type: "character varying(128)", nullable: true),
+                    experience = table.Column<int>(type: "integer", nullable: false),
+                    picture_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
+                    background_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
+                    account_id = table.Column<Guid>(type: "uuid", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
@@ -488,6 +604,7 @@ namespace DysonNetwork.Sphere.Migrations
                     role = table.Column<int>(type: "integer", nullable: false),
                     notify = table.Column<int>(type: "integer", nullable: false),
                     joined_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
+                    leave_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
                     is_bot = table.Column<bool>(type: "boolean", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -578,27 +695,26 @@ namespace DysonNetwork.Sphere.Migrations
                 });
 
             migrationBuilder.CreateTable(
-                name: "chat_statuses",
+                name: "chat_read_receipts",
                 columns: table => new
                 {
                     message_id = table.Column<Guid>(type: "uuid", nullable: false),
                     sender_id = table.Column<Guid>(type: "uuid", nullable: false),
-                    read_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
                 },
                 constraints: table =>
                 {
-                    table.PrimaryKey("pk_chat_statuses", x => new { x.message_id, x.sender_id });
+                    table.PrimaryKey("pk_chat_read_receipts", x => new { x.message_id, x.sender_id });
                     table.ForeignKey(
-                        name: "fk_chat_statuses_chat_members_sender_id",
+                        name: "fk_chat_read_receipts_chat_members_sender_id",
                         column: x => x.sender_id,
                         principalTable: "chat_members",
                         principalColumn: "id",
                         onDelete: ReferentialAction.Cascade);
                     table.ForeignKey(
-                        name: "fk_chat_statuses_chat_messages_message_id",
+                        name: "fk_chat_read_receipts_chat_messages_message_id",
                         column: x => x.message_id,
                         principalTable: "chat_messages",
                         principalColumn: "id",
@@ -634,12 +750,13 @@ namespace DysonNetwork.Sphere.Migrations
                 columns: table => new
                 {
                     id = table.Column<Guid>(type: "uuid", nullable: false),
-                    name = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
-                    description = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: false),
+                    name = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: true),
+                    description = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
                     type = table.Column<int>(type: "integer", nullable: false),
+                    is_community = table.Column<bool>(type: "boolean", nullable: false),
                     is_public = table.Column<bool>(type: "boolean", nullable: false),
-                    picture_id = table.Column<string>(type: "character varying(128)", nullable: true),
-                    background_id = table.Column<string>(type: "character varying(128)", nullable: true),
+                    picture_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
+                    background_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
                     realm_id = table.Column<Guid>(type: "uuid", nullable: true),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -650,15 +767,92 @@ namespace DysonNetwork.Sphere.Migrations
                     table.PrimaryKey("pk_chat_rooms", x => x.id);
                 });
 
+            migrationBuilder.CreateTable(
+                name: "custom_app_secrets",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    secret = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
+                    remarks = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
+                    expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
+                    app_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_custom_app_secrets", x => x.id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "custom_apps",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    slug = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
+                    name = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
+                    status = table.Column<int>(type: "integer", nullable: false),
+                    verified_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
+                    verified_as = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
+                    publisher_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_custom_apps", x => x.id);
+                });
+
+            migrationBuilder.CreateTable(
+                name: "payment_orders",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    status = table.Column<int>(type: "integer", nullable: false),
+                    currency = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
+                    remarks = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
+                    amount = table.Column<decimal>(type: "numeric", nullable: false),
+                    expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    payee_wallet_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    transaction_id = table.Column<Guid>(type: "uuid", nullable: true),
+                    issuer_app_id = table.Column<Guid>(type: "uuid", nullable: true),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_payment_orders", x => x.id);
+                    table.ForeignKey(
+                        name: "fk_payment_orders_custom_apps_issuer_app_id",
+                        column: x => x.issuer_app_id,
+                        principalTable: "custom_apps",
+                        principalColumn: "id");
+                    table.ForeignKey(
+                        name: "fk_payment_orders_payment_transactions_transaction_id",
+                        column: x => x.transaction_id,
+                        principalTable: "payment_transactions",
+                        principalColumn: "id");
+                    table.ForeignKey(
+                        name: "fk_payment_orders_wallets_payee_wallet_id",
+                        column: x => x.payee_wallet_id,
+                        principalTable: "wallets",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
             migrationBuilder.CreateTable(
                 name: "files",
                 columns: table => new
                 {
-                    id = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
+                    id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
                     name = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
                     description = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
                     file_meta = table.Column<Dictionary<string, object>>(type: "jsonb", nullable: true),
                     user_meta = table.Column<Dictionary<string, object>>(type: "jsonb", nullable: true),
+                    sensitive_marks = table.Column<List<CloudFileSensitiveMark>>(type: "jsonb", nullable: true),
                     mime_type = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
                     hash = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
                     size = table.Column<long>(type: "bigint", nullable: false),
@@ -666,6 +860,8 @@ namespace DysonNetwork.Sphere.Migrations
                     expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
                     uploaded_to = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: true),
                     has_compression = table.Column<bool>(type: "boolean", nullable: false),
+                    storage_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
+                    storage_url = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
                     used_count = table.Column<int>(type: "integer", nullable: false),
                     account_id = table.Column<Guid>(type: "uuid", nullable: false),
                     message_id = table.Column<Guid>(type: "uuid", nullable: true),
@@ -702,8 +898,8 @@ namespace DysonNetwork.Sphere.Migrations
                     verified_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
                     is_community = table.Column<bool>(type: "boolean", nullable: false),
                     is_public = table.Column<bool>(type: "boolean", nullable: false),
-                    picture_id = table.Column<string>(type: "character varying(128)", nullable: true),
-                    background_id = table.Column<string>(type: "character varying(128)", nullable: true),
+                    picture_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
+                    background_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
                     account_id = table.Column<Guid>(type: "uuid", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -735,12 +931,12 @@ namespace DysonNetwork.Sphere.Migrations
                 columns: table => new
                 {
                     id = table.Column<Guid>(type: "uuid", nullable: false),
-                    publisher_type = table.Column<int>(type: "integer", nullable: false),
+                    type = table.Column<int>(type: "integer", nullable: false),
                     name = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
                     nick = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false),
                     bio = table.Column<string>(type: "character varying(4096)", maxLength: 4096, nullable: true),
-                    picture_id = table.Column<string>(type: "character varying(128)", nullable: true),
-                    background_id = table.Column<string>(type: "character varying(128)", nullable: true),
+                    picture_id = table.Column<string>(type: "character varying(32)", nullable: true),
+                    background_id = table.Column<string>(type: "character varying(32)", nullable: true),
                     account_id = table.Column<Guid>(type: "uuid", nullable: true),
                     realm_id = table.Column<Guid>(type: "uuid", nullable: true),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -780,6 +976,7 @@ namespace DysonNetwork.Sphere.Migrations
                     account_id = table.Column<Guid>(type: "uuid", nullable: false),
                     role = table.Column<int>(type: "integer", nullable: false),
                     joined_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
+                    leave_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
@@ -882,6 +1079,29 @@ namespace DysonNetwork.Sphere.Migrations
                         onDelete: ReferentialAction.Cascade);
                 });
 
+            migrationBuilder.CreateTable(
+                name: "publisher_features",
+                columns: table => new
+                {
+                    id = table.Column<Guid>(type: "uuid", nullable: false),
+                    flag = table.Column<string>(type: "character varying(1024)", maxLength: 1024, nullable: false),
+                    expired_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true),
+                    publisher_id = table.Column<Guid>(type: "uuid", nullable: false),
+                    created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
+                    deleted_at = table.Column<Instant>(type: "timestamp with time zone", nullable: true)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_publisher_features", x => x.id);
+                    table.ForeignKey(
+                        name: "fk_publisher_features_publishers_publisher_id",
+                        column: x => x.publisher_id,
+                        principalTable: "publishers",
+                        principalColumn: "id",
+                        onDelete: ReferentialAction.Cascade);
+                });
+
             migrationBuilder.CreateTable(
                 name: "publisher_members",
                 columns: table => new
@@ -1073,7 +1293,7 @@ namespace DysonNetwork.Sphere.Migrations
                 {
                     id = table.Column<Guid>(type: "uuid", nullable: false),
                     slug = table.Column<string>(type: "character varying(128)", maxLength: 128, nullable: false),
-                    image_id = table.Column<string>(type: "character varying(128)", nullable: false),
+                    image_id = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: false),
                     pack_id = table.Column<Guid>(type: "uuid", nullable: false),
                     created_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
                     updated_at = table.Column<Instant>(type: "timestamp with time zone", nullable: false),
@@ -1137,6 +1357,16 @@ namespace DysonNetwork.Sphere.Migrations
                 column: "name",
                 unique: true);
 
+            migrationBuilder.CreateIndex(
+                name: "ix_action_logs_account_id",
+                table: "action_logs",
+                column: "account_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_action_logs_session_id",
+                table: "action_logs",
+                column: "session_id");
+
             migrationBuilder.CreateIndex(
                 name: "ix_activities_account_id",
                 table: "activities",
@@ -1197,6 +1427,17 @@ namespace DysonNetwork.Sphere.Migrations
                 table: "chat_reactions",
                 column: "sender_id");
 
+            migrationBuilder.CreateIndex(
+                name: "ix_chat_read_receipts_message_id_sender_id",
+                table: "chat_read_receipts",
+                columns: new[] { "message_id", "sender_id" },
+                unique: true);
+
+            migrationBuilder.CreateIndex(
+                name: "ix_chat_read_receipts_sender_id",
+                table: "chat_read_receipts",
+                column: "sender_id");
+
             migrationBuilder.CreateIndex(
                 name: "ix_chat_realtime_call_room_id",
                 table: "chat_realtime_call",
@@ -1223,9 +1464,14 @@ namespace DysonNetwork.Sphere.Migrations
                 column: "realm_id");
 
             migrationBuilder.CreateIndex(
-                name: "ix_chat_statuses_sender_id",
-                table: "chat_statuses",
-                column: "sender_id");
+                name: "ix_custom_app_secrets_app_id",
+                table: "custom_app_secrets",
+                column: "app_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_custom_apps_publisher_id",
+                table: "custom_apps",
+                column: "publisher_id");
 
             migrationBuilder.CreateIndex(
                 name: "ix_files_account_id",
@@ -1275,6 +1521,31 @@ namespace DysonNetwork.Sphere.Migrations
                 table: "notifications",
                 column: "account_id");
 
+            migrationBuilder.CreateIndex(
+                name: "ix_payment_orders_issuer_app_id",
+                table: "payment_orders",
+                column: "issuer_app_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_payment_orders_payee_wallet_id",
+                table: "payment_orders",
+                column: "payee_wallet_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_payment_orders_transaction_id",
+                table: "payment_orders",
+                column: "transaction_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_payment_transactions_payee_wallet_id",
+                table: "payment_transactions",
+                column: "payee_wallet_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_payment_transactions_payer_wallet_id",
+                table: "payment_transactions",
+                column: "payer_wallet_id");
+
             migrationBuilder.CreateIndex(
                 name: "ix_permission_nodes_group_id",
                 table: "permission_nodes",
@@ -1342,6 +1613,11 @@ namespace DysonNetwork.Sphere.Migrations
                 column: "threaded_post_id",
                 unique: true);
 
+            migrationBuilder.CreateIndex(
+                name: "ix_publisher_features_publisher_id",
+                table: "publisher_features",
+                column: "publisher_id");
+
             migrationBuilder.CreateIndex(
                 name: "ix_publisher_members_account_id",
                 table: "publisher_members",
@@ -1409,6 +1685,12 @@ namespace DysonNetwork.Sphere.Migrations
                 column: "slug",
                 unique: true);
 
+            migrationBuilder.CreateIndex(
+                name: "ix_sticker_packs_prefix",
+                table: "sticker_packs",
+                column: "prefix",
+                unique: true);
+
             migrationBuilder.CreateIndex(
                 name: "ix_sticker_packs_publisher_id",
                 table: "sticker_packs",
@@ -1424,6 +1706,21 @@ namespace DysonNetwork.Sphere.Migrations
                 table: "stickers",
                 column: "pack_id");
 
+            migrationBuilder.CreateIndex(
+                name: "ix_stickers_slug",
+                table: "stickers",
+                column: "slug");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_wallet_pockets_wallet_id",
+                table: "wallet_pockets",
+                column: "wallet_id");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_wallets_account_id",
+                table: "wallets",
+                column: "account_id");
+
             migrationBuilder.AddForeignKey(
                 name: "fk_account_profiles_files_background_id",
                 table: "account_profiles",
@@ -1483,6 +1780,22 @@ namespace DysonNetwork.Sphere.Migrations
                 principalTable: "realms",
                 principalColumn: "id");
 
+            migrationBuilder.AddForeignKey(
+                name: "fk_custom_app_secrets_custom_apps_app_id",
+                table: "custom_app_secrets",
+                column: "app_id",
+                principalTable: "custom_apps",
+                principalColumn: "id",
+                onDelete: ReferentialAction.Cascade);
+
+            migrationBuilder.AddForeignKey(
+                name: "fk_custom_apps_publishers_publisher_id",
+                table: "custom_apps",
+                column: "publisher_id",
+                principalTable: "publishers",
+                principalColumn: "id",
+                onDelete: ReferentialAction.Cascade);
+
             migrationBuilder.AddForeignKey(
                 name: "fk_files_posts_post_id",
                 table: "files",
@@ -1553,10 +1866,10 @@ namespace DysonNetwork.Sphere.Migrations
                 name: "account_statuses");
 
             migrationBuilder.DropTable(
-                name: "activities");
+                name: "action_logs");
 
             migrationBuilder.DropTable(
-                name: "auth_sessions");
+                name: "activities");
 
             migrationBuilder.DropTable(
                 name: "badges");
@@ -1564,11 +1877,14 @@ namespace DysonNetwork.Sphere.Migrations
             migrationBuilder.DropTable(
                 name: "chat_reactions");
 
+            migrationBuilder.DropTable(
+                name: "chat_read_receipts");
+
             migrationBuilder.DropTable(
                 name: "chat_realtime_call");
 
             migrationBuilder.DropTable(
-                name: "chat_statuses");
+                name: "custom_app_secrets");
 
             migrationBuilder.DropTable(
                 name: "magic_spells");
@@ -1579,6 +1895,9 @@ namespace DysonNetwork.Sphere.Migrations
             migrationBuilder.DropTable(
                 name: "notifications");
 
+            migrationBuilder.DropTable(
+                name: "payment_orders");
+
             migrationBuilder.DropTable(
                 name: "permission_group_members");
 
@@ -1597,6 +1916,9 @@ namespace DysonNetwork.Sphere.Migrations
             migrationBuilder.DropTable(
                 name: "post_tag_links");
 
+            migrationBuilder.DropTable(
+                name: "publisher_features");
+
             migrationBuilder.DropTable(
                 name: "publisher_members");
 
@@ -1610,7 +1932,16 @@ namespace DysonNetwork.Sphere.Migrations
                 name: "stickers");
 
             migrationBuilder.DropTable(
-                name: "auth_challenges");
+                name: "wallet_pockets");
+
+            migrationBuilder.DropTable(
+                name: "auth_sessions");
+
+            migrationBuilder.DropTable(
+                name: "custom_apps");
+
+            migrationBuilder.DropTable(
+                name: "payment_transactions");
 
             migrationBuilder.DropTable(
                 name: "permission_groups");
@@ -1627,6 +1958,12 @@ namespace DysonNetwork.Sphere.Migrations
             migrationBuilder.DropTable(
                 name: "sticker_packs");
 
+            migrationBuilder.DropTable(
+                name: "auth_challenges");
+
+            migrationBuilder.DropTable(
+                name: "wallets");
+
             migrationBuilder.DropTable(
                 name: "accounts");