From 6d70f28db7e418fb538fcbd4ba6eb7800631e05c Mon Sep 17 00:00:00 2001
From: Toastie <toastie@toastiet0ast.com>
Date: Fri, 24 Jan 2025 18:43:53 +1300
Subject: [PATCH] fix migrate scripts, added initial migration

---
 src/EllieBot/Db/Models/GuildConfig.cs         |    5 +
 src/EllieBot/Migrations/MigrationQueries.cs   |  133 +
 ...ner.cs => 20250124023345_init.Designer.cs} |   14 +-
 ...3191330_init.cs => 20250124023345_init.cs} |    3 +-
 .../PostgreSqlContextModelSnapshot.cs         | 7634 +++++++++--------
 ...ner.cs => 20250124023317_init.Designer.cs} |   11 +-
 ...3191300_init.cs => 20250124023317_init.cs} |    3 +-
 .../Sqlite/SqliteContextModelSnapshot.cs      | 5773 ++++++-------
 src/EllieBot/Modules/Searches/Searches.cs     |    1 -
 src/EllieBot/migrate.ps1                      |    2 +
 src/EllieBot/migrate.sh                       |    2 +
 11 files changed, 6869 insertions(+), 6712 deletions(-)
 create mode 100644 src/EllieBot/Migrations/MigrationQueries.cs
 rename src/EllieBot/Migrations/PostgreSql/{20250123191330_init.Designer.cs => 20250124023345_init.Designer.cs} (99%)
 rename src/EllieBot/Migrations/PostgreSql/{20250123191330_init.cs => 20250124023345_init.cs} (99%)
 rename src/EllieBot/Migrations/Sqlite/{20250123191300_init.Designer.cs => 20250124023317_init.Designer.cs} (99%)
 rename src/EllieBot/Migrations/Sqlite/{20250123191300_init.cs => 20250124023317_init.cs} (99%)

diff --git a/src/EllieBot/Db/Models/GuildConfig.cs b/src/EllieBot/Db/Models/GuildConfig.cs
index d6cfd94..76d98a0 100644
--- a/src/EllieBot/Db/Models/GuildConfig.cs
+++ b/src/EllieBot/Db/Models/GuildConfig.cs
@@ -13,6 +13,11 @@ public class GuildConfig : DbEntity
 
     public string AutoAssignRoleIds { get; set; }
 
+    //todo FUTURE: DELETE, UNUSED
+    public bool ExclusiveSelfAssignedRoles { get; set; }
+    public bool AutoDeleteSelfAssignedRoleMessages { get; set; }
+
+
     //stream notifications
     public HashSet<FollowedStream> FollowedStreams { get; set; } = new();
 
diff --git a/src/EllieBot/Migrations/MigrationQueries.cs b/src/EllieBot/Migrations/MigrationQueries.cs
new file mode 100644
index 0000000..397b061
--- /dev/null
+++ b/src/EllieBot/Migrations/MigrationQueries.cs
@@ -0,0 +1,133 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Migrations;
+
+namespace EllieBot.Migrations;
+
+public static class MigrationQueries
+{
+    public static void MergeAwardedXp(MigrationBuilder migrationBuilder)
+    {
+        migrationBuilder.Sql("""
+                             UPDATE UserXpStats
+                             SET Xp = AwardedXp + Xp,
+                             AwardedXp = 0
+                             WHERE AwardedXp > 0;
+                             """);
+    }
+
+    public static void MigrateSar(MigrationBuilder migrationBuilder)
+    {
+        if (migrationBuilder.IsNpgsql())
+            return;
+
+        migrationBuilder.Sql("""
+                             INSERT INTO GroupName (Number, GuildConfigId)
+                             SELECT DISTINCT "Group", GC.Id
+                             FROM SelfAssignableRoles as SAR
+                             INNER JOIN GuildConfigs as GC
+                             ON SAR.GuildId = GC.GuildId
+                             WHERE SAR.GuildId not in (SELECT GuildConfigs.GuildId from GroupName LEFT JOIN GuildConfigs ON GroupName.GuildConfigId = GuildConfigs.Id);
+
+                             INSERT INTO SarGroup (Id, GroupNumber, Name, IsExclusive, GuildId)
+                             SELECT GN.Id, GN.Number, GN.Name, GC.ExclusiveSelfAssignedRoles, GC.GuildId
+                             FROM GroupName as GN
+                             INNER JOIN GuildConfigs as GC ON GN.GuildConfigId = GC.Id;
+
+                             INSERT INTO Sar (GuildId, RoleId, SarGroupId, LevelReq)
+                             SELECT SAR.GuildId, SAR.RoleId, (SELECT Id FROM SarGroup WHERE SG.Number = SarGroup.GroupNumber AND SG.GuildId = SarGroup.GuildId), MIN(SAR.LevelRequirement)
+                               FROM SelfAssignableRoles as SAR
+                               INNER JOIN (SELECT GuildId, gn.Number FROM GroupName as gn
+                             	INNER JOIN GuildConfigs as gc ON gn.GuildConfigId =gc.Id
+                               ) as SG 
+                             	ON SG.GuildId = SAR.GuildId 
+                             WHERE SG.Number IN (SELECT GroupNumber FROM SarGroup WHERE Sar.GuildId = SarGroup.GuildId)
+                             GROUP BY SAR.GuildId, SAR.RoleId;
+
+                             INSERT INTO SarAutoDelete (GuildId, IsEnabled)
+                             SELECT GuildId, AutoDeleteSelfAssignedRoleMessages FROM GuildConfigs WHERE AutoDeleteSelfAssignedRoleMessages = TRUE;
+                             """);
+    }
+
+    public static void UpdateUsernames(MigrationBuilder migrationBuilder)
+    {
+        migrationBuilder.Sql("UPDATE DiscordUser SET Username = '??' || Username WHERE Discriminator = '????';");
+    }
+
+    public static void MigrateRero(MigrationBuilder migrationBuilder)
+    {
+        if (migrationBuilder.IsSqlite())
+        {
+            migrationBuilder.Sql(
+                @"insert or ignore into reactionroles(guildid, channelid, messageid, emote, roleid, 'group', levelreq, dateadded)
+select guildid, channelid, messageid, emotename, roleid, exclusive, 0, reactionrolemessage.dateadded
+from reactionrole
+left join reactionrolemessage on reactionrolemessage.id = reactionrole.reactionrolemessageid
+left join guildconfigs on reactionrolemessage.guildconfigid = guildconfigs.id;");
+        }
+        else if (migrationBuilder.IsNpgsql())
+        {
+            migrationBuilder.Sql(
+                @"insert into reactionroles(guildid, channelid, messageid, emote, roleid, ""group"", levelreq, dateadded)
+            select guildid, channelid, messageid, emotename, roleid, exclusive::int, 0, reactionrolemessage.dateadded
+                from reactionrole
+                left join reactionrolemessage on reactionrolemessage.id = reactionrole.reactionrolemessageid
+            left join guildconfigs on reactionrolemessage.guildconfigid = guildconfigs.id
+            ON CONFLICT DO NOTHING;");
+        }
+        else
+        {
+            throw new NotSupportedException("This database provider doesn't have an implementation for MigrateRero");
+        }
+    }
+
+    public static void GuildConfigCleanup(MigrationBuilder builder)
+    {
+        builder.Sql($"""
+                     DELETE FROM "DelMsgOnCmdChannel" WHERE "GuildConfigId" is NULL;
+                     DELETE FROM "WarningPunishment" WHERE "GuildConfigId" NOT IN (SELECT "Id" from "GuildConfigs");
+                     DELETE FROM "StreamRoleBlacklistedUser" WHERE "StreamRoleSettingsId" is NULL;
+                     DELETE FROM "Permissions" WHERE "GuildConfigId" NOT IN (SELECT "Id" from "GuildConfigs");
+                     """);
+    }
+
+    public static void GreetSettingsCopy(MigrationBuilder builder)
+    {
+        builder.Sql("""
+                    INSERT INTO GreetSettings (GuildId, GreetType, MessageText, IsEnabled, ChannelId, AutoDeleteTimer)
+                    SELECT GuildId, 0, ChannelGreetMessageText, SendChannelGreetMessage, GreetMessageChannelId, AutoDeleteGreetMessagesTimer
+                    FROM GuildConfigs
+                    WHERE SendChannelGreetMessage = TRUE;
+
+                    INSERT INTO GreetSettings (GuildId, GreetType, MessageText, IsEnabled, ChannelId, AutoDeleteTimer)
+                    SELECT GuildId, 1, DmGreetMessageText, SendDmGreetMessage, GreetMessageChannelId, 0
+                    FROM GuildConfigs
+                    WHERE SendDmGreetMessage = TRUE;
+
+                    INSERT INTO GreetSettings (GuildId, GreetType, MessageText, IsEnabled, ChannelId, AutoDeleteTimer)
+                    SELECT GuildId, 2, ChannelByeMessageText, SendChannelByeMessage, ByeMessageChannelId, AutoDeleteByeMessagesTimer
+                    FROM GuildConfigs
+                    WHERE SendChannelByeMessage = TRUE;
+
+                    INSERT INTO GreetSettings (GuildId, GreetType, MessageText, IsEnabled, ChannelId, AutoDeleteTimer)
+                    SELECT GuildId, 3, BoostMessage, SendBoostMessage, BoostMessageChannelId, BoostMessageDeleteAfter
+                    FROM GuildConfigs
+                    WHERE SendBoostMessage = TRUE;
+                    """);
+    }
+
+    public static void AddGuildIdsToWarningPunishment(MigrationBuilder builder)
+    {
+        builder.Sql("""
+                    DELETE FROM WarningPunishment WHERE GuildConfigId IS NULL OR GuildConfigId NOT IN (SELECT Id FROM GuildConfigs);
+                    UPDATE WarningPunishment 
+                    SET GuildId = (SELECT GuildId FROM GuildConfigs WHERE Id = GuildConfigId);
+
+                    DELETE FROM WarningPunishment as wp
+                    WHERE (wp.Count, wp.GuildConfigId) in (
+                        SELECT wp2.Count, wp2.GuildConfigId FROM WarningPunishment as wp2
+                        GROUP BY wp2.Count, wp2.GuildConfigId
+                        HAVING COUNT(id) > 1
+                    );
+                    """);
+    }
+}
diff --git a/src/EllieBot/Migrations/PostgreSql/20250123191330_init.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20250124023345_init.Designer.cs
similarity index 99%
rename from src/EllieBot/Migrations/PostgreSql/20250123191330_init.Designer.cs
rename to src/EllieBot/Migrations/PostgreSql/20250124023345_init.Designer.cs
index 2d06ae9..9c315f6 100644
--- a/src/EllieBot/Migrations/PostgreSql/20250123191330_init.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20250124023345_init.Designer.cs
@@ -12,7 +12,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
 namespace EllieBot.Migrations.PostgreSql
 {
     [DbContext(typeof(PostgreSqlContext))]
-    [Migration("20250123191330_init")]
+    [Migration("20250124023345_init")]
     partial class init
     {
         /// <inheritdoc />
@@ -1319,6 +1319,10 @@ namespace EllieBot.Migrations.PostgreSql
                     .HasColumnType("text")
                     .HasColumnName("autoassignroleids");
 
+                b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                    .HasColumnType("boolean")
+                    .HasColumnName("autodeleteselfassignedrolemessages");
+
                 b.Property<bool>("CleverbotEnabled")
                     .HasColumnType("boolean")
                     .HasColumnName("cleverbotenabled");
@@ -1339,6 +1343,10 @@ namespace EllieBot.Migrations.PostgreSql
                     .HasColumnType("boolean")
                     .HasColumnName("disableglobalexpressions");
 
+                b.Property<bool>("ExclusiveSelfAssignedRoles")
+                    .HasColumnType("boolean")
+                    .HasColumnName("exclusiveselfassignedroles");
+
                 b.Property<bool>("FilterInvites")
                     .HasColumnType("boolean")
                     .HasColumnName("filterinvites");
@@ -1383,10 +1391,6 @@ namespace EllieBot.Migrations.PostgreSql
                     .HasColumnType("boolean")
                     .HasColumnName("stickyroles");
 
-                b.Property<string>("TestMigration")
-                    .HasColumnType("text")
-                    .HasColumnName("testmigration");
-
                 b.Property<string>("TimeZoneId")
                     .HasColumnType("text")
                     .HasColumnName("timezoneid");
diff --git a/src/EllieBot/Migrations/PostgreSql/20250123191330_init.cs b/src/EllieBot/Migrations/PostgreSql/20250124023345_init.cs
similarity index 99%
rename from src/EllieBot/Migrations/PostgreSql/20250123191330_init.cs
rename to src/EllieBot/Migrations/PostgreSql/20250124023345_init.cs
index be62707..2001dfe 100644
--- a/src/EllieBot/Migrations/PostgreSql/20250123191330_init.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20250124023345_init.cs
@@ -297,7 +297,8 @@ namespace EllieBot.Migrations.PostgreSql
                     prefix = table.Column<string>(type: "text", nullable: true),
                     deletemessageoncommand = table.Column<bool>(type: "boolean", nullable: false),
                     autoassignroleids = table.Column<string>(type: "text", nullable: true),
-                    testmigration = table.Column<string>(type: "text", nullable: true),
+                    exclusiveselfassignedroles = table.Column<bool>(type: "boolean", nullable: false),
+                    autodeleteselfassignedrolemessages = table.Column<bool>(type: "boolean", nullable: false),
                     verbosepermissions = table.Column<bool>(type: "boolean", nullable: false),
                     permissionrole = table.Column<string>(type: "text", nullable: true),
                     filterinvites = table.Column<bool>(type: "boolean", nullable: false),
diff --git a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
index 0f1630c..84bf2ee 100644
--- a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
@@ -23,4148 +23,4152 @@ namespace EllieBot.Migrations.PostgreSql
             NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("Action")
-                    .HasColumnType("integer")
-                    .HasColumnName("action");
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
 
-                b.Property<int>("ActionDurationMinutes")
-                    .HasColumnType("integer")
-                    .HasColumnName("actiondurationminutes");
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("integer")
+                        .HasColumnName("actiondurationminutes");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-                b.Property<TimeSpan>("MinAge")
-                    .HasColumnType("interval")
-                    .HasColumnName("minage");
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("interval")
+                        .HasColumnName("minage");
 
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
 
-                b.HasKey("Id")
-                    .HasName("pk_antialtsetting");
+                    b.HasKey("Id")
+                        .HasName("pk_antialtsetting");
 
-                b.HasIndex("GuildConfigId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antialtsetting_guildconfigid");
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antialtsetting_guildconfigid");
 
-                b.ToTable("antialtsetting", (string)null);
-            });
+                    b.ToTable("antialtsetting", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("Action")
-                    .HasColumnType("integer")
-                    .HasColumnName("action");
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-                b.Property<int>("PunishDuration")
-                    .HasColumnType("integer")
-                    .HasColumnName("punishduration");
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("integer")
+                        .HasColumnName("punishduration");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("integer")
-                    .HasColumnName("seconds");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
 
-                b.Property<int>("UserThreshold")
-                    .HasColumnType("integer")
-                    .HasColumnName("userthreshold");
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("integer")
+                        .HasColumnName("userthreshold");
 
-                b.HasKey("Id")
-                    .HasName("pk_antiraidsetting");
+                    b.HasKey("Id")
+                        .HasName("pk_antiraidsetting");
 
-                b.HasIndex("GuildConfigId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antiraidsetting_guildconfigid");
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antiraidsetting_guildconfigid");
 
-                b.ToTable("antiraidsetting", (string)null);
-            });
+                    b.ToTable("antiraidsetting", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int?>("AntiSpamSettingId")
-                    .HasColumnType("integer")
-                    .HasColumnName("antispamsettingid");
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("integer")
+                        .HasColumnName("antispamsettingid");
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.HasKey("Id")
-                    .HasName("pk_antispamignore");
+                    b.HasKey("Id")
+                        .HasName("pk_antispamignore");
 
-                b.HasIndex("AntiSpamSettingId")
-                    .HasDatabaseName("ix_antispamignore_antispamsettingid");
+                    b.HasIndex("AntiSpamSettingId")
+                        .HasDatabaseName("ix_antispamignore_antispamsettingid");
 
-                b.ToTable("antispamignore", (string)null);
-            });
+                    b.ToTable("antispamignore", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("Action")
-                    .HasColumnType("integer")
-                    .HasColumnName("action");
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-                b.Property<int>("MessageThreshold")
-                    .HasColumnType("integer")
-                    .HasColumnName("messagethreshold");
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("integer")
+                        .HasColumnName("messagethreshold");
 
-                b.Property<int>("MuteTime")
-                    .HasColumnType("integer")
-                    .HasColumnName("mutetime");
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("integer")
+                        .HasColumnName("mutetime");
 
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
 
-                b.HasKey("Id")
-                    .HasName("pk_antispamsetting");
+                    b.HasKey("Id")
+                        .HasName("pk_antispamsetting");
 
-                b.HasIndex("GuildConfigId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antispamsetting_guildconfigid");
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antispamsetting_guildconfigid");
 
-                b.ToTable("antispamsetting", (string)null);
-            });
+                    b.ToTable("antispamsetting", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_todosarchive");
+                    b.HasKey("Id")
+                        .HasName("pk_todosarchive");
 
-                b.ToTable("todosarchive", (string)null);
-            });
+                    b.ToTable("todosarchive", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<string>("ChannelName")
-                    .HasColumnType("text")
-                    .HasColumnName("channelname");
+                    b.Property<string>("ChannelName")
+                        .HasColumnType("text")
+                        .HasColumnName("channelname");
 
-                b.Property<string>("CommandText")
-                    .HasColumnType("text")
-                    .HasColumnName("commandtext");
+                    b.Property<string>("CommandText")
+                        .HasColumnType("text")
+                        .HasColumnName("commandtext");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal?>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("GuildName")
-                    .HasColumnType("text")
-                    .HasColumnName("guildname");
+                    b.Property<string>("GuildName")
+                        .HasColumnType("text")
+                        .HasColumnName("guildname");
 
-                b.Property<int>("Interval")
-                    .HasColumnType("integer")
-                    .HasColumnName("interval");
+                    b.Property<int>("Interval")
+                        .HasColumnType("integer")
+                        .HasColumnName("interval");
 
-                b.Property<decimal?>("VoiceChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("voicechannelid");
+                    b.Property<decimal?>("VoiceChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("voicechannelid");
 
-                b.Property<string>("VoiceChannelName")
-                    .HasColumnType("text")
-                    .HasColumnName("voicechannelname");
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("text")
+                        .HasColumnName("voicechannelname");
 
-                b.HasKey("Id")
-                    .HasName("pk_autocommands");
+                    b.HasKey("Id")
+                        .HasName("pk_autocommands");
 
-                b.ToTable("autocommands", (string)null);
-            });
+                    b.ToTable("autocommands", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.HasKey("Id")
-                    .HasName("pk_autopublishchannel");
+                    b.HasKey("Id")
+                        .HasName("pk_autopublishchannel");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_autopublishchannel_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autopublishchannel_guildid");
 
-                b.ToTable("autopublishchannel", (string)null);
-            });
+                    b.ToTable("autopublishchannel", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<bool>("AutoDelete")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodelete");
+                    b.Property<bool>("AutoDelete")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodelete");
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.HasKey("Id")
-                    .HasName("pk_autotranslatechannels");
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslatechannels");
 
-                b.HasIndex("ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_autotranslatechannels_channelid");
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autotranslatechannels_channelid");
 
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_autotranslatechannels_guildid");
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_autotranslatechannels_guildid");
 
-                b.ToTable("autotranslatechannels", (string)null);
-            });
+                    b.ToTable("autotranslatechannels", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("ChannelId")
-                    .HasColumnType("integer")
-                    .HasColumnName("channelid");
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("integer")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Source")
-                    .HasColumnType("text")
-                    .HasColumnName("source");
+                    b.Property<string>("Source")
+                        .HasColumnType("text")
+                        .HasColumnName("source");
 
-                b.Property<string>("Target")
-                    .HasColumnType("text")
-                    .HasColumnName("target");
+                    b.Property<string>("Target")
+                        .HasColumnType("text")
+                        .HasColumnName("target");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_autotranslateusers");
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslateusers");
 
-                b.HasAlternateKey("ChannelId", "UserId")
-                    .HasName("ak_autotranslateusers_channelid_userid");
+                    b.HasAlternateKey("ChannelId", "UserId")
+                        .HasName("ak_autotranslateusers_channelid_userid");
 
-                b.ToTable("autotranslateusers", (string)null);
-            });
+                    b.ToTable("autotranslateusers", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<int?>("PruneDays")
-                    .HasColumnType("integer")
-                    .HasColumnName("prunedays");
+                    b.Property<int?>("PruneDays")
+                        .HasColumnType("integer")
+                        .HasColumnName("prunedays");
 
-                b.Property<string>("Text")
-                    .HasColumnType("text")
-                    .HasColumnName("text");
+                    b.Property<string>("Text")
+                        .HasColumnType("text")
+                        .HasColumnName("text");
 
-                b.HasKey("Id")
-                    .HasName("pk_bantemplates");
+                    b.HasKey("Id")
+                        .HasName("pk_bantemplates");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_bantemplates_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bantemplates_guildid");
 
-                b.ToTable("bantemplates", (string)null);
-            });
+                    b.ToTable("bantemplates", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<long>("Balance")
-                    .HasColumnType("bigint")
-                    .HasColumnName("balance");
+                    b.Property<long>("Balance")
+                        .HasColumnType("bigint")
+                        .HasColumnName("balance");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_bankusers");
+                    b.HasKey("Id")
+                        .HasName("pk_bankusers");
 
-                b.HasIndex("UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_bankusers_userid");
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bankusers_userid");
 
-                b.ToTable("bankusers", (string)null);
-            });
+                    b.ToTable("bankusers", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("ItemId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("itemid");
+                    b.Property<decimal>("ItemId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("itemid");
 
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
 
-                b.HasKey("Id")
-                    .HasName("pk_blacklist");
+                    b.HasKey("Id")
+                        .HasName("pk_blacklist");
 
-                b.ToTable("blacklist", (string)null);
-            });
+                    b.ToTable("blacklist", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("ButtonId")
-                    .IsRequired()
-                    .HasMaxLength(200)
-                    .HasColumnType("character varying(200)")
-                    .HasColumnName("buttonid");
+                    b.Property<string>("ButtonId")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("character varying(200)")
+                        .HasColumnName("buttonid");
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<string>("Emote")
-                    .IsRequired()
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("emote");
+                    b.Property<string>("Emote")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("emote");
 
-                b.Property<bool>("Exclusive")
-                    .HasColumnType("boolean")
-                    .HasColumnName("exclusive");
+                    b.Property<bool>("Exclusive")
+                        .HasColumnType("boolean")
+                        .HasColumnName("exclusive");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("Label")
-                    .IsRequired()
-                    .HasMaxLength(50)
-                    .HasColumnType("character varying(50)")
-                    .HasColumnName("label");
+                    b.Property<string>("Label")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("character varying(50)")
+                        .HasColumnName("label");
 
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
 
-                b.Property<int>("Position")
-                    .HasColumnType("integer")
-                    .HasColumnName("position");
+                    b.Property<int>("Position")
+                        .HasColumnType("integer")
+                        .HasColumnName("position");
 
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
 
-                b.HasKey("Id")
-                    .HasName("pk_buttonrole");
+                    b.HasKey("Id")
+                        .HasName("pk_buttonrole");
 
-                b.HasAlternateKey("RoleId", "MessageId")
-                    .HasName("ak_buttonrole_roleid_messageid");
+                    b.HasAlternateKey("RoleId", "MessageId")
+                        .HasName("ak_buttonrole_roleid_messageid");
 
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_buttonrole_guildid");
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_buttonrole_guildid");
 
-                b.ToTable("buttonrole", (string)null);
-            });
+                    b.ToTable("buttonrole", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("integer")
-                    .HasColumnName("clubid");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
 
-                b.HasKey("ClubId", "UserId")
-                    .HasName("pk_clubapplicants");
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubapplicants");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_clubapplicants_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubapplicants_userid");
 
-                b.ToTable("clubapplicants", (string)null);
-            });
+                    b.ToTable("clubapplicants", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("integer")
-                    .HasColumnName("clubid");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
 
-                b.HasKey("ClubId", "UserId")
-                    .HasName("pk_clubbans");
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubbans");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_clubbans_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubbans_userid");
 
-                b.ToTable("clubbans", (string)null);
-            });
+                    b.ToTable("clubbans", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Description")
-                    .HasColumnType("text")
-                    .HasColumnName("description");
+                    b.Property<string>("Description")
+                        .HasColumnType("text")
+                        .HasColumnName("description");
 
-                b.Property<string>("ImageUrl")
-                    .HasColumnType("text")
-                    .HasColumnName("imageurl");
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("imageurl");
 
-                b.Property<string>("Name")
-                    .HasMaxLength(20)
-                    .HasColumnType("character varying(20)")
-                    .HasColumnName("name");
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("character varying(20)")
+                        .HasColumnName("name");
 
-                b.Property<int?>("OwnerId")
-                    .HasColumnType("integer")
-                    .HasColumnName("ownerid");
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("integer")
+                        .HasColumnName("ownerid");
 
-                b.Property<int>("Xp")
-                    .HasColumnType("integer")
-                    .HasColumnName("xp");
+                    b.Property<int>("Xp")
+                        .HasColumnType("integer")
+                        .HasColumnName("xp");
 
-                b.HasKey("Id")
-                    .HasName("pk_clubs");
+                    b.HasKey("Id")
+                        .HasName("pk_clubs");
 
-                b.HasIndex("Name")
-                    .IsUnique()
-                    .HasDatabaseName("ix_clubs_name");
+                    b.HasIndex("Name")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_name");
 
-                b.HasIndex("OwnerId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_clubs_ownerid");
+                    b.HasIndex("OwnerId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_ownerid");
 
-                b.ToTable("clubs", (string)null);
-            });
+                    b.ToTable("clubs", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-                b.Property<string>("Mapping")
-                    .HasColumnType("text")
-                    .HasColumnName("mapping");
+                    b.Property<string>("Mapping")
+                        .HasColumnType("text")
+                        .HasColumnName("mapping");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("text")
-                    .HasColumnName("trigger");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
 
-                b.HasKey("Id")
-                    .HasName("pk_commandalias");
+                    b.HasKey("Id")
+                        .HasName("pk_commandalias");
 
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_commandalias_guildconfigid");
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_commandalias_guildconfigid");
 
-                b.ToTable("commandalias", (string)null);
-            });
+                    b.ToTable("commandalias", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("CommandName")
-                    .HasColumnType("text")
-                    .HasColumnName("commandname");
+                    b.Property<string>("CommandName")
+                        .HasColumnType("text")
+                        .HasColumnName("commandname");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("integer")
-                    .HasColumnName("seconds");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
 
-                b.HasKey("Id")
-                    .HasName("pk_commandcooldown");
+                    b.HasKey("Id")
+                        .HasName("pk_commandcooldown");
 
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_commandcooldown_guildconfigid");
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_commandcooldown_guildconfigid");
 
-                b.ToTable("commandcooldown", (string)null);
-            });
+                    b.ToTable("commandcooldown", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<long>("Amount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amount");
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Extra")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("extra");
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("extra");
 
-                b.Property<string>("Note")
-                    .HasColumnType("text")
-                    .HasColumnName("note");
+                    b.Property<string>("Note")
+                        .HasColumnType("text")
+                        .HasColumnName("note");
 
-                b.Property<decimal?>("OtherId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("otherid")
-                    .HasDefaultValueSql("NULL");
+                    b.Property<decimal?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("otherid")
+                        .HasDefaultValueSql("NULL");
 
-                b.Property<string>("Type")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("type");
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("type");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_currencytransactions");
+                    b.HasKey("Id")
+                        .HasName("pk_currencytransactions");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_currencytransactions_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_currencytransactions_userid");
 
-                b.ToTable("currencytransactions", (string)null);
-            });
+                    b.ToTable("currencytransactions", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-                b.Property<bool>("State")
-                    .HasColumnType("boolean")
-                    .HasColumnName("state");
+                    b.Property<bool>("State")
+                        .HasColumnType("boolean")
+                        .HasColumnName("state");
 
-                b.HasKey("Id")
-                    .HasName("pk_delmsgoncmdchannel");
+                    b.HasKey("Id")
+                        .HasName("pk_delmsgoncmdchannel");
 
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_delmsgoncmdchannel_guildconfigid");
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_delmsgoncmdchannel_guildconfigid");
 
-                b.ToTable("delmsgoncmdchannel", (string)null);
-            });
+                    b.ToTable("delmsgoncmdchannel", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("Command")
-                    .HasColumnType("text")
-                    .HasColumnName("command");
+                    b.Property<string>("Command")
+                        .HasColumnType("text")
+                        .HasColumnName("command");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal?>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<decimal>("Perm")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("perm");
+                    b.Property<decimal>("Perm")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("perm");
 
-                b.HasKey("Id")
-                    .HasName("pk_discordpermoverrides");
+                    b.HasKey("Id")
+                        .HasName("pk_discordpermoverrides");
 
-                b.HasIndex("GuildId", "Command")
-                    .IsUnique()
-                    .HasDatabaseName("ix_discordpermoverrides_guildid_command");
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique()
+                        .HasDatabaseName("ix_discordpermoverrides_guildid_command");
 
-                b.ToTable("discordpermoverrides", (string)null);
-            });
+                    b.ToTable("discordpermoverrides", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("AvatarId")
-                    .HasColumnType("text")
-                    .HasColumnName("avatarid");
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("text")
+                        .HasColumnName("avatarid");
 
-                b.Property<int?>("ClubId")
-                    .HasColumnType("integer")
-                    .HasColumnName("clubid");
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
 
-                b.Property<long>("CurrencyAmount")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(0L)
-                    .HasColumnName("currencyamount");
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("currencyamount");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<bool>("IsClubAdmin")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(false)
-                    .HasColumnName("isclubadmin");
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isclubadmin");
 
-                b.Property<int>("NotifyOnLevelUp")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(0)
-                    .HasColumnName("notifyonlevelup");
+                    b.Property<int>("NotifyOnLevelUp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(0)
+                        .HasColumnName("notifyonlevelup");
 
-                b.Property<long>("TotalXp")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(0L)
-                    .HasColumnName("totalxp");
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("totalxp");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
 
-                b.HasKey("Id")
-                    .HasName("pk_discorduser");
+                    b.HasKey("Id")
+                        .HasName("pk_discorduser");
 
-                b.HasAlternateKey("UserId")
-                    .HasName("ak_discorduser_userid");
+                    b.HasAlternateKey("UserId")
+                        .HasName("ak_discorduser_userid");
 
-                b.HasIndex("ClubId")
-                    .HasDatabaseName("ix_discorduser_clubid");
+                    b.HasIndex("ClubId")
+                        .HasDatabaseName("ix_discorduser_clubid");
 
-                b.HasIndex("CurrencyAmount")
-                    .HasDatabaseName("ix_discorduser_currencyamount");
+                    b.HasIndex("CurrencyAmount")
+                        .HasDatabaseName("ix_discorduser_currencyamount");
 
-                b.HasIndex("TotalXp")
-                    .HasDatabaseName("ix_discorduser_totalxp");
+                    b.HasIndex("TotalXp")
+                        .HasDatabaseName("ix_discorduser_totalxp");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_discorduser_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_discorduser_userid");
 
-                b.HasIndex("Username")
-                    .HasDatabaseName("ix_discorduser_username");
+                    b.HasIndex("Username")
+                        .HasDatabaseName("ix_discorduser_username");
 
-                b.ToTable("discorduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("ItemId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("itemid");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<int?>("XpSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("xpsettingsid");
-
-                b.HasKey("Id")
-                    .HasName("pk_excludeditem");
-
-                b.HasIndex("XpSettingsId")
-                    .HasDatabaseName("ix_excludeditem_xpsettingsid");
-
-                b.ToTable("excludeditem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<string>("Url")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("url");
-
-                b.HasKey("Id")
-                    .HasName("pk_feedsub");
-
-                b.HasAlternateKey("GuildConfigId", "Url")
-                    .HasName("ak_feedsub_guildconfigid_url");
-
-                b.ToTable("feedsub", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterchannelid");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_filterchannelid_guildconfigid");
-
-                b.ToTable("filterchannelid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterlinkschannelid");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_filterlinkschannelid_guildconfigid");
-
-                b.ToTable("filterlinkschannelid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterwordschannelid");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_filterwordschannelid_guildconfigid");
-
-                b.ToTable("filterwordschannelid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<string>("Word")
-                    .HasColumnType("text")
-                    .HasColumnName("word");
-
-                b.HasKey("Id")
-                    .HasName("pk_filteredword");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_filteredword_guildconfigid");
-
-                b.ToTable("filteredword", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_flagtranslatechannel");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");
-
-                b.ToTable("flagtranslatechannel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_followedstream");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_followedstream_guildconfigid");
-
-                b.ToTable("followedstream", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_gcchannelid");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_gcchannelid_guildconfigid");
-
-                b.ToTable("gcchannelid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("Bet")
-                    .HasColumnType("numeric")
-                    .HasColumnName("bet");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Feature")
-                    .HasColumnType("text")
-                    .HasColumnName("feature");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("numeric")
-                    .HasColumnName("paidout");
-
-                b.HasKey("Id")
-                    .HasName("pk_gamblingstats");
-
-                b.HasIndex("Feature")
-                    .IsUnique()
-                    .HasDatabaseName("ix_gamblingstats_feature");
-
-                b.ToTable("gamblingstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime>("EndsAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("endsat");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.HasKey("Id")
-                    .HasName("pk_giveawaymodel");
-
-                b.ToTable("giveawaymodel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("GiveawayId")
-                    .HasColumnType("integer")
-                    .HasColumnName("giveawayid");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_giveawayuser");
-
-                b.HasIndex("GiveawayId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_giveawayuser_giveawayid_userid");
-
-                b.ToTable("giveawayuser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("ErrorColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("errorcolor");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("OkColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("okcolor");
-
-                b.Property<string>("PendingColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("pendingcolor");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildcolors");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_guildcolors_guildid");
-
-                b.ToTable("guildcolors", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("AutoAssignRoleIds")
-                    .HasColumnType("text")
-                    .HasColumnName("autoassignroleids");
-
-                b.Property<bool>("CleverbotEnabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("cleverbotenabled");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("DeleteMessageOnCommand")
-                    .HasColumnType("boolean")
-                    .HasColumnName("deletemessageoncommand");
-
-                b.Property<bool>("DeleteStreamOnlineMessage")
-                    .HasColumnType("boolean")
-                    .HasColumnName("deletestreamonlinemessage");
-
-                b.Property<bool>("DisableGlobalExpressions")
-                    .HasColumnType("boolean")
-                    .HasColumnName("disableglobalexpressions");
-
-                b.Property<bool>("FilterInvites")
-                    .HasColumnType("boolean")
-                    .HasColumnName("filterinvites");
-
-                b.Property<bool>("FilterLinks")
-                    .HasColumnType("boolean")
-                    .HasColumnName("filterlinks");
-
-                b.Property<bool>("FilterWords")
-                    .HasColumnType("boolean")
-                    .HasColumnName("filterwords");
-
-                b.Property<decimal?>("GameVoiceChannel")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("gamevoicechannel");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Locale")
-                    .HasColumnType("text")
-                    .HasColumnName("locale");
-
-                b.Property<string>("MuteRoleName")
-                    .HasColumnType("text")
-                    .HasColumnName("muterolename");
-
-                b.Property<bool>("NotifyStreamOffline")
-                    .HasColumnType("boolean")
-                    .HasColumnName("notifystreamoffline");
-
-                b.Property<string>("PermissionRole")
-                    .HasColumnType("text")
-                    .HasColumnName("permissionrole");
-
-                b.Property<string>("Prefix")
-                    .HasColumnType("text")
-                    .HasColumnName("prefix");
-
-                b.Property<bool>("StickyRoles")
-                    .HasColumnType("boolean")
-                    .HasColumnName("stickyroles");
-
-                b.Property<string>("TestMigration")
-                    .HasColumnType("text")
-                    .HasColumnName("testmigration");
-
-                b.Property<string>("TimeZoneId")
-                    .HasColumnType("text")
-                    .HasColumnName("timezoneid");
-
-                b.Property<bool>("VerboseErrors")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(true)
-                    .HasColumnName("verboseerrors");
-
-                b.Property<bool>("VerbosePermissions")
-                    .HasColumnType("boolean")
-                    .HasColumnName("verbosepermissions");
-
-                b.Property<int>("WarnExpireAction")
-                    .HasColumnType("integer")
-                    .HasColumnName("warnexpireaction");
-
-                b.Property<int>("WarnExpireHours")
-                    .HasColumnType("integer")
-                    .HasColumnName("warnexpirehours");
-
-                b.Property<bool>("WarningsInitialized")
-                    .HasColumnType("boolean")
-                    .HasColumnName("warningsinitialized");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildconfigs");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_guildconfigs_guildid");
-
-                b.HasIndex("WarnExpireHours")
-                    .HasDatabaseName("ix_guildconfigs_warnexpirehours");
-
-                b.ToTable("guildconfigs", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
-            {
-                b.Property<decimal>("GuildId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.HasKey("GuildId")
-                    .HasName("pk_honeypotchannels");
-
-                b.ToTable("honeypotchannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<decimal>("LogItemId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logitemid");
-
-                b.Property<int>("LogSettingId")
-                    .HasColumnType("integer")
-                    .HasColumnName("logsettingid");
-
-                b.HasKey("Id")
-                    .HasName("pk_ignoredlogchannels");
-
-                b.HasIndex("LogSettingId", "LogItemId", "ItemType")
-                    .IsUnique()
-                    .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");
-
-                b.ToTable("ignoredlogchannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_imageonlychannels");
-
-                b.HasIndex("ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_imageonlychannels_channelid");
-
-                b.ToTable("imageonlychannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal?>("ChannelCreatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelcreatedid");
-
-                b.Property<decimal?>("ChannelDestroyedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channeldestroyedid");
-
-                b.Property<decimal?>("ChannelUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelupdatedid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal?>("LogOtherId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logotherid");
-
-                b.Property<decimal?>("LogUserPresenceId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("loguserpresenceid");
-
-                b.Property<decimal?>("LogVoicePresenceId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logvoicepresenceid");
-
-                b.Property<decimal?>("LogVoicePresenceTTSId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logvoicepresencettsid");
-
-                b.Property<decimal?>("LogWarnsId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logwarnsid");
-
-                b.Property<decimal?>("MessageDeletedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messagedeletedid");
-
-                b.Property<decimal?>("MessageUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageupdatedid");
-
-                b.Property<decimal?>("ThreadCreatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("threadcreatedid");
-
-                b.Property<decimal?>("ThreadDeletedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("threaddeletedid");
-
-                b.Property<decimal?>("UserBannedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userbannedid");
-
-                b.Property<decimal?>("UserJoinedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userjoinedid");
-
-                b.Property<decimal?>("UserLeftId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userleftid");
-
-                b.Property<decimal?>("UserMutedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("usermutedid");
-
-                b.Property<decimal?>("UserUnbannedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userunbannedid");
-
-                b.Property<decimal?>("UserUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userupdatedid");
-
-                b.HasKey("Id")
-                    .HasName("pk_logsettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_logsettings_guildid");
-
-                b.ToTable("logsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<bool>("AutoDisconnect")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodisconnect");
-
-                b.Property<bool>("AutoPlay")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autoplay");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal?>("MusicChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("musicchannelid");
-
-                b.Property<int>("PlayerRepeat")
-                    .HasColumnType("integer")
-                    .HasColumnName("playerrepeat");
-
-                b.Property<int>("QualityPreset")
-                    .HasColumnType("integer")
-                    .HasColumnName("qualitypreset");
-
-                b.Property<int>("Volume")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(100)
-                    .HasColumnName("volume");
-
-                b.HasKey("Id")
-                    .HasName("pk_musicplayersettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_musicplayersettings_guildid");
-
-                b.ToTable("musicplayersettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("Author")
-                    .HasColumnType("text")
-                    .HasColumnName("author");
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.HasKey("Id")
-                    .HasName("pk_musicplaylists");
-
-                b.ToTable("musicplaylists", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_muteduserid");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_muteduserid_guildconfigid");
-
-                b.ToTable("muteduserid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("Color")
-                    .HasColumnType("bigint")
-                    .HasColumnName("color");
-
-                b.Property<decimal>("OwnerId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("ownerid");
-
-                b.Property<int>("Position")
-                    .HasColumnType("integer")
-                    .HasColumnName("position");
-
-                b.Property<long>("Price")
-                    .HasColumnType("bigint")
-                    .HasColumnName("price");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasMaxLength(256)
-                    .HasColumnType("character varying(256)")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_ncpixel");
-
-                b.HasAlternateKey("Position")
-                    .HasName("ak_ncpixel_position");
-
-                b.HasIndex("OwnerId")
-                    .HasDatabaseName("ix_ncpixel_ownerid");
-
-                b.ToTable("ncpixel", (string)null);
-            });
+                    b.ToTable("discorduser", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<bool>("AllowTarget")
-                    .HasColumnType("boolean")
-                    .HasColumnName("allowtarget");
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("boolean")
+                        .HasColumnName("allowtarget");
 
-                b.Property<bool>("AutoDeleteTrigger")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodeletetrigger");
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodeletetrigger");
 
-                b.Property<bool>("ContainsAnywhere")
-                    .HasColumnType("boolean")
-                    .HasColumnName("containsanywhere");
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("boolean")
+                        .HasColumnName("containsanywhere");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<bool>("DmResponse")
-                    .HasColumnType("boolean")
-                    .HasColumnName("dmresponse");
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("boolean")
+                        .HasColumnName("dmresponse");
 
-                b.Property<decimal?>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("Reactions")
-                    .HasColumnType("text")
-                    .HasColumnName("reactions");
+                    b.Property<string>("Reactions")
+                        .HasColumnType("text")
+                        .HasColumnName("reactions");
 
-                b.Property<string>("Response")
-                    .HasColumnType("text")
-                    .HasColumnName("response");
+                    b.Property<string>("Response")
+                        .HasColumnType("text")
+                        .HasColumnName("response");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("text")
-                    .HasColumnName("trigger");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
 
-                b.HasKey("Id")
-                    .HasName("pk_expressions");
+                    b.HasKey("Id")
+                        .HasName("pk_expressions");
 
-                b.ToTable("expressions", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .IsRequired()
-                    .HasMaxLength(10000)
-                    .HasColumnType("character varying(10000)")
-                    .HasColumnName("message");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_notify");
-
-                b.HasAlternateKey("GuildId", "Type")
-                    .HasName("ak_notify_guildid_type");
-
-                b.ToTable("notify", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
-            {
-                b.Property<decimal>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<int>("AmountCents")
-                    .HasColumnType("integer")
-                    .HasColumnName("amountcents");
-
-                b.Property<DateTime>("LastCharge")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("lastcharge");
-
-                b.Property<string>("UniquePlatformUserId")
-                    .HasColumnType("text")
-                    .HasColumnName("uniqueplatformuserid");
-
-                b.Property<DateTime>("ValidThru")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("validthru");
-
-                b.HasKey("UserId")
-                    .HasName("pk_patrons");
-
-                b.HasIndex("UniquePlatformUserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_patrons_uniqueplatformuserid");
-
-                b.ToTable("patrons", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<int>("Index")
-                    .HasColumnType("integer")
-                    .HasColumnName("index");
-
-                b.Property<bool>("IsCustomCommand")
-                    .HasColumnType("boolean")
-                    .HasColumnName("iscustomcommand");
-
-                b.Property<int>("PrimaryTarget")
-                    .HasColumnType("integer")
-                    .HasColumnName("primarytarget");
-
-                b.Property<decimal>("PrimaryTargetId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("primarytargetid");
-
-                b.Property<int>("SecondaryTarget")
-                    .HasColumnType("integer")
-                    .HasColumnName("secondarytarget");
-
-                b.Property<string>("SecondaryTargetName")
-                    .HasColumnType("text")
-                    .HasColumnName("secondarytargetname");
-
-                b.Property<bool>("State")
-                    .HasColumnType("boolean")
-                    .HasColumnName("state");
-
-                b.HasKey("Id")
-                    .HasName("pk_permissions");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_permissions_guildconfigid");
-
-                b.ToTable("permissions", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("Amount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amount");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<string>("Password")
-                    .HasColumnType("text")
-                    .HasColumnName("password");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_plantedcurrency");
-
-                b.HasIndex("ChannelId")
-                    .HasDatabaseName("ix_plantedcurrency_channelid");
-
-                b.HasIndex("MessageId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_plantedcurrency_messageid");
-
-                b.ToTable("plantedcurrency", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("MusicPlaylistId")
-                    .HasColumnType("integer")
-                    .HasColumnName("musicplaylistid");
-
-                b.Property<string>("Provider")
-                    .HasColumnType("text")
-                    .HasColumnName("provider");
-
-                b.Property<int>("ProviderType")
-                    .HasColumnType("integer")
-                    .HasColumnName("providertype");
-
-                b.Property<string>("Query")
-                    .HasColumnType("text")
-                    .HasColumnName("query");
-
-                b.Property<string>("Title")
-                    .HasColumnType("text")
-                    .HasColumnName("title");
-
-                b.Property<string>("Uri")
-                    .HasColumnType("text")
-                    .HasColumnName("uri");
-
-                b.HasKey("Id")
-                    .HasName("pk_playlistsong");
-
-                b.HasIndex("MusicPlaylistId")
-                    .HasDatabaseName("ix_playlistsong_musicplaylistid");
-
-                b.ToTable("playlistsong", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<string>("AuthorName")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("authorname");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Keyword")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("keyword");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_quotes");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_quotes_guildid");
-
-                b.HasIndex("Keyword")
-                    .HasDatabaseName("ix_quotes_keyword");
-
-                b.ToTable("quotes", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Emote")
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("emote");
-
-                b.Property<int>("Group")
-                    .HasColumnType("integer")
-                    .HasColumnName("group");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("integer")
-                    .HasColumnName("levelreq");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_reactionroles");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_reactionroles_guildid");
-
-                b.HasIndex("MessageId", "Emote")
-                    .IsUnique()
-                    .HasDatabaseName("ix_reactionroles_messageid_emote");
-
-                b.ToTable("reactionroles", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsPrivate")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isprivate");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<decimal>("ServerId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("serverid");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<DateTime>("When")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("when");
-
-                b.HasKey("Id")
-                    .HasName("pk_reminders");
-
-                b.HasIndex("When")
-                    .HasDatabaseName("ix_reminders_when");
-
-                b.ToTable("reminders", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<TimeSpan>("Interval")
-                    .HasColumnType("interval")
-                    .HasColumnName("interval");
-
-                b.Property<decimal?>("LastMessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("lastmessageid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<bool>("NoRedundant")
-                    .HasColumnType("boolean")
-                    .HasColumnName("noredundant");
-
-                b.Property<TimeSpan?>("StartTimeOfDay")
-                    .HasColumnType("interval")
-                    .HasColumnName("starttimeofday");
-
-                b.HasKey("Id")
-                    .HasName("pk_repeaters");
-
-                b.ToTable("repeaters", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("AmountRewardedThisMonth")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amountrewardedthismonth");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<DateTime>("LastReward")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("lastreward");
-
-                b.Property<string>("PlatformUserId")
-                    .HasColumnType("text")
-                    .HasColumnName("platformuserid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_rewardedusers");
-
-                b.HasIndex("PlatformUserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_rewardedusers_platformuserid");
-
-                b.ToTable("rewardedusers", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Status")
-                    .HasColumnType("text")
-                    .HasColumnName("status");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_rotatingstatus");
-
-                b.ToTable("rotatingstatus", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("integer")
-                    .HasColumnName("levelreq");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("SarGroupId")
-                    .HasColumnType("integer")
-                    .HasColumnName("sargroupid");
-
-                b.HasKey("Id")
-                    .HasName("pk_sar");
-
-                b.HasAlternateKey("GuildId", "RoleId")
-                    .HasName("ak_sar_guildid_roleid");
-
-                b.HasIndex("SarGroupId")
-                    .HasDatabaseName("ix_sar_sargroupid");
-
-                b.ToTable("sar", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsEnabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isenabled");
-
-                b.HasKey("Id")
-                    .HasName("pk_sarautodelete");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_sarautodelete_guildid");
-
-                b.ToTable("sarautodelete", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("GroupNumber")
-                    .HasColumnType("integer")
-                    .HasColumnName("groupnumber");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsExclusive")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isexclusive");
-
-                b.Property<string>("Name")
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("name");
-
-                b.Property<decimal?>("RoleReq")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("rolereq");
-
-                b.HasKey("Id")
-                    .HasName("pk_sargroup");
-
-                b.HasAlternateKey("GuildId", "GroupNumber")
-                    .HasName("ak_sargroup_guildid_groupnumber");
-
-                b.ToTable("sargroup", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<string>("Command")
-                    .HasColumnType("text")
-                    .HasColumnName("command");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<int>("Index")
-                    .HasColumnType("integer")
-                    .HasColumnName("index");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<int>("Price")
-                    .HasColumnType("integer")
-                    .HasColumnName("price");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<string>("RoleName")
-                    .HasColumnType("text")
-                    .HasColumnName("rolename");
-
-                b.Property<decimal?>("RoleRequirement")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("rolerequirement");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_shopentry");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_shopentry_guildconfigid");
-
-                b.ToTable("shopentry", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("ShopEntryId")
-                    .HasColumnType("integer")
-                    .HasColumnName("shopentryid");
-
-                b.Property<string>("Text")
-                    .HasColumnType("text")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_shopentryitem");
-
-                b.HasIndex("ShopEntryId")
-                    .HasDatabaseName("ix_shopentryitem_shopentryid");
-
-                b.ToTable("shopentryitem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_slowmodeignoredrole");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_slowmodeignoredrole_guildconfigid");
-
-                b.ToTable("slowmodeignoredrole", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_slowmodeignoreduser");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_slowmodeignoreduser_guildconfigid");
-
-                b.ToTable("slowmodeignoreduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("RoleIds")
-                    .HasColumnType("text")
-                    .HasColumnName("roleids");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_stickyroles");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_stickyroles_guildid_userid");
-
-                b.ToTable("stickyroles", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamonlinemessages");
-
-                b.ToTable("streamonlinemessages", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("streamrolesettingsid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamroleblacklisteduser");
-
-                b.HasIndex("StreamRoleSettingsId")
-                    .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid");
-
-                b.ToTable("streamroleblacklisteduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AddRoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("addroleid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("Enabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("enabled");
-
-                b.Property<decimal>("FromRoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("fromroleid");
-
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<string>("Keyword")
-                    .HasColumnType("text")
-                    .HasColumnName("keyword");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamrolesettings");
-
-                b.HasIndex("GuildConfigId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_streamrolesettings_guildconfigid");
-
-                b.ToTable("streamrolesettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("streamrolesettingsid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamrolewhitelisteduser");
-
-                b.HasIndex("StreamRoleSettingsId")
-                    .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");
-
-                b.ToTable("streamrolewhitelisteduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime>("ExpiresAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("expiresat");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("boolean")
-                    .HasColumnName("remove");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_temprole");
-
-                b.HasAlternateKey("GuildId", "UserId", "RoleId")
-                    .HasName("ak_temprole_guildid_userid_roleid");
-
-                b.HasIndex("ExpiresAt")
-                    .HasDatabaseName("ix_temprole_expiresat");
-
-                b.ToTable("temprole", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("ArchiveId")
-                    .HasColumnType("integer")
-                    .HasColumnName("archiveid");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsDone")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isdone");
-
-                b.Property<string>("Todo")
-                    .HasColumnType("text")
-                    .HasColumnName("todo");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_todos");
-
-                b.HasIndex("ArchiveId")
-                    .HasDatabaseName("ix_todos_archiveid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_todos_userid");
-
-                b.ToTable("todos", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<DateTime>("UnbanAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("unbanat");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_unbantimer");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_unbantimer_guildconfigid");
-
-                b.ToTable("unbantimer", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<DateTime>("UnmuteAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("unmuteat");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_unmutetimer");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_unmutetimer_guildconfigid");
-
-                b.ToTable("unmutetimer", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<DateTime>("UnbanAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("unbanat");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_unroletimer");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_unroletimer_guildconfigid");
-
-                b.ToTable("unroletimer", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("Xp")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xp");
-
-                b.HasKey("Id")
-                    .HasName("pk_userxpstats");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_userxpstats_guildid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_userxpstats_userid");
-
-                b.HasIndex("Xp")
-                    .HasDatabaseName("ix_userxpstats_xp");
-
-                b.HasIndex("UserId", "GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userxpstats_userid_guildid");
-
-                b.ToTable("userxpstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<decimal>("VoiceChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("voicechannelid");
-
-                b.HasKey("Id")
-                    .HasName("pk_vcroleinfo");
-
-                b.HasIndex("GuildConfigId")
-                    .HasDatabaseName("ix_vcroleinfo_guildconfigid");
-
-                b.ToTable("vcroleinfo", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("AffinityId")
-                    .HasColumnType("integer")
-                    .HasColumnName("affinityid");
-
-                b.Property<int?>("ClaimerId")
-                    .HasColumnType("integer")
-                    .HasColumnName("claimerid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<long>("Price")
-                    .HasColumnType("bigint")
-                    .HasColumnName("price");
-
-                b.Property<int>("WaifuId")
-                    .HasColumnType("integer")
-                    .HasColumnName("waifuid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuinfo");
-
-                b.HasIndex("AffinityId")
-                    .HasDatabaseName("ix_waifuinfo_affinityid");
-
-                b.HasIndex("ClaimerId")
-                    .HasDatabaseName("ix_waifuinfo_claimerid");
-
-                b.HasIndex("Price")
-                    .HasDatabaseName("ix_waifuinfo_price");
-
-                b.HasIndex("WaifuId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_waifuinfo_waifuid");
-
-                b.ToTable("waifuinfo", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("ItemEmoji")
-                    .HasColumnType("text")
-                    .HasColumnName("itememoji");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<int?>("WaifuInfoId")
-                    .HasColumnType("integer")
-                    .HasColumnName("waifuinfoid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuitem");
-
-                b.HasIndex("WaifuInfoId")
-                    .HasDatabaseName("ix_waifuitem_waifuinfoid");
-
-                b.ToTable("waifuitem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("NewId")
-                    .HasColumnType("integer")
-                    .HasColumnName("newid");
-
-                b.Property<int?>("OldId")
-                    .HasColumnType("integer")
-                    .HasColumnName("oldid");
-
-                b.Property<int>("UpdateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("updatetype");
-
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuupdates");
-
-                b.HasIndex("NewId")
-                    .HasDatabaseName("ix_waifuupdates_newid");
-
-                b.HasIndex("OldId")
-                    .HasDatabaseName("ix_waifuupdates_oldid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_waifuupdates_userid");
-
-                b.ToTable("waifuupdates", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("Forgiven")
-                    .HasColumnType("boolean")
-                    .HasColumnName("forgiven");
-
-                b.Property<string>("ForgivenBy")
-                    .HasColumnType("text")
-                    .HasColumnName("forgivenby");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Moderator")
-                    .HasColumnType("text")
-                    .HasColumnName("moderator");
-
-                b.Property<string>("Reason")
-                    .HasColumnType("text")
-                    .HasColumnName("reason");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("Weight")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(1L)
-                    .HasColumnName("weight");
-
-                b.HasKey("Id")
-                    .HasName("pk_warnings");
-
-                b.HasIndex("DateAdded")
-                    .HasDatabaseName("ix_warnings_dateadded");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_warnings_guildid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_warnings_userid");
-
-                b.ToTable("warnings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Count")
-                    .HasColumnType("integer")
-                    .HasColumnName("count");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Punishment")
-                    .HasColumnType("integer")
-                    .HasColumnName("punishment");
-
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("Time")
-                    .HasColumnType("integer")
-                    .HasColumnName("time");
-
-                b.HasKey("Id")
-                    .HasName("pk_warningpunishment");
-
-                b.HasAlternateKey("GuildId", "Count")
-                    .HasName("ak_warningpunishment_guildid_count");
-
-                b.ToTable("warningpunishment", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Amount")
-                    .HasColumnType("integer")
-                    .HasColumnName("amount");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("Level")
-                    .HasColumnType("integer")
-                    .HasColumnName("level");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("xpsettingsid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpcurrencyreward");
-
-                b.HasIndex("XpSettingsId")
-                    .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");
-
-                b.ToTable("xpcurrencyreward", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("Level")
-                    .HasColumnType("integer")
-                    .HasColumnName("level");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("boolean")
-                    .HasColumnName("remove");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("xpsettingsid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xprolereward");
-
-                b.HasIndex("XpSettingsId", "Level")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xprolereward_xpsettingsid_level");
-
-                b.ToTable("xprolereward", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<bool>("ServerExcluded")
-                    .HasColumnType("boolean")
-                    .HasColumnName("serverexcluded");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpsettings");
-
-                b.HasIndex("GuildConfigId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpsettings_guildconfigid");
-
-                b.ToTable("xpsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsUsing")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isusing");
-
-                b.Property<string>("ItemKey")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("itemkey");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpshopowneditem");
-
-                b.HasIndex("UserId", "ItemType", "ItemKey")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");
-
-                b.ToTable("xpshopowneditem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Count")
-                    .HasColumnType("integer")
-                    .HasColumnName("count");
-
-                b.Property<int>("FishId")
-                    .HasColumnType("integer")
-                    .HasColumnName("fishid");
-
-                b.Property<int>("MaxStars")
-                    .HasColumnType("integer")
-                    .HasColumnName("maxstars");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_fishcatch");
-
-                b.HasAlternateKey("UserId", "FishId")
-                    .HasName("ak_fishcatch_userid_fishid");
-
-                b.ToTable("fishcatch", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Skill")
-                    .HasColumnType("integer")
-                    .HasColumnName("skill");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_userfishstats");
-
-                b.HasIndex("UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userfishstats_userid");
-
-                b.ToTable("userfishstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("AutoDeleteTimer")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(0)
-                    .HasColumnName("autodeletetimer");
-
-                b.Property<decimal?>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<int>("GreetType")
-                    .HasColumnType("integer")
-                    .HasColumnName("greettype");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsEnabled")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(false)
-                    .HasColumnName("isenabled");
-
-                b.Property<string>("MessageText")
-                    .HasColumnType("text")
-                    .HasColumnName("messagetext");
-
-                b.HasKey("Id")
-                    .HasName("pk_greetsettings");
-
-                b.HasIndex("GuildId", "GreetType")
-                    .IsUnique()
-                    .HasDatabaseName("ix_greetsettings_guildid_greettype");
-
-                b.ToTable("greetsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
-            {
-                b.Property<decimal>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<decimal>("Amount")
-                    .HasColumnType("numeric")
-                    .HasColumnName("amount");
-
-                b.HasKey("UserId")
-                    .HasName("pk_rakeback");
-
-                b.ToTable("rakeback", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Game")
-                    .HasColumnType("integer")
-                    .HasColumnName("game");
-
-                b.Property<long>("LoseCount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("losecount");
-
-                b.Property<long>("MaxBet")
-                    .HasColumnType("bigint")
-                    .HasColumnName("maxbet");
-
-                b.Property<long>("MaxWin")
-                    .HasColumnType("bigint")
-                    .HasColumnName("maxwin");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("numeric")
-                    .HasColumnName("paidout");
-
-                b.Property<decimal>("TotalBet")
-                    .HasColumnType("numeric")
-                    .HasColumnName("totalbet");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("WinCount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("wincount");
-
-                b.HasKey("Id")
-                    .HasName("pk_userbetstats");
-
-                b.HasIndex("MaxWin")
-                    .HasDatabaseName("ix_userbetstats_maxwin");
-
-                b.HasIndex("UserId", "Game")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userbetstats_userid_game");
-
-                b.ToTable("userbetstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithOne("AntiAltSetting")
-                    .HasForeignKey("EllieBot.Db.Models.AntiAltSetting", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_antialtsetting_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithOne("AntiRaidSetting")
-                    .HasForeignKey("EllieBot.Db.Models.AntiRaidSetting", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_antiraidsetting_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
-                    .WithMany("IgnoredChannels")
-                    .HasForeignKey("AntiSpamSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithOne("AntiSpamSetting")
-                    .HasForeignKey("EllieBot.Db.Models.AntiSpamSetting", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_antispamsetting_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel")
-                    .WithMany("Users")
-                    .HasForeignKey("ChannelId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid");
-
-                b.Navigation("Channel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Applicants")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_clubapplicants_clubs_clubid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_clubapplicants_discorduser_userid");
-
-                b.Navigation("Club");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Bans")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_clubbans_clubs_clubid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_clubbans_discorduser_userid");
-
-                b.Navigation("Club");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId")
-                    .OnDelete(DeleteBehavior.SetNull)
-                    .HasConstraintName("fk_clubs_discorduser_ownerid");
-
-                b.Navigation("Owner");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("CommandAliases")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_commandalias_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("CommandCooldowns")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_commandcooldown_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("DelMsgOnCmdChannels")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_delmsgoncmdchannel_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Members")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.NoAction)
-                    .HasConstraintName("fk_discorduser_clubs_clubid");
-
-                b.Navigation("Club");
-            });
+                    b.ToTable("expressions", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
-                    .WithMany("ExclusionList")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_excludeditem_xpsettings_xpsettingsid");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("XpSettings");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("ItemId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("itemid");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<int?>("XpSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("xpsettingsid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_excludeditem");
+
+                    b.HasIndex("XpSettingsId")
+                        .HasDatabaseName("ix_excludeditem_xpsettingsid");
+
+                    b.ToTable("excludeditem", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithMany("FeedSubs")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_feedsub_guildconfigs_guildconfigid");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("GuildConfig");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<string>("Url")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("url");
+
+                    b.HasKey("Id")
+                        .HasName("pk_feedsub");
+
+                    b.HasAlternateKey("GuildConfigId", "Url")
+                        .HasName("ak_feedsub_guildconfigid_url");
+
+                    b.ToTable("feedsub", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilterInvitesChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_filterchannelid_guildconfigs_guildconfigid");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterchannelid");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_filterchannelid_guildconfigid");
+
+                    b.ToTable("filterchannelid", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilterLinksChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_filterlinkschannelid_guildconfigs_guildconfigid");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterlinkschannelid");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_filterlinkschannelid_guildconfigid");
+
+                    b.ToTable("filterlinkschannelid", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilterWordsChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_filterwordschannelid_guildconfigs_guildconfigid");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterwordschannelid");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_filterwordschannelid_guildconfigid");
+
+                    b.ToTable("filterwordschannelid", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilteredWords")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_filteredword_guildconfigs_guildconfigid");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Word")
+                        .HasColumnType("text")
+                        .HasColumnName("word");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filteredword");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_filteredword_guildconfigid");
+
+                    b.ToTable("filteredword", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_flagtranslatechannel");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");
+
+                    b.ToTable("flagtranslatechannel", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FollowedStreams")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_followedstream_guildconfigs_guildconfigid");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_followedstream");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_followedstream_guildconfigid");
+
+                    b.ToTable("followedstream", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithMany("GenerateCurrencyChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_gcchannelid_guildconfigs_guildconfigid");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("GuildConfig");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
-                    .WithMany("Participants")
-                    .HasForeignKey("GiveawayId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
-            });
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
-                    .WithMany("LogIgnores")
-                    .HasForeignKey("LogSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Navigation("LogSetting");
-            });
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("MutedUsers")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_muteduserid_guildconfigs_guildconfigid");
-            });
+                    b.HasKey("Id")
+                        .HasName("pk_gcchannelid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("Permissions")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
-            });
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_gcchannelid_guildconfigid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
-                    .WithMany("Songs")
-                    .HasForeignKey("MusicPlaylistId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
-            });
+                    b.ToTable("gcchannelid", (string)null);
+                });
 
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.SarGroup", null)
-                    .WithMany("Roles")
-                    .HasForeignKey("SarGroupId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_sar_sargroup_sargroupid");
-            });
+            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("ShopEntries")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_shopentry_guildconfigs_guildconfigid");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ShopEntry", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ShopEntryId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_shopentryitem_shopentry_shopentryid");
-            });
+                    b.Property<decimal>("Bet")
+                        .HasColumnType("numeric")
+                        .HasColumnName("bet");
 
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("SlowmodeIgnoredRoles")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_slowmodeignoredrole_guildconfigs_guildconfigid");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("SlowmodeIgnoredUsers")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_slowmodeignoreduser_guildconfigs_guildconfigid");
-            });
+                    b.Property<string>("Feature")
+                        .HasColumnType("text")
+                        .HasColumnName("feature");
 
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
-                    .WithMany("Blacklist")
-                    .HasForeignKey("StreamRoleSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~");
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("numeric")
+                        .HasColumnName("paidout");
 
-                b.Navigation("StreamRoleSettings");
-            });
+                    b.HasKey("Id")
+                        .HasName("pk_gamblingstats");
 
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithOne("StreamRole")
-                    .HasForeignKey("EllieBot.Db.Models.StreamRoleSettings", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_streamrolesettings_guildconfigs_guildconfigid");
+                    b.HasIndex("Feature")
+                        .IsUnique()
+                        .HasDatabaseName("ix_gamblingstats_feature");
 
-                b.Navigation("GuildConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
-                    .WithMany("Whitelist")
-                    .HasForeignKey("StreamRoleSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~");
-
-                b.Navigation("StreamRoleSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ArchiveId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_todos_todosarchive_archiveid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("UnbanTimer")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_unbantimer_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("UnmuteTimers")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_unmutetimer_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("UnroleTimer")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_unroletimer_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("VcRoleInfos")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_vcroleinfo_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
-                    .WithMany()
-                    .HasForeignKey("AffinityId")
-                    .HasConstraintName("fk_waifuinfo_discorduser_affinityid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
-                    .WithMany()
-                    .HasForeignKey("ClaimerId")
-                    .HasConstraintName("fk_waifuinfo_discorduser_claimerid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_waifuinfo_discorduser_waifuid");
-
-                b.Navigation("Affinity");
-
-                b.Navigation("Claimer");
-
-                b.Navigation("Waifu");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
-                    .WithMany("Items")
-                    .HasForeignKey("WaifuInfoId")
-                    .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");
-
-                b.Navigation("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
-                    .WithMany()
-                    .HasForeignKey("NewId")
-                    .HasConstraintName("fk_waifuupdates_discorduser_newid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
-                    .WithMany()
-                    .HasForeignKey("OldId")
-                    .HasConstraintName("fk_waifuupdates_discorduser_oldid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_waifuupdates_discorduser_userid");
-
-                b.Navigation("New");
-
-                b.Navigation("Old");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
-                    .WithMany("CurrencyRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");
-
-                b.Navigation("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
-                    .WithMany("RoleRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");
-
-                b.Navigation("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithOne("XpSettings")
-                    .HasForeignKey("EllieBot.Db.Models.XpSettings", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xpsettings_guildconfigs_guildconfigid");
-
-                b.Navigation("GuildConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Navigation("IgnoredChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Navigation("Items");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Navigation("Users");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Navigation("Applicants");
-
-                b.Navigation("Bans");
-
-                b.Navigation("Members");
-            });
+                    b.ToTable("gamblingstats", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Navigation("Participants");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("endsat");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_giveawaymodel");
+
+                    b.ToTable("giveawaymodel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("integer")
+                        .HasColumnName("giveawayid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_giveawayuser");
+
+                    b.HasIndex("GiveawayId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_giveawayuser_giveawayid_userid");
+
+                    b.ToTable("giveawayuser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ErrorColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("errorcolor");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("OkColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("okcolor");
+
+                    b.Property<string>("PendingColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("pendingcolor");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildcolors");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_guildcolors_guildid");
+
+                    b.ToTable("guildcolors", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Navigation("AntiAltSetting");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("AntiRaidSetting");
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Navigation("AntiSpamSetting");
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("text")
+                        .HasColumnName("autoassignroleids");
 
-                b.Navigation("CommandAliases");
+                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodeleteselfassignedrolemessages");
 
-                b.Navigation("CommandCooldowns");
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("cleverbotenabled");
 
-                b.Navigation("DelMsgOnCmdChannels");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Navigation("FeedSubs");
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("boolean")
+                        .HasColumnName("deletemessageoncommand");
 
-                b.Navigation("FilterInvitesChannelIds");
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("deletestreamonlinemessage");
 
-                b.Navigation("FilterLinksChannelIds");
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("boolean")
+                        .HasColumnName("disableglobalexpressions");
 
-                b.Navigation("FilterWordsChannelIds");
+                    b.Property<bool>("ExclusiveSelfAssignedRoles")
+                        .HasColumnType("boolean")
+                        .HasColumnName("exclusiveselfassignedroles");
 
-                b.Navigation("FilteredWords");
+                    b.Property<bool>("FilterInvites")
+                        .HasColumnType("boolean")
+                        .HasColumnName("filterinvites");
 
-                b.Navigation("FollowedStreams");
+                    b.Property<bool>("FilterLinks")
+                        .HasColumnType("boolean")
+                        .HasColumnName("filterlinks");
 
-                b.Navigation("GenerateCurrencyChannelIds");
+                    b.Property<bool>("FilterWords")
+                        .HasColumnType("boolean")
+                        .HasColumnName("filterwords");
 
-                b.Navigation("MutedUsers");
+                    b.Property<decimal?>("GameVoiceChannel")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("gamevoicechannel");
 
-                b.Navigation("Permissions");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Navigation("ShopEntries");
+                    b.Property<string>("Locale")
+                        .HasColumnType("text")
+                        .HasColumnName("locale");
 
-                b.Navigation("SlowmodeIgnoredRoles");
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("text")
+                        .HasColumnName("muterolename");
 
-                b.Navigation("SlowmodeIgnoredUsers");
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("boolean")
+                        .HasColumnName("notifystreamoffline");
 
-                b.Navigation("StreamRole");
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("text")
+                        .HasColumnName("permissionrole");
 
-                b.Navigation("UnbanTimer");
+                    b.Property<string>("Prefix")
+                        .HasColumnType("text")
+                        .HasColumnName("prefix");
 
-                b.Navigation("UnmuteTimers");
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("boolean")
+                        .HasColumnName("stickyroles");
 
-                b.Navigation("UnroleTimer");
+                    b.Property<string>("TimeZoneId")
+                        .HasColumnType("text")
+                        .HasColumnName("timezoneid");
 
-                b.Navigation("VcRoleInfos");
+                    b.Property<bool>("VerboseErrors")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(true)
+                        .HasColumnName("verboseerrors");
 
-                b.Navigation("XpSettings");
-            });
+                    b.Property<bool>("VerbosePermissions")
+                        .HasColumnType("boolean")
+                        .HasColumnName("verbosepermissions");
+
+                    b.Property<int>("WarnExpireAction")
+                        .HasColumnType("integer")
+                        .HasColumnName("warnexpireaction");
+
+                    b.Property<int>("WarnExpireHours")
+                        .HasColumnType("integer")
+                        .HasColumnName("warnexpirehours");
+
+                    b.Property<bool>("WarningsInitialized")
+                        .HasColumnType("boolean")
+                        .HasColumnName("warningsinitialized");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildconfigs");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_guildconfigs_guildid");
+
+                    b.HasIndex("WarnExpireHours")
+                        .HasDatabaseName("ix_guildconfigs_warnexpirehours");
+
+                    b.ToTable("guildconfigs", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
+                {
+                    b.Property<decimal>("GuildId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.HasKey("GuildId")
+                        .HasName("pk_honeypotchannels");
+
+                    b.ToTable("honeypotchannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<decimal>("LogItemId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logitemid");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("integer")
+                        .HasColumnName("logsettingid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_ignoredlogchannels");
+
+                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
+                        .IsUnique()
+                        .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");
+
+                    b.ToTable("ignoredlogchannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_imageonlychannels");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_imageonlychannels_channelid");
+
+                    b.ToTable("imageonlychannels", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Navigation("LogIgnores");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal?>("ChannelCreatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelcreatedid");
+
+                    b.Property<decimal?>("ChannelDestroyedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channeldestroyedid");
+
+                    b.Property<decimal?>("ChannelUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelupdatedid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal?>("LogOtherId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logotherid");
+
+                    b.Property<decimal?>("LogUserPresenceId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("loguserpresenceid");
+
+                    b.Property<decimal?>("LogVoicePresenceId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logvoicepresenceid");
+
+                    b.Property<decimal?>("LogVoicePresenceTTSId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logvoicepresencettsid");
+
+                    b.Property<decimal?>("LogWarnsId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logwarnsid");
+
+                    b.Property<decimal?>("MessageDeletedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messagedeletedid");
+
+                    b.Property<decimal?>("MessageUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageupdatedid");
+
+                    b.Property<decimal?>("ThreadCreatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("threadcreatedid");
+
+                    b.Property<decimal?>("ThreadDeletedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("threaddeletedid");
+
+                    b.Property<decimal?>("UserBannedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userbannedid");
+
+                    b.Property<decimal?>("UserJoinedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userjoinedid");
+
+                    b.Property<decimal?>("UserLeftId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userleftid");
+
+                    b.Property<decimal?>("UserMutedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("usermutedid");
+
+                    b.Property<decimal?>("UserUnbannedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userunbannedid");
+
+                    b.Property<decimal?>("UserUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userupdatedid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_logsettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_logsettings_guildid");
+
+                    b.ToTable("logsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodisconnect");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autoplay");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal?>("MusicChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("musicchannelid");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("integer")
+                        .HasColumnName("playerrepeat");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("integer")
+                        .HasColumnName("qualitypreset");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(100)
+                        .HasColumnName("volume");
+
+                    b.HasKey("Id")
+                        .HasName("pk_musicplayersettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_musicplayersettings_guildid");
+
+                    b.ToTable("musicplayersettings", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Navigation("Songs");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Author")
+                        .HasColumnType("text")
+                        .HasColumnName("author");
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.HasKey("Id")
+                        .HasName("pk_musicplaylists");
+
+                    b.ToTable("musicplaylists", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_muteduserid");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_muteduserid_guildconfigid");
+
+                    b.ToTable("muteduserid", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Color")
+                        .HasColumnType("bigint")
+                        .HasColumnName("color");
+
+                    b.Property<decimal>("OwnerId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("ownerid");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("integer")
+                        .HasColumnName("position");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("character varying(256)")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_ncpixel");
+
+                    b.HasAlternateKey("Position")
+                        .HasName("ak_ncpixel_position");
+
+                    b.HasIndex("OwnerId")
+                        .HasDatabaseName("ix_ncpixel_ownerid");
+
+                    b.ToTable("ncpixel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .IsRequired()
+                        .HasMaxLength(10000)
+                        .HasColumnType("character varying(10000)")
+                        .HasColumnName("message");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_notify");
+
+                    b.HasAlternateKey("GuildId", "Type")
+                        .HasName("ak_notify_guildid_type");
+
+                    b.ToTable("notify", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<decimal>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("integer")
+                        .HasColumnName("amountcents");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("lastcharge");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("text")
+                        .HasColumnName("uniqueplatformuserid");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("validthru");
+
+                    b.HasKey("UserId")
+                        .HasName("pk_patrons");
+
+                    b.HasIndex("UniquePlatformUserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_patrons_uniqueplatformuserid");
+
+                    b.ToTable("patrons", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Index")
+                        .HasColumnType("integer")
+                        .HasColumnName("index");
+
+                    b.Property<bool>("IsCustomCommand")
+                        .HasColumnType("boolean")
+                        .HasColumnName("iscustomcommand");
+
+                    b.Property<int>("PrimaryTarget")
+                        .HasColumnType("integer")
+                        .HasColumnName("primarytarget");
+
+                    b.Property<decimal>("PrimaryTargetId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("primarytargetid");
+
+                    b.Property<int>("SecondaryTarget")
+                        .HasColumnType("integer")
+                        .HasColumnName("secondarytarget");
+
+                    b.Property<string>("SecondaryTargetName")
+                        .HasColumnType("text")
+                        .HasColumnName("secondarytargetname");
+
+                    b.Property<bool>("State")
+                        .HasColumnType("boolean")
+                        .HasColumnName("state");
+
+                    b.HasKey("Id")
+                        .HasName("pk_permissions");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_permissions_guildconfigid");
+
+                    b.ToTable("permissions", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("text")
+                        .HasColumnName("password");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_plantedcurrency");
+
+                    b.HasIndex("ChannelId")
+                        .HasDatabaseName("ix_plantedcurrency_channelid");
+
+                    b.HasIndex("MessageId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_plantedcurrency_messageid");
+
+                    b.ToTable("plantedcurrency", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("integer")
+                        .HasColumnName("musicplaylistid");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("text")
+                        .HasColumnName("provider");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("integer")
+                        .HasColumnName("providertype");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("text")
+                        .HasColumnName("query");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("text")
+                        .HasColumnName("title");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("text")
+                        .HasColumnName("uri");
+
+                    b.HasKey("Id")
+                        .HasName("pk_playlistsong");
+
+                    b.HasIndex("MusicPlaylistId")
+                        .HasDatabaseName("ix_playlistsong_musicplaylistid");
+
+                    b.ToTable("playlistsong", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("authorname");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("keyword");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_quotes");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_quotes_guildid");
+
+                    b.HasIndex("Keyword")
+                        .HasDatabaseName("ix_quotes_keyword");
+
+                    b.ToTable("quotes", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("emote");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("integer")
+                        .HasColumnName("group");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelreq");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_reactionroles");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_reactionroles_guildid");
+
+                    b.HasIndex("MessageId", "Emote")
+                        .IsUnique()
+                        .HasDatabaseName("ix_reactionroles_messageid_emote");
+
+                    b.ToTable("reactionroles", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isprivate");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<decimal>("ServerId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("serverid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("when");
+
+                    b.HasKey("Id")
+                        .HasName("pk_reminders");
+
+                    b.HasIndex("When")
+                        .HasDatabaseName("ix_reminders_when");
+
+                    b.ToTable("reminders", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("interval")
+                        .HasColumnName("interval");
+
+                    b.Property<decimal?>("LastMessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("lastmessageid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("boolean")
+                        .HasColumnName("noredundant");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("interval")
+                        .HasColumnName("starttimeofday");
+
+                    b.HasKey("Id")
+                        .HasName("pk_repeaters");
+
+                    b.ToTable("repeaters", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amountrewardedthismonth");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("lastreward");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("text")
+                        .HasColumnName("platformuserid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rewardedusers");
+
+                    b.HasIndex("PlatformUserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_rewardedusers_platformuserid");
+
+                    b.ToTable("rewardedusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("text")
+                        .HasColumnName("status");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rotatingstatus");
+
+                    b.ToTable("rotatingstatus", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelreq");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("SarGroupId")
+                        .HasColumnType("integer")
+                        .HasColumnName("sargroupid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sar");
+
+                    b.HasAlternateKey("GuildId", "RoleId")
+                        .HasName("ak_sar_guildid_roleid");
+
+                    b.HasIndex("SarGroupId")
+                        .HasDatabaseName("ix_sar_sargroupid");
+
+                    b.ToTable("sar", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsEnabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isenabled");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sarautodelete");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_sarautodelete_guildid");
+
+                    b.ToTable("sarautodelete", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Navigation("Roles");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GroupNumber")
+                        .HasColumnType("integer")
+                        .HasColumnName("groupnumber");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsExclusive")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isexclusive");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("name");
+
+                    b.Property<decimal?>("RoleReq")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("rolereq");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sargroup");
+
+                    b.HasAlternateKey("GuildId", "GroupNumber")
+                        .HasName("ak_sargroup_guildid_groupnumber");
+
+                    b.ToTable("sargroup", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("text")
+                        .HasColumnName("command");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Index")
+                        .HasColumnType("integer")
+                        .HasColumnName("index");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Price")
+                        .HasColumnType("integer")
+                        .HasColumnName("price");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<string>("RoleName")
+                        .HasColumnType("text")
+                        .HasColumnName("rolename");
+
+                    b.Property<decimal?>("RoleRequirement")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("rolerequirement");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_shopentry");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_shopentry_guildconfigid");
+
+                    b.ToTable("shopentry", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("ShopEntryId")
+                        .HasColumnType("integer")
+                        .HasColumnName("shopentryid");
+
+                    b.Property<string>("Text")
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_shopentryitem");
+
+                    b.HasIndex("ShopEntryId")
+                        .HasDatabaseName("ix_shopentryitem_shopentryid");
+
+                    b.ToTable("shopentryitem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_slowmodeignoredrole");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_slowmodeignoredrole_guildconfigid");
+
+                    b.ToTable("slowmodeignoredrole", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_slowmodeignoreduser");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_slowmodeignoreduser_guildconfigid");
+
+                    b.ToTable("slowmodeignoreduser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("RoleIds")
+                        .HasColumnType("text")
+                        .HasColumnName("roleids");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_stickyroles");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_stickyroles_guildid_userid");
+
+                    b.ToTable("stickyroles", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamonlinemessages");
+
+                    b.ToTable("streamonlinemessages", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamroleblacklisteduser");
+
+                    b.HasIndex("StreamRoleSettingsId")
+                        .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid");
+
+                    b.ToTable("streamroleblacklisteduser", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Navigation("Blacklist");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("Whitelist");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AddRoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("addroleid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Enabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("enabled");
+
+                    b.Property<decimal>("FromRoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("fromroleid");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("text")
+                        .HasColumnName("keyword");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamrolesettings");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_streamrolesettings_guildconfigid");
+
+                    b.ToTable("streamrolesettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamrolewhitelisteduser");
+
+                    b.HasIndex("StreamRoleSettingsId")
+                        .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");
+
+                    b.ToTable("streamrolewhitelisteduser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("expiresat");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("boolean")
+                        .HasColumnName("remove");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_temprole");
+
+                    b.HasAlternateKey("GuildId", "UserId", "RoleId")
+                        .HasName("ak_temprole_guildid_userid_roleid");
+
+                    b.HasIndex("ExpiresAt")
+                        .HasDatabaseName("ix_temprole_expiresat");
+
+                    b.ToTable("temprole", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("integer")
+                        .HasColumnName("archiveid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isdone");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("text")
+                        .HasColumnName("todo");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_todos");
+
+                    b.HasIndex("ArchiveId")
+                        .HasDatabaseName("ix_todos_archiveid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_todos_userid");
+
+                    b.ToTable("todos", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("unbanat");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_unbantimer");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_unbantimer_guildconfigid");
+
+                    b.ToTable("unbantimer", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<DateTime>("UnmuteAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("unmuteat");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_unmutetimer");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_unmutetimer_guildconfigid");
+
+                    b.ToTable("unmutetimer", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("unbanat");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_unroletimer");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_unroletimer_guildconfigid");
+
+                    b.ToTable("unroletimer", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xp");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userxpstats");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_userxpstats_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_userxpstats_userid");
+
+                    b.HasIndex("Xp")
+                        .HasDatabaseName("ix_userxpstats_xp");
+
+                    b.HasIndex("UserId", "GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userxpstats_userid_guildid");
+
+                    b.ToTable("userxpstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<decimal>("VoiceChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("voicechannelid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_vcroleinfo");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_vcroleinfo_guildconfigid");
+
+                    b.ToTable("vcroleinfo", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("integer")
+                        .HasColumnName("affinityid");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("integer")
+                        .HasColumnName("claimerid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("integer")
+                        .HasColumnName("waifuid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuinfo");
+
+                    b.HasIndex("AffinityId")
+                        .HasDatabaseName("ix_waifuinfo_affinityid");
+
+                    b.HasIndex("ClaimerId")
+                        .HasDatabaseName("ix_waifuinfo_claimerid");
+
+                    b.HasIndex("Price")
+                        .HasDatabaseName("ix_waifuinfo_price");
+
+                    b.HasIndex("WaifuId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_waifuinfo_waifuid");
+
+                    b.ToTable("waifuinfo", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("text")
+                        .HasColumnName("itememoji");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("integer")
+                        .HasColumnName("waifuinfoid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuitem");
+
+                    b.HasIndex("WaifuInfoId")
+                        .HasDatabaseName("ix_waifuitem_waifuinfoid");
+
+                    b.ToTable("waifuitem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("integer")
+                        .HasColumnName("newid");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("integer")
+                        .HasColumnName("oldid");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("updatetype");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuupdates");
+
+                    b.HasIndex("NewId")
+                        .HasDatabaseName("ix_waifuupdates_newid");
+
+                    b.HasIndex("OldId")
+                        .HasDatabaseName("ix_waifuupdates_oldid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_waifuupdates_userid");
+
+                    b.ToTable("waifuupdates", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("boolean")
+                        .HasColumnName("forgiven");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("text")
+                        .HasColumnName("forgivenby");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("text")
+                        .HasColumnName("moderator");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("text")
+                        .HasColumnName("reason");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Weight")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(1L)
+                        .HasColumnName("weight");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warnings");
+
+                    b.HasIndex("DateAdded")
+                        .HasDatabaseName("ix_warnings_dateadded");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_warnings_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_warnings_userid");
+
+                    b.ToTable("warnings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("integer")
+                        .HasColumnName("count");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("integer")
+                        .HasColumnName("punishment");
+
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("integer")
+                        .HasColumnName("time");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warningpunishment");
+
+                    b.HasAlternateKey("GuildId", "Count")
+                        .HasName("ak_warningpunishment_guildid_count");
+
+                    b.ToTable("warningpunishment", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("integer")
+                        .HasColumnName("amount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("integer")
+                        .HasColumnName("level");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("xpsettingsid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpcurrencyreward");
+
+                    b.HasIndex("XpSettingsId")
+                        .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");
+
+                    b.ToTable("xpcurrencyreward", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("integer")
+                        .HasColumnName("level");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("boolean")
+                        .HasColumnName("remove");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("xpsettingsid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xprolereward");
+
+                    b.HasIndex("XpSettingsId", "Level")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xprolereward_xpsettingsid_level");
+
+                    b.ToTable("xprolereward", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Navigation("CurrencyRewards");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("ExclusionList");
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Navigation("RoleRewards");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<bool>("ServerExcluded")
+                        .HasColumnType("boolean")
+                        .HasColumnName("serverexcluded");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpsettings");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpsettings_guildconfigid");
+
+                    b.ToTable("xpsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isusing");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("itemkey");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpshopowneditem");
+
+                    b.HasIndex("UserId", "ItemType", "ItemKey")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");
+
+                    b.ToTable("xpshopowneditem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("integer")
+                        .HasColumnName("count");
+
+                    b.Property<int>("FishId")
+                        .HasColumnType("integer")
+                        .HasColumnName("fishid");
+
+                    b.Property<int>("MaxStars")
+                        .HasColumnType("integer")
+                        .HasColumnName("maxstars");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_fishcatch");
+
+                    b.HasAlternateKey("UserId", "FishId")
+                        .HasName("ak_fishcatch_userid_fishid");
+
+                    b.ToTable("fishcatch", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Skill")
+                        .HasColumnType("integer")
+                        .HasColumnName("skill");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userfishstats");
+
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userfishstats_userid");
+
+                    b.ToTable("userfishstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("AutoDeleteTimer")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(0)
+                        .HasColumnName("autodeletetimer");
+
+                    b.Property<decimal?>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<int>("GreetType")
+                        .HasColumnType("integer")
+                        .HasColumnName("greettype");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsEnabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isenabled");
+
+                    b.Property<string>("MessageText")
+                        .HasColumnType("text")
+                        .HasColumnName("messagetext");
+
+                    b.HasKey("Id")
+                        .HasName("pk_greetsettings");
+
+                    b.HasIndex("GuildId", "GreetType")
+                        .IsUnique()
+                        .HasDatabaseName("ix_greetsettings_guildid_greettype");
+
+                    b.ToTable("greetsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
+                {
+                    b.Property<decimal>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("numeric")
+                        .HasColumnName("amount");
+
+                    b.HasKey("UserId")
+                        .HasName("pk_rakeback");
+
+                    b.ToTable("rakeback", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Game")
+                        .HasColumnType("integer")
+                        .HasColumnName("game");
+
+                    b.Property<long>("LoseCount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("losecount");
+
+                    b.Property<long>("MaxBet")
+                        .HasColumnType("bigint")
+                        .HasColumnName("maxbet");
+
+                    b.Property<long>("MaxWin")
+                        .HasColumnType("bigint")
+                        .HasColumnName("maxwin");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("numeric")
+                        .HasColumnName("paidout");
+
+                    b.Property<decimal>("TotalBet")
+                        .HasColumnType("numeric")
+                        .HasColumnName("totalbet");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("WinCount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("wincount");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userbetstats");
+
+                    b.HasIndex("MaxWin")
+                        .HasDatabaseName("ix_userbetstats_maxwin");
+
+                    b.HasIndex("UserId", "Game")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userbetstats_userid_game");
+
+                    b.ToTable("userbetstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithOne("AntiAltSetting")
+                        .HasForeignKey("EllieBot.Db.Models.AntiAltSetting", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_antialtsetting_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithOne("AntiRaidSetting")
+                        .HasForeignKey("EllieBot.Db.Models.AntiRaidSetting", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_antiraidsetting_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
+                        .WithMany("IgnoredChannels")
+                        .HasForeignKey("AntiSpamSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithOne("AntiSpamSetting")
+                        .HasForeignKey("EllieBot.Db.Models.AntiSpamSetting", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_antispamsetting_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel")
+                        .WithMany("Users")
+                        .HasForeignKey("ChannelId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid");
+
+                    b.Navigation("Channel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Applicants")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_clubapplicants_clubs_clubid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_clubapplicants_discorduser_userid");
+
+                    b.Navigation("Club");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Bans")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_clubbans_clubs_clubid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_clubbans_discorduser_userid");
+
+                    b.Navigation("Club");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId")
+                        .OnDelete(DeleteBehavior.SetNull)
+                        .HasConstraintName("fk_clubs_discorduser_ownerid");
+
+                    b.Navigation("Owner");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("CommandAliases")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_commandalias_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("CommandCooldowns")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_commandcooldown_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("DelMsgOnCmdChannels")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_delmsgoncmdchannel_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Members")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.NoAction)
+                        .HasConstraintName("fk_discorduser_clubs_clubid");
+
+                    b.Navigation("Club");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
+                        .WithMany("ExclusionList")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_excludeditem_xpsettings_xpsettingsid");
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("FeedSubs")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_feedsub_guildconfigs_guildconfigid");
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilterInvitesChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_filterchannelid_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilterLinksChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_filterlinkschannelid_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilterWordsChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_filterwordschannelid_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilteredWords")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_filteredword_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FollowedStreams")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_followedstream_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("GenerateCurrencyChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_gcchannelid_guildconfigs_guildconfigid");
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
+                        .WithMany("Participants")
+                        .HasForeignKey("GiveawayId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
+                        .WithMany("LogIgnores")
+                        .HasForeignKey("LogSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");
+
+                    b.Navigation("LogSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("MutedUsers")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_muteduserid_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("Permissions")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
+                        .WithMany("Songs")
+                        .HasForeignKey("MusicPlaylistId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
+                        .WithMany("Roles")
+                        .HasForeignKey("SarGroupId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_sar_sargroup_sargroupid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("ShopEntries")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_shopentry_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ShopEntry", null)
+                        .WithMany("Items")
+                        .HasForeignKey("ShopEntryId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_shopentryitem_shopentry_shopentryid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("SlowmodeIgnoredRoles")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_slowmodeignoredrole_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("SlowmodeIgnoredUsers")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_slowmodeignoreduser_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
+                        .WithMany("Blacklist")
+                        .HasForeignKey("StreamRoleSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~");
+
+                    b.Navigation("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithOne("StreamRole")
+                        .HasForeignKey("EllieBot.Db.Models.StreamRoleSettings", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_streamrolesettings_guildconfigs_guildconfigid");
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
+                        .WithMany("Whitelist")
+                        .HasForeignKey("StreamRoleSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~");
+
+                    b.Navigation("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null)
+                        .WithMany("Items")
+                        .HasForeignKey("ArchiveId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_todos_todosarchive_archiveid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("UnbanTimer")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_unbantimer_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("UnmuteTimers")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_unmutetimer_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("UnroleTimer")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_unroletimer_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("VcRoleInfos")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_vcroleinfo_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
+                        .WithMany()
+                        .HasForeignKey("AffinityId")
+                        .HasConstraintName("fk_waifuinfo_discorduser_affinityid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
+                        .WithMany()
+                        .HasForeignKey("ClaimerId")
+                        .HasConstraintName("fk_waifuinfo_discorduser_claimerid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_waifuinfo_discorduser_waifuid");
+
+                    b.Navigation("Affinity");
+
+                    b.Navigation("Claimer");
+
+                    b.Navigation("Waifu");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
+                        .WithMany("Items")
+                        .HasForeignKey("WaifuInfoId")
+                        .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");
+
+                    b.Navigation("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
+                        .WithMany()
+                        .HasForeignKey("NewId")
+                        .HasConstraintName("fk_waifuupdates_discorduser_newid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
+                        .WithMany()
+                        .HasForeignKey("OldId")
+                        .HasConstraintName("fk_waifuupdates_discorduser_oldid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_waifuupdates_discorduser_userid");
+
+                    b.Navigation("New");
+
+                    b.Navigation("Old");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
+                        .WithMany("CurrencyRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
+                        .WithMany("RoleRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithOne("XpSettings")
+                        .HasForeignKey("EllieBot.Db.Models.XpSettings", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xpsettings_guildconfigs_guildconfigid");
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.Navigation("IgnoredChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
+                {
+                    b.Navigation("Users");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
+                {
+                    b.Navigation("Applicants");
+
+                    b.Navigation("Bans");
+
+                    b.Navigation("Members");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
+                {
+                    b.Navigation("Participants");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
+                {
+                    b.Navigation("AntiAltSetting");
+
+                    b.Navigation("AntiRaidSetting");
+
+                    b.Navigation("AntiSpamSetting");
+
+                    b.Navigation("CommandAliases");
+
+                    b.Navigation("CommandCooldowns");
+
+                    b.Navigation("DelMsgOnCmdChannels");
+
+                    b.Navigation("FeedSubs");
+
+                    b.Navigation("FilterInvitesChannelIds");
+
+                    b.Navigation("FilterLinksChannelIds");
+
+                    b.Navigation("FilterWordsChannelIds");
+
+                    b.Navigation("FilteredWords");
+
+                    b.Navigation("FollowedStreams");
+
+                    b.Navigation("GenerateCurrencyChannelIds");
+
+                    b.Navigation("MutedUsers");
+
+                    b.Navigation("Permissions");
+
+                    b.Navigation("ShopEntries");
+
+                    b.Navigation("SlowmodeIgnoredRoles");
+
+                    b.Navigation("SlowmodeIgnoredUsers");
+
+                    b.Navigation("StreamRole");
+
+                    b.Navigation("UnbanTimer");
+
+                    b.Navigation("UnmuteTimers");
+
+                    b.Navigation("UnroleTimer");
+
+                    b.Navigation("VcRoleInfos");
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Navigation("LogIgnores");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Navigation("Songs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Navigation("Roles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.Navigation("Blacklist");
+
+                    b.Navigation("Whitelist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.Navigation("CurrencyRewards");
+
+                    b.Navigation("ExclusionList");
+
+                    b.Navigation("RoleRewards");
+                });
 #pragma warning restore 612, 618
         }
     }
diff --git a/src/EllieBot/Migrations/Sqlite/20250123191300_init.Designer.cs b/src/EllieBot/Migrations/Sqlite/20250124023317_init.Designer.cs
similarity index 99%
rename from src/EllieBot/Migrations/Sqlite/20250123191300_init.Designer.cs
rename to src/EllieBot/Migrations/Sqlite/20250124023317_init.Designer.cs
index 271efff..85ad68c 100644
--- a/src/EllieBot/Migrations/Sqlite/20250123191300_init.Designer.cs
+++ b/src/EllieBot/Migrations/Sqlite/20250124023317_init.Designer.cs
@@ -11,7 +11,7 @@ using EllieBot.Db;
 namespace EllieBot.Migrations.Sqlite
 {
     [DbContext(typeof(SqliteContext))]
-    [Migration("20250123191300_init")]
+    [Migration("20250124023317_init")]
     partial class init
     {
         /// <inheritdoc />
@@ -983,6 +983,9 @@ namespace EllieBot.Migrations.Sqlite
                 b.Property<string>("AutoAssignRoleIds")
                     .HasColumnType("TEXT");
 
+                b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                    .HasColumnType("INTEGER");
+
                 b.Property<bool>("CleverbotEnabled")
                     .HasColumnType("INTEGER");
 
@@ -998,6 +1001,9 @@ namespace EllieBot.Migrations.Sqlite
                 b.Property<bool>("DisableGlobalExpressions")
                     .HasColumnType("INTEGER");
 
+                b.Property<bool>("ExclusiveSelfAssignedRoles")
+                    .HasColumnType("INTEGER");
+
                 b.Property<bool>("FilterInvites")
                     .HasColumnType("INTEGER");
 
@@ -1031,9 +1037,6 @@ namespace EllieBot.Migrations.Sqlite
                 b.Property<bool>("StickyRoles")
                     .HasColumnType("INTEGER");
 
-                b.Property<string>("TestMigration")
-                    .HasColumnType("TEXT");
-
                 b.Property<string>("TimeZoneId")
                     .HasColumnType("TEXT");
 
diff --git a/src/EllieBot/Migrations/Sqlite/20250123191300_init.cs b/src/EllieBot/Migrations/Sqlite/20250124023317_init.cs
similarity index 99%
rename from src/EllieBot/Migrations/Sqlite/20250123191300_init.cs
rename to src/EllieBot/Migrations/Sqlite/20250124023317_init.cs
index 329d7bf..99d865f 100644
--- a/src/EllieBot/Migrations/Sqlite/20250123191300_init.cs
+++ b/src/EllieBot/Migrations/Sqlite/20250124023317_init.cs
@@ -296,7 +296,8 @@ namespace EllieBot.Migrations.Sqlite
                     Prefix = table.Column<string>(type: "TEXT", nullable: true),
                     DeleteMessageOnCommand = table.Column<bool>(type: "INTEGER", nullable: false),
                     AutoAssignRoleIds = table.Column<string>(type: "TEXT", nullable: true),
-                    TestMigration = table.Column<string>(type: "TEXT", nullable: true),
+                    ExclusiveSelfAssignedRoles = table.Column<bool>(type: "INTEGER", nullable: false),
+                    AutoDeleteSelfAssignedRoleMessages = table.Column<bool>(type: "INTEGER", nullable: false),
                     VerbosePermissions = table.Column<bool>(type: "INTEGER", nullable: false),
                     PermissionRole = table.Column<string>(type: "TEXT", nullable: true),
                     FilterInvites = table.Column<bool>(type: "INTEGER", nullable: false),
diff --git a/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs b/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs
index bd2e74f..70150e4 100644
--- a/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs
@@ -1,9 +1,9 @@
 // <auto-generated />
 using System;
+using EllieBot.Db;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.EntityFrameworkCore.Infrastructure;
 using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-using EllieBot.Db;
 
 #nullable disable
 
@@ -18,3194 +18,3197 @@ namespace EllieBot.Migrations.Sqlite
             modelBuilder.HasAnnotation("ProductVersion", "9.0.1");
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Action")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("ActionDurationMinutes")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<TimeSpan>("MinAge")
-                    .HasColumnType("TEXT");
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildConfigId")
-                    .IsUnique();
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
 
-                b.ToTable("AntiAltSetting");
-            });
+                    b.ToTable("AntiAltSetting");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Action")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("PunishDuration")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("UserThreshold")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildConfigId")
-                    .IsUnique();
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
 
-                b.ToTable("AntiRaidSetting");
-            });
+                    b.ToTable("AntiRaidSetting");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int?>("AntiSpamSettingId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("AntiSpamSettingId");
+                    b.HasIndex("AntiSpamSettingId");
 
-                b.ToTable("AntiSpamIgnore");
-            });
+                    b.ToTable("AntiSpamIgnore");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Action")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("MessageThreshold")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("MuteTime")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildConfigId")
-                    .IsUnique();
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
 
-                b.ToTable("AntiSpamSetting");
-            });
+                    b.ToTable("AntiSpamSetting");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("TodosArchive");
-            });
+                    b.ToTable("TodosArchive");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("ChannelName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("ChannelName")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("CommandText")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("CommandText")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("GuildName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("GuildName")
+                        .HasColumnType("TEXT");
 
-                b.Property<int>("Interval")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Interval")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("VoiceChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("VoiceChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("VoiceChannelName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("AutoCommands");
-            });
+                    b.ToTable("AutoCommands");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("AutoPublishChannel");
-            });
+                    b.ToTable("AutoPublishChannel");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("AutoDelete")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("AutoDelete")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("ChannelId")
-                    .IsUnique();
+                    b.HasIndex("ChannelId")
+                        .IsUnique();
 
-                b.HasIndex("GuildId");
+                    b.HasIndex("GuildId");
 
-                b.ToTable("AutoTranslateChannels");
-            });
+                    b.ToTable("AutoTranslateChannels");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Source")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Source")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Target")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Target")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasAlternateKey("ChannelId", "UserId");
+                    b.HasAlternateKey("ChannelId", "UserId");
 
-                b.ToTable("AutoTranslateUsers");
-            });
+                    b.ToTable("AutoTranslateUsers");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int?>("PruneDays")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("PruneDays")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Text")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Text")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("BanTemplates");
-            });
+                    b.ToTable("BanTemplates");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<long>("Balance")
-                    .HasColumnType("INTEGER");
+                    b.Property<long>("Balance")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("UserId")
-                    .IsUnique();
+                    b.HasIndex("UserId")
+                        .IsUnique();
 
-                b.ToTable("BankUsers");
-            });
+                    b.ToTable("BankUsers");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("ItemId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ItemId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("Blacklist");
-            });
+                    b.ToTable("Blacklist");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("ButtonId")
-                    .IsRequired()
-                    .HasMaxLength(200)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("ButtonId")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Emote")
-                    .IsRequired()
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Emote")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
 
-                b.Property<bool>("Exclusive")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("Exclusive")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Label")
-                    .IsRequired()
-                    .HasMaxLength(50)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Label")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Position")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Position")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasAlternateKey("RoleId", "MessageId");
+                    b.HasAlternateKey("RoleId", "MessageId");
 
-                b.HasIndex("GuildId");
+                    b.HasIndex("GuildId");
 
-                b.ToTable("ButtonRole");
-            });
+                    b.ToTable("ButtonRole");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("ClubId", "UserId");
+                    b.HasKey("ClubId", "UserId");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.ToTable("ClubApplicants");
-            });
+                    b.ToTable("ClubApplicants");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("ClubId", "UserId");
+                    b.HasKey("ClubId", "UserId");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.ToTable("ClubBans");
-            });
+                    b.ToTable("ClubBans");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Description")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Description")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("ImageUrl")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Name")
-                    .HasMaxLength(20)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("TEXT");
 
-                b.Property<int?>("OwnerId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Xp")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Xp")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("Name")
-                    .IsUnique();
+                    b.HasIndex("Name")
+                        .IsUnique();
 
-                b.HasIndex("OwnerId")
-                    .IsUnique();
+                    b.HasIndex("OwnerId")
+                        .IsUnique();
 
-                b.ToTable("Clubs");
-            });
+                    b.ToTable("Clubs");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Mapping")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Mapping")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildConfigId");
+                    b.HasIndex("GuildConfigId");
 
-                b.ToTable("CommandAlias");
-            });
+                    b.ToTable("CommandAlias");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("CommandName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("CommandName")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildConfigId");
+                    b.HasIndex("GuildConfigId");
 
-                b.ToTable("CommandCooldown");
-            });
+                    b.ToTable("CommandCooldown");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<long>("Amount")
-                    .HasColumnType("INTEGER");
+                    b.Property<long>("Amount")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Extra")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Note")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Note")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("OtherId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValueSql("NULL");
+                    b.Property<ulong?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValueSql("NULL");
 
-                b.Property<string>("Type")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.ToTable("CurrencyTransactions");
-            });
+                    b.ToTable("CurrencyTransactions");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("State")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("State")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildConfigId");
+                    b.HasIndex("GuildConfigId");
 
-                b.ToTable("DelMsgOnCmdChannel");
-            });
+                    b.ToTable("DelMsgOnCmdChannel");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Command")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Command")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("Perm")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("Perm")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId", "Command")
-                    .IsUnique();
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique();
 
-                b.ToTable("DiscordPermOverrides");
-            });
+                    b.ToTable("DiscordPermOverrides");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("AvatarId")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("TEXT");
 
-                b.Property<int?>("ClubId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<long>("CurrencyAmount")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0L);
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<bool>("IsClubAdmin")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(false);
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
 
-                b.Property<int>("NotifyOnLevelUp")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0);
+                    b.Property<int>("NotifyOnLevelUp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0);
 
-                b.Property<long>("TotalXp")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0L);
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasAlternateKey("UserId");
+                    b.HasAlternateKey("UserId");
 
-                b.HasIndex("ClubId");
+                    b.HasIndex("ClubId");
 
-                b.HasIndex("CurrencyAmount");
+                    b.HasIndex("CurrencyAmount");
 
-                b.HasIndex("TotalXp");
+                    b.HasIndex("TotalXp");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.HasIndex("Username");
+                    b.HasIndex("Username");
 
-                b.ToTable("DiscordUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("ItemId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("XpSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("XpSettingsId");
-
-                b.ToTable("ExcludedItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Url")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildConfigId", "Url");
-
-                b.ToTable("FeedSub");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("FilterChannelId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("FilterLinksChannelId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("FilterWordsChannelId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Word")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("FilteredWord");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
-
-                b.ToTable("FlagTranslateChannel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("FollowedStream");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("GCChannelId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("Bet")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Feature")
-                    .HasColumnType("TEXT");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("Feature")
-                    .IsUnique();
-
-                b.ToTable("GamblingStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("EndsAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("GiveawayModel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GiveawayId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GiveawayId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("GiveawayUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ErrorColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("OkColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PendingColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("GuildColors");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("AutoAssignRoleIds")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("CleverbotEnabled")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("DeleteMessageOnCommand")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("DeleteStreamOnlineMessage")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("DisableGlobalExpressions")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterInvites")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterLinks")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterWords")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("GameVoiceChannel")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Locale")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("MuteRoleName")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("NotifyStreamOffline")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("PermissionRole")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Prefix")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("StickyRoles")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("TestMigration")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("TimeZoneId")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("VerboseErrors")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(true);
-
-                b.Property<bool>("VerbosePermissions")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("WarnExpireAction")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("WarnExpireHours")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("WarningsInitialized")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.HasIndex("WarnExpireHours");
-
-                b.ToTable("GuildConfigs");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
-            {
-                b.Property<ulong>("GuildId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("GuildId");
-
-                b.ToTable("HoneyPotChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("LogItemId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LogSettingId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("LogSettingId", "LogItemId", "ItemType")
-                    .IsUnique();
-
-                b.ToTable("IgnoredLogChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ChannelId")
-                    .IsUnique();
-
-                b.ToTable("ImageOnlyChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelCreatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelDestroyedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogOtherId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogUserPresenceId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogVoicePresenceId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogVoicePresenceTTSId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogWarnsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MessageDeletedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MessageUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ThreadCreatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ThreadDeletedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserBannedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserJoinedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserLeftId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserMutedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserUnbannedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("LogSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("AutoDisconnect")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("AutoPlay")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MusicChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("PlayerRepeat")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("QualityPreset")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Volume")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(100);
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("MusicPlayerSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Author")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.ToTable("MusicPlaylists");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("MutedUserId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<uint>("Color")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("OwnerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Position")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasMaxLength(256)
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("Position");
-
-                b.HasIndex("OwnerId");
-
-                b.ToTable("NCPixel");
-            });
+                    b.ToTable("DiscordUser");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("AllowTarget")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("AutoDeleteTrigger")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("ContainsAnywhere")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<bool>("DmResponse")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Reactions")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Reactions")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Response")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Response")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("Expressions");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .IsRequired()
-                    .HasMaxLength(10000)
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "Type");
-
-                b.ToTable("Notify");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
-            {
-                b.Property<ulong>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("AmountCents")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("LastCharge")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("UniquePlatformUserId")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime>("ValidThru")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("UserId");
-
-                b.HasIndex("UniquePlatformUserId")
-                    .IsUnique();
-
-                b.ToTable("Patrons");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Index")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsCustomCommand")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("PrimaryTarget")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("PrimaryTargetId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("SecondaryTarget")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("SecondaryTargetName")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("State")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("Permissions");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Amount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Password")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ChannelId");
-
-                b.HasIndex("MessageId")
-                    .IsUnique();
-
-                b.ToTable("PlantedCurrency");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("MusicPlaylistId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Provider")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ProviderType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Query")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Title")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Uri")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("MusicPlaylistId");
-
-                b.ToTable("PlaylistSong");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("AuthorName")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Keyword")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("Keyword");
-
-                b.ToTable("Quotes");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Emote")
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Group")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("MessageId", "Emote")
-                    .IsUnique();
-
-                b.ToTable("ReactionRoles");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsPrivate")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("ServerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("When")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("When");
-
-                b.ToTable("Reminders");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan>("Interval")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("LastMessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("NoRedundant")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan?>("StartTimeOfDay")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.ToTable("Repeaters");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("AmountRewardedThisMonth")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime>("LastReward")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PlatformUserId")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("PlatformUserId")
-                    .IsUnique();
-
-                b.ToTable("RewardedUsers");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Status")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("RotatingStatus");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("SarGroupId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "RoleId");
-
-                b.HasIndex("SarGroupId");
-
-                b.ToTable("Sar");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsEnabled")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("SarAutoDelete");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GroupNumber")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsExclusive")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("RoleReq")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "GroupNumber");
-
-                b.ToTable("SarGroup");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Command")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Index")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("RoleName")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("RoleRequirement")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("ShopEntry");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("ShopEntryId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Text")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ShopEntryId");
-
-                b.ToTable("ShopEntryItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("SlowmodeIgnoredRole");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("SlowmodeIgnoredUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("RoleIds")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("StickyRoles");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("StreamOnlineMessages");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("StreamRoleSettingsId");
-
-                b.ToTable("StreamRoleBlacklistedUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AddRoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("Enabled")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("FromRoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Keyword")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId")
-                    .IsUnique();
-
-                b.ToTable("StreamRoleSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("StreamRoleSettingsId");
-
-                b.ToTable("StreamRoleWhitelistedUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("ExpiresAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "UserId", "RoleId");
-
-                b.HasIndex("ExpiresAt");
-
-                b.ToTable("TempRole");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("ArchiveId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsDone")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Todo")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ArchiveId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("Todos");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnbanAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("UnbanTimer");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnmuteAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("UnmuteTimer");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnbanAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("UnroleTimer");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Xp")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("UserId");
-
-                b.HasIndex("Xp");
-
-                b.HasIndex("UserId", "GuildId")
-                    .IsUnique();
-
-                b.ToTable("UserXpStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("VoiceChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId");
-
-                b.ToTable("VcRoleInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("AffinityId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("ClaimerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<long>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("WaifuId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("AffinityId");
-
-                b.HasIndex("ClaimerId");
-
-                b.HasIndex("Price");
-
-                b.HasIndex("WaifuId")
-                    .IsUnique();
-
-                b.ToTable("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("ItemEmoji")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("WaifuInfoId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("WaifuInfoId");
-
-                b.ToTable("WaifuItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("NewId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("OldId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("UpdateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("NewId");
-
-                b.HasIndex("OldId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("WaifuUpdates");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("Forgiven")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ForgivenBy")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Moderator")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Reason")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Weight")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(1L);
-
-                b.HasKey("Id");
-
-                b.HasIndex("DateAdded");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("Warnings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Count")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Punishment")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Time")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "Count");
-
-                b.ToTable("WarningPunishment");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Amount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Level")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("XpSettingsId");
-
-                b.ToTable("XpCurrencyReward");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Level")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("XpSettingsId", "Level")
-                    .IsUnique();
-
-                b.ToTable("XpRoleReward");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("ServerExcluded")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildConfigId")
-                    .IsUnique();
-
-                b.ToTable("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsUsing")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ItemKey")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("UserId", "ItemType", "ItemKey")
-                    .IsUnique();
-
-                b.ToTable("XpShopOwnedItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Count")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("FishId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("MaxStars")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("UserId", "FishId");
-
-                b.ToTable("FishCatch");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Skill")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("UserId")
-                    .IsUnique();
-
-                b.ToTable("UserFishStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("AutoDeleteTimer")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0);
-
-                b.Property<ulong?>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GreetType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsEnabled")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(false);
-
-                b.Property<string>("MessageText")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "GreetType")
-                    .IsUnique();
-
-                b.ToTable("GreetSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
-            {
-                b.Property<ulong>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("Amount")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("UserId");
-
-                b.ToTable("Rakeback");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Game")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("LoseCount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("MaxBet")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("MaxWin")
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("TEXT");
-
-                b.Property<decimal>("TotalBet")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("WinCount")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("MaxWin");
-
-                b.HasIndex("UserId", "Game")
-                    .IsUnique();
-
-                b.ToTable("UserBetStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithOne("AntiAltSetting")
-                    .HasForeignKey("EllieBot.Db.Models.AntiAltSetting", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithOne("AntiRaidSetting")
-                    .HasForeignKey("EllieBot.Db.Models.AntiRaidSetting", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
-                    .WithMany("IgnoredChannels")
-                    .HasForeignKey("AntiSpamSettingId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithOne("AntiSpamSetting")
-                    .HasForeignKey("EllieBot.Db.Models.AntiSpamSetting", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel")
-                    .WithMany("Users")
-                    .HasForeignKey("ChannelId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("Channel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Applicants")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("Club");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Bans")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("Club");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId")
-                    .OnDelete(DeleteBehavior.SetNull);
-
-                b.Navigation("Owner");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("CommandAliases")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("CommandCooldowns")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("DelMsgOnCmdChannels")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Members")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.NoAction);
-
-                b.Navigation("Club");
-            });
+                    b.ToTable("Expressions");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
-                    .WithMany("ExclusionList")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade);
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("XpSettings");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("ItemId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("XpSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("XpSettingsId");
+
+                    b.ToTable("ExcludedItem");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithMany("FeedSubs")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("GuildConfig");
-            });
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Url")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildConfigId", "Url");
+
+                    b.ToTable("FeedSub");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilterInvitesChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("FilterChannelId");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilterLinksChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("FilterLinksChannelId");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilterWordsChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("FilterWordsChannelId");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FilteredWords")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Word")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("FilteredWord");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
+
+                    b.ToTable("FlagTranslateChannel");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("FollowedStreams")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("FollowedStream");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithMany("GenerateCurrencyChannelIds")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("GuildConfig");
-            });
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
-                    .WithMany("Participants")
-                    .HasForeignKey("GiveawayId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
-                    .WithMany("LogIgnores")
-                    .HasForeignKey("LogSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("LogSetting");
-            });
+                    b.HasKey("Id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("MutedUsers")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.HasIndex("GuildConfigId");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("Permissions")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.ToTable("GCChannelId");
+                });
 
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
-                    .WithMany("Songs")
-                    .HasForeignKey("MusicPlaylistId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.SarGroup", null)
-                    .WithMany("Roles")
-                    .HasForeignKey("SarGroupId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
+                    b.Property<decimal>("Bet")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("ShopEntries")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ShopEntry", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ShopEntryId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.Property<string>("Feature")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("SlowmodeIgnoredRoles")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("SlowmodeIgnoredUsers")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.HasKey("Id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
-                    .WithMany("Blacklist")
-                    .HasForeignKey("StreamRoleSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.HasIndex("Feature")
+                        .IsUnique();
 
-                b.Navigation("StreamRoleSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithOne("StreamRole")
-                    .HasForeignKey("EllieBot.Db.Models.StreamRoleSettings", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("GuildConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
-                    .WithMany("Whitelist")
-                    .HasForeignKey("StreamRoleSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("StreamRoleSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ArchiveId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("UnbanTimer")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("UnmuteTimers")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("UnroleTimer")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("VcRoleInfos")
-                    .HasForeignKey("GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
-                    .WithMany()
-                    .HasForeignKey("AffinityId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
-                    .WithMany()
-                    .HasForeignKey("ClaimerId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("Affinity");
-
-                b.Navigation("Claimer");
-
-                b.Navigation("Waifu");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
-                    .WithMany("Items")
-                    .HasForeignKey("WaifuInfoId");
-
-                b.Navigation("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
-                    .WithMany()
-                    .HasForeignKey("NewId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
-                    .WithMany()
-                    .HasForeignKey("OldId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("New");
-
-                b.Navigation("Old");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
-                    .WithMany("CurrencyRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
-                    .WithMany("RoleRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
-                    .WithOne("XpSettings")
-                    .HasForeignKey("EllieBot.Db.Models.XpSettings", "GuildConfigId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("GuildConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Navigation("IgnoredChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Navigation("Items");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Navigation("Users");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Navigation("Applicants");
-
-                b.Navigation("Bans");
-
-                b.Navigation("Members");
-            });
+                    b.ToTable("GamblingStats");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Navigation("Participants");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("GiveawayModel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GiveawayId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("GiveawayUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ErrorColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("OkColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PendingColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("GuildColors");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Navigation("AntiAltSetting");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("AntiRaidSetting");
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("AntiSpamSetting");
+                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("CommandAliases");
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("CommandCooldowns");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("DelMsgOnCmdChannels");
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FeedSubs");
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilterInvitesChannelIds");
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilterLinksChannelIds");
+                    b.Property<bool>("ExclusiveSelfAssignedRoles")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilterWordsChannelIds");
+                    b.Property<bool>("FilterInvites")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilteredWords");
+                    b.Property<bool>("FilterLinks")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FollowedStreams");
+                    b.Property<bool>("FilterWords")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("GenerateCurrencyChannelIds");
+                    b.Property<ulong?>("GameVoiceChannel")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("MutedUsers");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("Permissions");
+                    b.Property<string>("Locale")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("ShopEntries");
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("SlowmodeIgnoredRoles");
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("SlowmodeIgnoredUsers");
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("StreamRole");
+                    b.Property<string>("Prefix")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("UnbanTimer");
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("UnmuteTimers");
+                    b.Property<string>("TimeZoneId")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("UnroleTimer");
+                    b.Property<bool>("VerboseErrors")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(true);
 
-                b.Navigation("VcRoleInfos");
+                    b.Property<bool>("VerbosePermissions")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("XpSettings");
-            });
+                    b.Property<int>("WarnExpireAction")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("WarnExpireHours")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("WarningsInitialized")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.HasIndex("WarnExpireHours");
+
+                    b.ToTable("GuildConfigs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
+                {
+                    b.Property<ulong>("GuildId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("GuildId");
+
+                    b.ToTable("HoneyPotChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("LogItemId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
+                        .IsUnique();
+
+                    b.ToTable("IgnoredLogChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique();
+
+                    b.ToTable("ImageOnlyChannels");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Navigation("LogIgnores");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelCreatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelDestroyedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogOtherId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogUserPresenceId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogVoicePresenceId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogVoicePresenceTTSId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogWarnsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MessageDeletedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MessageUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ThreadCreatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ThreadDeletedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserBannedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserJoinedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserLeftId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserMutedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserUnbannedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("LogSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MusicChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(100);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("MusicPlayerSettings");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Navigation("Songs");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Author")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("MusicPlaylists");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("MutedUserId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<uint>("Color")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("OwnerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("Position");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("NCPixel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .IsRequired()
+                        .HasMaxLength(10000)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "Type");
+
+                    b.ToTable("Notify");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("UserId");
+
+                    b.HasIndex("UniquePlatformUserId")
+                        .IsUnique();
+
+                    b.ToTable("Patrons");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Index")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsCustomCommand")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("PrimaryTarget")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("PrimaryTargetId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("SecondaryTarget")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("SecondaryTargetName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("State")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ChannelId");
+
+                    b.HasIndex("MessageId")
+                        .IsUnique();
+
+                    b.ToTable("PlantedCurrency");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MusicPlaylistId");
+
+                    b.ToTable("PlaylistSong");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("Keyword");
+
+                    b.ToTable("Quotes");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("MessageId", "Emote")
+                        .IsUnique();
+
+                    b.ToTable("ReactionRoles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("ServerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("When");
+
+                    b.ToTable("Reminders");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("LastMessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Repeaters");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("PlatformUserId")
+                        .IsUnique();
+
+                    b.ToTable("RewardedUsers");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("RotatingStatus");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("SarGroupId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "RoleId");
+
+                    b.HasIndex("SarGroupId");
+
+                    b.ToTable("Sar");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsEnabled")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("SarAutoDelete");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Navigation("Roles");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GroupNumber")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsExclusive")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("RoleReq")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "GroupNumber");
+
+                    b.ToTable("SarGroup");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Index")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("RoleName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("RoleRequirement")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("ShopEntry");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("ShopEntryId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ShopEntryId");
+
+                    b.ToTable("ShopEntryItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("SlowmodeIgnoredRole");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("SlowmodeIgnoredUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("RoleIds")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("StickyRoles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("StreamOnlineMessages");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("StreamRoleSettingsId");
+
+                    b.ToTable("StreamRoleBlacklistedUser");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Navigation("Blacklist");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("Whitelist");
-            });
+                    b.Property<ulong>("AddRoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("Enabled")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("FromRoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
+
+                    b.ToTable("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("StreamRoleSettingsId");
+
+                    b.ToTable("StreamRoleWhitelistedUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "UserId", "RoleId");
+
+                    b.HasIndex("ExpiresAt");
+
+                    b.ToTable("TempRole");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ArchiveId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("Todos");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("UnbanTimer");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnmuteAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("UnmuteTimer");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("UnroleTimer");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.HasIndex("Xp");
+
+                    b.HasIndex("UserId", "GuildId")
+                        .IsUnique();
+
+                    b.ToTable("UserXpStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("VoiceChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("VcRoleInfo");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AffinityId");
+
+                    b.HasIndex("ClaimerId");
+
+                    b.HasIndex("Price");
+
+                    b.HasIndex("WaifuId")
+                        .IsUnique();
+
+                    b.ToTable("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("WaifuInfoId");
+
+                    b.ToTable("WaifuItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("NewId");
+
+                    b.HasIndex("OldId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("WaifuUpdates");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Weight")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(1L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("DateAdded");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("Warnings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Count")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "Count");
+
+                    b.ToTable("WarningPunishment");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("XpSettingsId");
+
+                    b.ToTable("XpCurrencyReward");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("XpSettingsId", "Level")
+                        .IsUnique();
+
+                    b.ToTable("XpRoleReward");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Navigation("CurrencyRewards");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("ExclusionList");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("RoleRewards");
-            });
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("ServerExcluded")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
+
+                    b.ToTable("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId", "ItemType", "ItemKey")
+                        .IsUnique();
+
+                    b.ToTable("XpShopOwnedItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Count")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("FishId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("MaxStars")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("UserId", "FishId");
+
+                    b.ToTable("FishCatch");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Skill")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("UserFishStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AutoDeleteTimer")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0);
+
+                    b.Property<ulong?>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GreetType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsEnabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
+
+                    b.Property<string>("MessageText")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "GreetType")
+                        .IsUnique();
+
+                    b.ToTable("GreetSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("UserId");
+
+                    b.ToTable("Rakeback");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Game")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("LoseCount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("MaxBet")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("MaxWin")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("TEXT");
+
+                    b.Property<decimal>("TotalBet")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("WinCount")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaxWin");
+
+                    b.HasIndex("UserId", "Game")
+                        .IsUnique();
+
+                    b.ToTable("UserBetStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithOne("AntiAltSetting")
+                        .HasForeignKey("EllieBot.Db.Models.AntiAltSetting", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithOne("AntiRaidSetting")
+                        .HasForeignKey("EllieBot.Db.Models.AntiRaidSetting", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
+                        .WithMany("IgnoredChannels")
+                        .HasForeignKey("AntiSpamSettingId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithOne("AntiSpamSetting")
+                        .HasForeignKey("EllieBot.Db.Models.AntiSpamSetting", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel")
+                        .WithMany("Users")
+                        .HasForeignKey("ChannelId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Channel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Applicants")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Club");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Bans")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Club");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId")
+                        .OnDelete(DeleteBehavior.SetNull);
+
+                    b.Navigation("Owner");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("CommandAliases")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("CommandCooldowns")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("DelMsgOnCmdChannels")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Members")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.NoAction);
+
+                    b.Navigation("Club");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
+                        .WithMany("ExclusionList")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade);
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("FeedSubs")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilterInvitesChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilterLinksChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilterWordsChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FilteredWords")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("FollowedStreams")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("GenerateCurrencyChannelIds")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
+                        .WithMany("Participants")
+                        .HasForeignKey("GiveawayId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
+                        .WithMany("LogIgnores")
+                        .HasForeignKey("LogSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("LogSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("MutedUsers")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("Permissions")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
+                        .WithMany("Songs")
+                        .HasForeignKey("MusicPlaylistId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
+                        .WithMany("Roles")
+                        .HasForeignKey("SarGroupId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("ShopEntries")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ShopEntry", null)
+                        .WithMany("Items")
+                        .HasForeignKey("ShopEntryId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("SlowmodeIgnoredRoles")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("SlowmodeIgnoredUsers")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
+                        .WithMany("Blacklist")
+                        .HasForeignKey("StreamRoleSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithOne("StreamRole")
+                        .HasForeignKey("EllieBot.Db.Models.StreamRoleSettings", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
+                        .WithMany("Whitelist")
+                        .HasForeignKey("StreamRoleSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null)
+                        .WithMany("Items")
+                        .HasForeignKey("ArchiveId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("UnbanTimer")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("UnmuteTimers")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("UnroleTimer")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("VcRoleInfos")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
+                        .WithMany()
+                        .HasForeignKey("AffinityId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
+                        .WithMany()
+                        .HasForeignKey("ClaimerId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Affinity");
+
+                    b.Navigation("Claimer");
+
+                    b.Navigation("Waifu");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
+                        .WithMany("Items")
+                        .HasForeignKey("WaifuInfoId");
+
+                    b.Navigation("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
+                        .WithMany()
+                        .HasForeignKey("NewId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
+                        .WithMany()
+                        .HasForeignKey("OldId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("New");
+
+                    b.Navigation("Old");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
+                        .WithMany("CurrencyRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
+                        .WithMany("RoleRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithOne("XpSettings")
+                        .HasForeignKey("EllieBot.Db.Models.XpSettings", "GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("GuildConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.Navigation("IgnoredChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
+                {
+                    b.Navigation("Users");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
+                {
+                    b.Navigation("Applicants");
+
+                    b.Navigation("Bans");
+
+                    b.Navigation("Members");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
+                {
+                    b.Navigation("Participants");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
+                {
+                    b.Navigation("AntiAltSetting");
+
+                    b.Navigation("AntiRaidSetting");
+
+                    b.Navigation("AntiSpamSetting");
+
+                    b.Navigation("CommandAliases");
+
+                    b.Navigation("CommandCooldowns");
+
+                    b.Navigation("DelMsgOnCmdChannels");
+
+                    b.Navigation("FeedSubs");
+
+                    b.Navigation("FilterInvitesChannelIds");
+
+                    b.Navigation("FilterLinksChannelIds");
+
+                    b.Navigation("FilterWordsChannelIds");
+
+                    b.Navigation("FilteredWords");
+
+                    b.Navigation("FollowedStreams");
+
+                    b.Navigation("GenerateCurrencyChannelIds");
+
+                    b.Navigation("MutedUsers");
+
+                    b.Navigation("Permissions");
+
+                    b.Navigation("ShopEntries");
+
+                    b.Navigation("SlowmodeIgnoredRoles");
+
+                    b.Navigation("SlowmodeIgnoredUsers");
+
+                    b.Navigation("StreamRole");
+
+                    b.Navigation("UnbanTimer");
+
+                    b.Navigation("UnmuteTimers");
+
+                    b.Navigation("UnroleTimer");
+
+                    b.Navigation("VcRoleInfos");
+
+                    b.Navigation("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Navigation("LogIgnores");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Navigation("Songs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Navigation("Roles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.Navigation("Blacklist");
+
+                    b.Navigation("Whitelist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.Navigation("CurrencyRewards");
+
+                    b.Navigation("ExclusionList");
+
+                    b.Navigation("RoleRewards");
+                });
 #pragma warning restore 612, 618
         }
     }
diff --git a/src/EllieBot/Modules/Searches/Searches.cs b/src/EllieBot/Modules/Searches/Searches.cs
index 5a77726..3a71da6 100644
--- a/src/EllieBot/Modules/Searches/Searches.cs
+++ b/src/EllieBot/Modules/Searches/Searches.cs
@@ -1,4 +1,3 @@
-#nullable disable
 using Microsoft.Extensions.Caching.Memory;
 using EllieBot.Modules.Searches.Common;
 using EllieBot.Modules.Searches.Services;
diff --git a/src/EllieBot/migrate.ps1 b/src/EllieBot/migrate.ps1
index eac43a4..c4cdcb9 100644
--- a/src/EllieBot/migrate.ps1
+++ b/src/EllieBot/migrate.ps1
@@ -49,6 +49,8 @@ Get-ChildItem "Migrations/Postgresql" -File | Where-Object { $_.Name -like '*_*.
     Remove-Item $_.FullName -ErrorAction SilentlyContinue
 }
 
+dotnet build
+
 # Step 4: Create new initial migrations
 Write-Output "Creating new initial migration..."
 dotnet ef migrations add $MigrationName --context SqliteContext --output-dir "Migrations/Sqlite" --no-build
diff --git a/src/EllieBot/migrate.sh b/src/EllieBot/migrate.sh
index 7f94280..10ad8bd 100644
--- a/src/EllieBot/migrate.sh
+++ b/src/EllieBot/migrate.sh
@@ -78,6 +78,8 @@ for file in "Migrations/Postgresql"/*; do
 done
 
 # Step 4: Adding new initial migration
+
+dotnet build
 echo "Creating new initial migration..."
 dotnet ef migrations add "${MIGRATION_NAME}" --context SqliteContext --output-dir "Migrations/Sqlite" --no-build
 dotnet ef migrations add "${MIGRATION_NAME}" --context PostgresqlContext --output-dir "Migrations/PostgreSql" --no-build
\ No newline at end of file