From ed7deeb99dfb1049d1da30389e75aedff802095b Mon Sep 17 00:00:00 2001
From: Toastie <toastie@toastiet0ast.com>
Date: Wed, 26 Jun 2024 21:03:14 +1200
Subject: [PATCH] Updated Migrations files

---
 .../20220409170652_mysql-init.Designer.cs     |    2 +-
 .../Mysql/20220428044612_stondel.Designer.cs  |    2 +-
 .../Mysql/20220429044757_bank.Designer.cs     |    2 +-
 .../Mysql/20220504162509_new-rero.Designer.cs |    2 +-
 ...0220614071410_patronage-system.Designer.cs |    2 +-
 ...0220623090718_stondel-db-cache.Designer.cs |    2 +-
 .../Mysql/20220703194400_logwarns.Designer.cs |    2 +-
 .../20220725155953_xpitemshop.Designer.cs     |    2 +-
 ...220727033931_linkonly-channels.Designer.cs |    2 +-
 ...855_remove-obsolete-xp-columns.Designer.cs |    2 +-
 .../Mysql/20220831142722_banprune.Designer.cs |    2 +-
 .../20220913192520_shop-role-req.Designer.cs  |    2 +-
 .../Mysql/20220916194514_autopub.Designer.cs  |    2 +-
 .../20221003175743_gambling-stats.Designer.cs |    2 +-
 ...2758_toggle-global-expressions.Designer.cs |    2 +-
 .../20221118195208_log-thread.Designer.cs     |    2 +-
 .../20221122204432_feed-text.Designer.cs      |    2 +-
 .../Mysql/20240502233216_v5.Designer.cs       |    2 +-
 ...0518221440_guidlconfig-cleanup.Designer.cs |    2 +-
 ...611180516_remove-patron-limits.Designer.cs | 3784 +++++++++++++++++
 .../20240611180516_remove-patron-limits.cs    |   44 +
 .../Mysql/MysqlContextModelSnapshot.cs        |   35 -
 .../20220428044547_stondel.Designer.cs        |    2 +-
 .../20220429044808_bank.Designer.cs           |    2 +-
 .../20220504162457_new-rero.Designer.cs       |    2 +-
 ...0220614071421_patronage-system.Designer.cs |    2 +-
 ...0220623090729_stondel-db-cache.Designer.cs |    2 +-
 .../20220703194412_logwarns.Designer.cs       |    2 +-
 .../20220725155941_xpitemshop.Designer.cs     |    2 +-
 ...220727033944_linkonly-channels.Designer.cs |    2 +-
 ...559_remove-obsolete-xp-columns.Designer.cs |    2 +-
 .../20220831142735_banprune.Designer.cs       |    2 +-
 .../20220913192529_shop-role-req.Designer.cs  |    2 +-
 .../20220916194523_autopub.Designer.cs        |    2 +-
 .../20221003175752_gambling-stats.Designer.cs |    2 +-
 ...2807_toggle-global-expressions.Designer.cs |    2 +-
 .../20221118195200_log-thread.Designer.cs     |    2 +-
 .../20221122204423_feed-text.Designer.cs      |    2 +-
 .../PostgreSql/20240502233202_v5.Designer.cs  |    2 +-
 ...0518221432_guidlconfig-cleanup.Designer.cs |    2 +-
 ...611180506_remove-patron-limits.Designer.cs | 3781 ++++++++++++++++
 .../20240611180506_remove-patron-limits.cs    |   42 +
 .../PostgreSqlContextModelSnapshot.cs         |   35 -
 .../20240518221424_guidlconfig-cleanup.cs     |    2 +-
 ...611180456_remove-patron-limits.Designer.cs | 2921 +++++++++++++
 .../20240611180456_remove-patron-limits.cs    |   42 +
 .../Sqlite/EllieSqliteContextModelSnapshot.cs |   27 -
 47 files changed, 10652 insertions(+), 135 deletions(-)
 create mode 100644 src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.Designer.cs
 create mode 100644 src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.cs
 create mode 100644 src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.Designer.cs
 create mode 100644 src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.cs
 create mode 100644 src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.Designer.cs
 create mode 100644 src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.cs

diff --git a/src/EllieBot/Migrations/Mysql/20220409170652_mysql-init.Designer.cs b/src/EllieBot/Migrations/Mysql/20220409170652_mysql-init.Designer.cs
index 4872ab6..458c74a 100644
--- a/src/EllieBot/Migrations/Mysql/20220409170652_mysql-init.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220409170652_mysql-init.Designer.cs
@@ -1418,7 +1418,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220428044612_stondel.Designer.cs b/src/EllieBot/Migrations/Mysql/20220428044612_stondel.Designer.cs
index 04ca748..3eef208 100644
--- a/src/EllieBot/Migrations/Mysql/20220428044612_stondel.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220428044612_stondel.Designer.cs
@@ -1422,7 +1422,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220429044757_bank.Designer.cs b/src/EllieBot/Migrations/Mysql/20220429044757_bank.Designer.cs
index 1a8d96b..f47381e 100644
--- a/src/EllieBot/Migrations/Mysql/20220429044757_bank.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220429044757_bank.Designer.cs
@@ -1451,7 +1451,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220504162509_new-rero.Designer.cs b/src/EllieBot/Migrations/Mysql/20220504162509_new-rero.Designer.cs
index 207ba53..ef0f91b 100644
--- a/src/EllieBot/Migrations/Mysql/20220504162509_new-rero.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220504162509_new-rero.Designer.cs
@@ -1451,7 +1451,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220614071410_patronage-system.Designer.cs b/src/EllieBot/Migrations/Mysql/20220614071410_patronage-system.Designer.cs
index 27b18ac..9ae3e46 100644
--- a/src/EllieBot/Migrations/Mysql/20220614071410_patronage-system.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220614071410_patronage-system.Designer.cs
@@ -1521,7 +1521,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220623090718_stondel-db-cache.Designer.cs b/src/EllieBot/Migrations/Mysql/20220623090718_stondel-db-cache.Designer.cs
index d0d2681..3b4cb17 100644
--- a/src/EllieBot/Migrations/Mysql/20220623090718_stondel-db-cache.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220623090718_stondel-db-cache.Designer.cs
@@ -1554,7 +1554,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220703194400_logwarns.Designer.cs b/src/EllieBot/Migrations/Mysql/20220703194400_logwarns.Designer.cs
index 4b23faf..9a940a3 100644
--- a/src/EllieBot/Migrations/Mysql/20220703194400_logwarns.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220703194400_logwarns.Designer.cs
@@ -1558,7 +1558,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220725155953_xpitemshop.Designer.cs b/src/EllieBot/Migrations/Mysql/20220725155953_xpitemshop.Designer.cs
index 28e1540..e887ab4 100644
--- a/src/EllieBot/Migrations/Mysql/20220725155953_xpitemshop.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220725155953_xpitemshop.Designer.cs
@@ -1596,7 +1596,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220727033931_linkonly-channels.Designer.cs b/src/EllieBot/Migrations/Mysql/20220727033931_linkonly-channels.Designer.cs
index 166a899..11a1e05 100644
--- a/src/EllieBot/Migrations/Mysql/20220727033931_linkonly-channels.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220727033931_linkonly-channels.Designer.cs
@@ -1600,7 +1600,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220808141855_remove-obsolete-xp-columns.Designer.cs b/src/EllieBot/Migrations/Mysql/20220808141855_remove-obsolete-xp-columns.Designer.cs
index 407b1b1..26d81e5 100644
--- a/src/EllieBot/Migrations/Mysql/20220808141855_remove-obsolete-xp-columns.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220808141855_remove-obsolete-xp-columns.Designer.cs
@@ -1588,7 +1588,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220831142722_banprune.Designer.cs b/src/EllieBot/Migrations/Mysql/20220831142722_banprune.Designer.cs
index 1afccb9..19d21c1 100644
--- a/src/EllieBot/Migrations/Mysql/20220831142722_banprune.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220831142722_banprune.Designer.cs
@@ -1592,7 +1592,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220913192520_shop-role-req.Designer.cs b/src/EllieBot/Migrations/Mysql/20220913192520_shop-role-req.Designer.cs
index bbf5c0f..031585a 100644
--- a/src/EllieBot/Migrations/Mysql/20220913192520_shop-role-req.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220913192520_shop-role-req.Designer.cs
@@ -1592,7 +1592,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20220916194514_autopub.Designer.cs b/src/EllieBot/Migrations/Mysql/20220916194514_autopub.Designer.cs
index f5dc4a0..af77b12 100644
--- a/src/EllieBot/Migrations/Mysql/20220916194514_autopub.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20220916194514_autopub.Designer.cs
@@ -1621,7 +1621,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20221003175743_gambling-stats.Designer.cs b/src/EllieBot/Migrations/Mysql/20221003175743_gambling-stats.Designer.cs
index eeb172f..c2041d8 100644
--- a/src/EllieBot/Migrations/Mysql/20221003175743_gambling-stats.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20221003175743_gambling-stats.Designer.cs
@@ -1654,7 +1654,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20221021192758_toggle-global-expressions.Designer.cs b/src/EllieBot/Migrations/Mysql/20221021192758_toggle-global-expressions.Designer.cs
index 68aacf9..a953c5f 100644
--- a/src/EllieBot/Migrations/Mysql/20221021192758_toggle-global-expressions.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20221021192758_toggle-global-expressions.Designer.cs
@@ -1658,7 +1658,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20221118195208_log-thread.Designer.cs b/src/EllieBot/Migrations/Mysql/20221118195208_log-thread.Designer.cs
index a31fad2..ba0d48a 100644
--- a/src/EllieBot/Migrations/Mysql/20221118195208_log-thread.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20221118195208_log-thread.Designer.cs
@@ -1666,7 +1666,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20221122204432_feed-text.Designer.cs b/src/EllieBot/Migrations/Mysql/20221122204432_feed-text.Designer.cs
index 63be61d..d21380b 100644
--- a/src/EllieBot/Migrations/Mysql/20221122204432_feed-text.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20221122204432_feed-text.Designer.cs
@@ -1670,7 +1670,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20240502233216_v5.Designer.cs b/src/EllieBot/Migrations/Mysql/20240502233216_v5.Designer.cs
index d20fae3..4c8220f 100644
--- a/src/EllieBot/Migrations/Mysql/20240502233216_v5.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20240502233216_v5.Designer.cs
@@ -1700,7 +1700,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20240518221440_guidlconfig-cleanup.Designer.cs b/src/EllieBot/Migrations/Mysql/20240518221440_guidlconfig-cleanup.Designer.cs
index aa5e2cb..7c2b93b 100644
--- a/src/EllieBot/Migrations/Mysql/20240518221440_guidlconfig-cleanup.Designer.cs
+++ b/src/EllieBot/Migrations/Mysql/20240518221440_guidlconfig-cleanup.Designer.cs
@@ -1670,7 +1670,7 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.Designer.cs b/src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.Designer.cs
new file mode 100644
index 0000000..fb9293b
--- /dev/null
+++ b/src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.Designer.cs
@@ -0,0 +1,3784 @@
+// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using EllieBot.Db;
+
+#nullable disable
+
+namespace EllieBot.Migrations.Mysql
+{
+    [DbContext(typeof(MysqlContext))]
+    [Migration("20240611180516_remove-patron-limits")]
+    partial class removepatronlimits
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "8.0.4")
+                .HasAnnotation("Relational:MaxIdentifierLength", 64);
+
+            MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder);
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Action")
+                        .HasColumnType("int")
+                        .HasColumnName("action");
+
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("int")
+                        .HasColumnName("actiondurationminutes");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("time(6)")
+                        .HasColumnName("minage");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antialtsetting");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antialtsetting_guildconfigid");
+
+                    b.ToTable("antialtsetting", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Action")
+                        .HasColumnType("int")
+                        .HasColumnName("action");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("int")
+                        .HasColumnName("punishduration");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("int")
+                        .HasColumnName("seconds");
+
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("int")
+                        .HasColumnName("userthreshold");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antiraidsetting");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antiraidsetting_guildconfigid");
+
+                    b.ToTable("antiraidsetting", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("int")
+                        .HasColumnName("antispamsettingid");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antispamignore");
+
+                    b.HasIndex("AntiSpamSettingId")
+                        .HasDatabaseName("ix_antispamignore_antispamsettingid");
+
+                    b.ToTable("antispamignore", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Action")
+                        .HasColumnType("int")
+                        .HasColumnName("action");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("int")
+                        .HasColumnName("messagethreshold");
+
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("int")
+                        .HasColumnName("mutetime");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antispamsetting");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antispamsetting_guildconfigid");
+
+                    b.ToTable("antispamsetting", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .HasColumnName("name");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_todosarchive");
+
+                    b.ToTable("todosarchive", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<string>("ChannelName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("channelname");
+
+                    b.Property<string>("CommandText")
+                        .HasColumnType("longtext")
+                        .HasColumnName("commandtext");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("GuildName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("guildname");
+
+                    b.Property<int>("Interval")
+                        .HasColumnType("int")
+                        .HasColumnName("interval");
+
+                    b.Property<ulong?>("VoiceChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("voicechannelid");
+
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("voicechannelname");
+
+                    b.HasKey("Id")
+                        .HasName("pk_autocommands");
+
+                    b.ToTable("autocommands", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_autopublishchannel");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autopublishchannel_guildid");
+
+                    b.ToTable("autopublishchannel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AutoDelete")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("autodelete");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslatechannels");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autotranslatechannels_channelid");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_autotranslatechannels_guildid");
+
+                    b.ToTable("autotranslatechannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("int")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Source")
+                        .HasColumnType("longtext")
+                        .HasColumnName("source");
+
+                    b.Property<string>("Target")
+                        .HasColumnType("longtext")
+                        .HasColumnName("target");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslateusers");
+
+                    b.HasAlternateKey("ChannelId", "UserId")
+                        .HasName("ak_autotranslateusers_channelid_userid");
+
+                    b.ToTable("autotranslateusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<int?>("PruneDays")
+                        .HasColumnType("int")
+                        .HasColumnName("prunedays");
+
+                    b.Property<string>("Text")
+                        .HasColumnType("longtext")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_bantemplates");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bantemplates_guildid");
+
+                    b.ToTable("bantemplates", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Balance")
+                        .HasColumnType("bigint")
+                        .HasColumnName("balance");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_bankusers");
+
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bankusers_userid");
+
+                    b.ToTable("bankusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("ItemId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("itemid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_blacklist");
+
+                    b.ToTable("blacklist", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("int")
+                        .HasColumnName("clubid");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("int")
+                        .HasColumnName("userid");
+
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubapplicants");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubapplicants_userid");
+
+                    b.ToTable("clubapplicants", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("int")
+                        .HasColumnName("clubid");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("int")
+                        .HasColumnName("userid");
+
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubbans");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubbans_userid");
+
+                    b.ToTable("clubbans", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Description")
+                        .HasColumnType("longtext")
+                        .HasColumnName("description");
+
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("longtext")
+                        .HasColumnName("imageurl");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("varchar(20)")
+                        .HasColumnName("name")
+                        .UseCollation("utf8mb4_bin");
+
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("int")
+                        .HasColumnName("ownerid");
+
+                    b.Property<int>("Xp")
+                        .HasColumnType("int")
+                        .HasColumnName("xp");
+
+                    b.HasKey("Id")
+                        .HasName("pk_clubs");
+
+                    b.HasIndex("Name")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_name");
+
+                    b.HasIndex("OwnerId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_ownerid");
+
+                    b.ToTable("clubs", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Mapping")
+                        .HasColumnType("longtext")
+                        .HasColumnName("mapping");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("longtext")
+                        .HasColumnName("trigger");
+
+                    b.HasKey("Id")
+                        .HasName("pk_commandalias");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_commandalias_guildconfigid");
+
+                    b.ToTable("commandalias", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("CommandName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("commandname");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("int")
+                        .HasColumnName("seconds");
+
+                    b.HasKey("Id")
+                        .HasName("pk_commandcooldown");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_commandcooldown_guildconfigid");
+
+                    b.ToTable("commandcooldown", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("longtext")
+                        .HasColumnName("extra");
+
+                    b.Property<string>("Note")
+                        .HasColumnType("longtext")
+                        .HasColumnName("note");
+
+                    b.Property<ulong?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("otherid")
+                        .HasDefaultValueSql("NULL");
+
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("longtext")
+                        .HasColumnName("type");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_currencytransactions");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_currencytransactions_userid");
+
+                    b.ToTable("currencytransactions", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<bool>("State")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("state");
+
+                    b.HasKey("Id")
+                        .HasName("pk_delmsgoncmdchannel");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_delmsgoncmdchannel_guildconfigid");
+
+                    b.ToTable("delmsgoncmdchannel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Command")
+                        .HasColumnType("varchar(255)")
+                        .HasColumnName("command");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<ulong>("Perm")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("perm");
+
+                    b.HasKey("Id")
+                        .HasName("pk_discordpermoverrides");
+
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique()
+                        .HasDatabaseName("ix_discordpermoverrides_guildid_command");
+
+                    b.ToTable("discordpermoverrides", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("longtext")
+                        .HasColumnName("avatarid");
+
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("int")
+                        .HasColumnName("clubid");
+
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("currencyamount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Discriminator")
+                        .HasColumnType("longtext")
+                        .HasColumnName("discriminator");
+
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isclubadmin");
+
+                    b.Property<int>("NotifyOnLevelUp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasColumnName("notifyonlevelup");
+
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("totalxp");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("longtext")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_discorduser");
+
+                    b.HasAlternateKey("UserId")
+                        .HasName("ak_discorduser_userid");
+
+                    b.HasIndex("ClubId")
+                        .HasDatabaseName("ix_discorduser_clubid");
+
+                    b.HasIndex("CurrencyAmount")
+                        .HasDatabaseName("ix_discorduser_currencyamount");
+
+                    b.HasIndex("TotalXp")
+                        .HasDatabaseName("ix_discorduser_totalxp");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_discorduser_userid");
+
+                    b.ToTable("discorduser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("ItemId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("itemid");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("int")
+                        .HasColumnName("itemtype");
+
+                    b.Property<int?>("XpSettingsId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("longtext")
+                        .HasColumnName("message");
+
+                    b.Property<string>("Url")
+                        .IsRequired()
+                        .HasColumnType("varchar(255)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Word")
+                        .HasColumnType("longtext")
+                        .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.FollowedStream", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("longtext")
+                        .HasColumnName("message");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .HasColumnName("type");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("Bet")
+                        .HasColumnType("decimal(65,30)")
+                        .HasColumnName("bet");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Feature")
+                        .HasColumnType("varchar(255)")
+                        .HasColumnName("feature");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("decimal(65,30)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("endsat");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("longtext")
+                        .HasColumnName("message");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("int")
+                        .HasColumnName("giveawayid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .HasColumnName("name");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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.GroupName", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Number")
+                        .HasColumnType("int")
+                        .HasColumnName("number");
+
+                    b.HasKey("Id")
+                        .HasName("pk_groupname");
+
+                    b.HasIndex("GuildConfigId", "Number")
+                        .IsUnique()
+                        .HasDatabaseName("ix_groupname_guildconfigid_number");
+
+                    b.ToTable("groupname", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("longtext")
+                        .HasColumnName("autoassignroleids");
+
+                    b.Property<int>("AutoDeleteByeMessagesTimer")
+                        .HasColumnType("int")
+                        .HasColumnName("autodeletebyemessagestimer");
+
+                    b.Property<int>("AutoDeleteGreetMessagesTimer")
+                        .HasColumnType("int")
+                        .HasColumnName("autodeletegreetmessagestimer");
+
+                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("autodeleteselfassignedrolemessages");
+
+                    b.Property<string>("BoostMessage")
+                        .HasColumnType("longtext")
+                        .HasColumnName("boostmessage");
+
+                    b.Property<ulong>("BoostMessageChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("boostmessagechannelid");
+
+                    b.Property<int>("BoostMessageDeleteAfter")
+                        .HasColumnType("int")
+                        .HasColumnName("boostmessagedeleteafter");
+
+                    b.Property<ulong>("ByeMessageChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("byemessagechannelid");
+
+                    b.Property<string>("ChannelByeMessageText")
+                        .HasColumnType("longtext")
+                        .HasColumnName("channelbyemessagetext");
+
+                    b.Property<string>("ChannelGreetMessageText")
+                        .HasColumnType("longtext")
+                        .HasColumnName("channelgreetmessagetext");
+
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("cleverbotenabled");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("deletemessageoncommand");
+
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("deletestreamonlinemessage");
+
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("disableglobalexpressions");
+
+                    b.Property<string>("DmGreetMessageText")
+                        .HasColumnType("longtext")
+                        .HasColumnName("dmgreetmessagetext");
+
+                    b.Property<bool>("ExclusiveSelfAssignedRoles")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("exclusiveselfassignedroles");
+
+                    b.Property<bool>("FilterInvites")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("filterinvites");
+
+                    b.Property<bool>("FilterLinks")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("filterlinks");
+
+                    b.Property<bool>("FilterWords")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("filterwords");
+
+                    b.Property<ulong?>("GameVoiceChannel")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("gamevoicechannel");
+
+                    b.Property<ulong>("GreetMessageChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("greetmessagechannelid");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Locale")
+                        .HasColumnType("longtext")
+                        .HasColumnName("locale");
+
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("muterolename");
+
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("notifystreamoffline");
+
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("longtext")
+                        .HasColumnName("permissionrole");
+
+                    b.Property<string>("Prefix")
+                        .HasColumnType("longtext")
+                        .HasColumnName("prefix");
+
+                    b.Property<bool>("SendBoostMessage")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("sendboostmessage");
+
+                    b.Property<bool>("SendChannelByeMessage")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("sendchannelbyemessage");
+
+                    b.Property<bool>("SendChannelGreetMessage")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("sendchannelgreetmessage");
+
+                    b.Property<bool>("SendDmGreetMessage")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("senddmgreetmessage");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("stickyroles");
+
+                    b.Property<string>("TimeZoneId")
+                        .HasColumnType("longtext")
+                        .HasColumnName("timezoneid");
+
+                    b.Property<bool>("VerboseErrors")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("tinyint(1)")
+                        .HasDefaultValue(true)
+                        .HasColumnName("verboseerrors");
+
+                    b.Property<bool>("VerbosePermissions")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("verbosepermissions");
+
+                    b.Property<int>("WarnExpireAction")
+                        .HasColumnType("int")
+                        .HasColumnName("warnexpireaction");
+
+                    b.Property<int>("WarnExpireHours")
+                        .HasColumnType("int")
+                        .HasColumnName("warnexpirehours");
+
+                    b.Property<bool>("WarningsInitialized")
+                        .HasColumnType("tinyint(1)")
+                        .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.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("int")
+                        .HasColumnName("itemtype");
+
+                    b.Property<ulong>("LogItemId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("logitemid");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong?>("ChannelCreatedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelcreatedid");
+
+                    b.Property<ulong?>("ChannelDestroyedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channeldestroyedid");
+
+                    b.Property<ulong?>("ChannelUpdatedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelupdatedid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<ulong?>("LogOtherId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("logotherid");
+
+                    b.Property<ulong?>("LogUserPresenceId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("loguserpresenceid");
+
+                    b.Property<ulong?>("LogVoicePresenceId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("logvoicepresenceid");
+
+                    b.Property<ulong?>("LogVoicePresenceTTSId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("logvoicepresencettsid");
+
+                    b.Property<ulong?>("LogWarnsId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("logwarnsid");
+
+                    b.Property<ulong?>("MessageDeletedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("messagedeletedid");
+
+                    b.Property<ulong?>("MessageUpdatedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("messageupdatedid");
+
+                    b.Property<ulong?>("ThreadCreatedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("threadcreatedid");
+
+                    b.Property<ulong?>("ThreadDeletedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("threaddeletedid");
+
+                    b.Property<ulong?>("UserBannedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userbannedid");
+
+                    b.Property<ulong?>("UserJoinedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userjoinedid");
+
+                    b.Property<ulong?>("UserLeftId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userleftid");
+
+                    b.Property<ulong?>("UserMutedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("usermutedid");
+
+                    b.Property<ulong?>("UserUnbannedId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userunbannedid");
+
+                    b.Property<ulong?>("UserUpdatedId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("autodisconnect");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("autoplay");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<ulong?>("MusicChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("musicchannelid");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("int")
+                        .HasColumnName("playerrepeat");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("int")
+                        .HasColumnName("qualitypreset");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Author")
+                        .HasColumnType("longtext")
+                        .HasColumnName("author");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("authorid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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.EllieExpression", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("allowtarget");
+
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("autodeletetrigger");
+
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("containsanywhere");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("dmresponse");
+
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Reactions")
+                        .HasColumnType("longtext")
+                        .HasColumnName("reactions");
+
+                    b.Property<string>("Response")
+                        .HasColumnType("longtext")
+                        .HasColumnName("response");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("longtext")
+                        .HasColumnName("trigger");
+
+                    b.HasKey("Id")
+                        .HasName("pk_expressions");
+
+                    b.ToTable("expressions", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<ulong>("UserId"));
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("int")
+                        .HasColumnName("amountcents");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("lastcharge");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("varchar(255)")
+                        .HasColumnName("uniqueplatformuserid");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("datetime(6)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Index")
+                        .HasColumnType("int")
+                        .HasColumnName("index");
+
+                    b.Property<bool>("IsCustomCommand")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("iscustomcommand");
+
+                    b.Property<int>("PrimaryTarget")
+                        .HasColumnType("int")
+                        .HasColumnName("primarytarget");
+
+                    b.Property<ulong>("PrimaryTargetId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("primarytargetid");
+
+                    b.Property<int>("SecondaryTarget")
+                        .HasColumnType("int")
+                        .HasColumnName("secondarytarget");
+
+                    b.Property<string>("SecondaryTargetName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("secondarytargetname");
+
+                    b.Property<bool>("State")
+                        .HasColumnType("tinyint(1)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("longtext")
+                        .HasColumnName("password");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("int")
+                        .HasColumnName("musicplaylistid");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("longtext")
+                        .HasColumnName("provider");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("int")
+                        .HasColumnName("providertype");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("longtext")
+                        .HasColumnName("query");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("longtext")
+                        .HasColumnName("title");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("longtext")
+                        .HasColumnName("authorname");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("varchar(255)")
+                        .HasColumnName("keyword");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("varchar(100)")
+                        .HasColumnName("emote");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("int")
+                        .HasColumnName("group");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("int")
+                        .HasColumnName("levelreq");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("messageid");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("isprivate");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("longtext")
+                        .HasColumnName("message");
+
+                    b.Property<ulong>("ServerId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("serverid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .HasColumnName("type");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("datetime(6)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("time(6)")
+                        .HasColumnName("interval");
+
+                    b.Property<ulong?>("LastMessageId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("lastmessageid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("longtext")
+                        .HasColumnName("message");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("noredundant");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("time(6)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amountrewardedthismonth");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("lastreward");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("varchar(255)")
+                        .HasColumnName("platformuserid");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("longtext")
+                        .HasColumnName("status");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rotatingstatus");
+
+                    b.ToTable("rotatingstatus", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SelfAssignedRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Group")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasDefaultValue(0)
+                        .HasColumnName("group");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelRequirement")
+                        .HasColumnType("int")
+                        .HasColumnName("levelrequirement");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_selfassignableroles");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_selfassignableroles_guildid_roleid");
+
+                    b.ToTable("selfassignableroles", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("longtext")
+                        .HasColumnName("command");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Index")
+                        .HasColumnType("int")
+                        .HasColumnName("index");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Price")
+                        .HasColumnType("int")
+                        .HasColumnName("price");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.Property<string>("RoleName")
+                        .HasColumnType("longtext")
+                        .HasColumnName("rolename");
+
+                    b.Property<ulong?>("RoleRequirement")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("rolerequirement");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("ShopEntryId")
+                        .HasColumnType("int")
+                        .HasColumnName("shopentryid");
+
+                    b.Property<string>("Text")
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("RoleIds")
+                        .HasColumnType("longtext")
+                        .HasColumnName("roleids");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("int")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<ulong>("AddRoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("addroleid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Enabled")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("enabled");
+
+                    b.Property<ulong>("FromRoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("fromroleid");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("longtext")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("int")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("longtext")
+                        .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.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("int")
+                        .HasColumnName("archiveid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("isdone");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("longtext")
+                        .HasColumnName("todo");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("unbanat");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<DateTime>("UnmuteAt")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("unmuteat");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("unbanat");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("AwardedXp")
+                        .HasColumnType("bigint")
+                        .HasColumnName("awardedxp");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("NotifyOnLevelUp")
+                        .HasColumnType("int")
+                        .HasColumnName("notifyonlevelup");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xp");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userxpstats");
+
+                    b.HasIndex("AwardedXp")
+                        .HasDatabaseName("ix_userxpstats_awardedxp");
+
+                    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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.Property<ulong>("VoiceChannelId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("int")
+                        .HasColumnName("affinityid");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("int")
+                        .HasColumnName("claimerid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("longtext")
+                        .HasColumnName("itememoji");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("longtext")
+                        .HasColumnName("name");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("int")
+                        .HasColumnName("newid");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("int")
+                        .HasColumnName("oldid");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("int")
+                        .HasColumnName("updatetype");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("forgiven");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("longtext")
+                        .HasColumnName("forgivenby");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("longtext")
+                        .HasColumnName("moderator");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("longtext")
+                        .HasColumnName("reason");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("int")
+                        .HasColumnName("count");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("int")
+                        .HasColumnName("punishment");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("int")
+                        .HasColumnName("time");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warningpunishment");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_warningpunishment_guildconfigid");
+
+                    b.ToTable("warningpunishment", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("int")
+                        .HasColumnName("amount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("int")
+                        .HasColumnName("level");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("int")
+                        .HasColumnName("level");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("remove");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("bigint unsigned")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("int")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("int")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<bool>("ServerExcluded")
+                        .HasColumnType("tinyint(1)")
+                        .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("int")
+                        .HasColumnName("id");
+
+                    MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("datetime(6)")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("tinyint(1)")
+                        .HasColumnName("isusing");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("varchar(255)")
+                        .HasColumnName("itemkey");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("int")
+                        .HasColumnName("itemtype");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("bigint unsigned")
+                        .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.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.GroupName", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("SelfAssignableRoleGroupNames")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_groupname_guildconfigs_guildconfigid");
+
+                    b.Navigation("GuildConfig");
+                });
+
+            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.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_streamrolesetti~");
+
+                    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_streamrolesetti~");
+
+                    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.WarningPunishment", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("WarnPunishments")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_warningpunishment_guildconfigs_guildconfigid");
+                });
+
+            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("SelfAssignableRoleGroupNames");
+
+                    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("WarnPunishments");
+
+                    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.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/Mysql/20240611180516_remove-patron-limits.cs b/src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.cs
new file mode 100644
index 0000000..745636a
--- /dev/null
+++ b/src/EllieBot/Migrations/Mysql/20240611180516_remove-patron-limits.cs
@@ -0,0 +1,44 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace EllieBot.Migrations.Mysql
+{
+    /// <inheritdoc />
+    public partial class removepatronlimits : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "patronquotas");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "patronquotas",
+                columns: table => new
+                {
+                    userid = table.Column<ulong>(type: "bigint unsigned", nullable: false),
+                    featuretype = table.Column<int>(type: "int", nullable: false),
+                    feature = table.Column<string>(type: "varchar(255)", nullable: false)
+                        .Annotation("MySql:CharSet", "utf8mb4"),
+                    dailycount = table.Column<uint>(type: "int unsigned", nullable: false),
+                    hourlycount = table.Column<uint>(type: "int unsigned", nullable: false),
+                    monthlycount = table.Column<uint>(type: "int unsigned", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_patronquotas", x => new { x.userid, x.featuretype, x.feature });
+                })
+                .Annotation("MySql:CharSet", "utf8mb4");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_patronquotas_userid",
+                table: "patronquotas",
+                column: "userid");
+        }
+    }
+}
diff --git a/src/EllieBot/Migrations/Mysql/MysqlContextModelSnapshot.cs b/src/EllieBot/Migrations/Mysql/MysqlContextModelSnapshot.cs
index 9a6e160..7399a1d 100644
--- a/src/EllieBot/Migrations/Mysql/MysqlContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/Mysql/MysqlContextModelSnapshot.cs
@@ -1718,41 +1718,6 @@ namespace EllieBot.Migrations.Mysql
                     b.ToTable("expressions", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.PatronQuota", b =>
-                {
-                    b.Property<ulong>("UserId")
-                        .HasColumnType("bigint unsigned")
-                        .HasColumnName("userid");
-
-                    b.Property<int>("FeatureType")
-                        .HasColumnType("int")
-                        .HasColumnName("featuretype");
-
-                    b.Property<string>("Feature")
-                        .HasColumnType("varchar(255)")
-                        .HasColumnName("feature");
-
-                    b.Property<uint>("DailyCount")
-                        .HasColumnType("int unsigned")
-                        .HasColumnName("dailycount");
-
-                    b.Property<uint>("HourlyCount")
-                        .HasColumnType("int unsigned")
-                        .HasColumnName("hourlycount");
-
-                    b.Property<uint>("MonthlyCount")
-                        .HasColumnType("int unsigned")
-                        .HasColumnName("monthlycount");
-
-                    b.HasKey("UserId", "FeatureType", "Feature")
-                        .HasName("pk_patronquotas");
-
-                    b.HasIndex("UserId")
-                        .HasDatabaseName("ix_patronquotas_userid");
-
-                    b.ToTable("patronquotas", (string)null);
-                });
-
             modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
                 {
                     b.Property<ulong>("UserId")
diff --git a/src/EllieBot/Migrations/PostgreSql/20220428044547_stondel.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220428044547_stondel.Designer.cs
index dd928e9..296f158 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220428044547_stondel.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220428044547_stondel.Designer.cs
@@ -1490,7 +1490,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220429044808_bank.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220429044808_bank.Designer.cs
index b4135e5..2368670 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220429044808_bank.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220429044808_bank.Designer.cs
@@ -1521,7 +1521,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220504162457_new-rero.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220504162457_new-rero.Designer.cs
index ab78250..24c7cdb 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220504162457_new-rero.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220504162457_new-rero.Designer.cs
@@ -1521,7 +1521,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220614071421_patronage-system.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220614071421_patronage-system.Designer.cs
index 0684976..7f9e828 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220614071421_patronage-system.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220614071421_patronage-system.Designer.cs
@@ -1591,7 +1591,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220623090729_stondel-db-cache.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220623090729_stondel-db-cache.Designer.cs
index f452d57..b8ec8ea 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220623090729_stondel-db-cache.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220623090729_stondel-db-cache.Designer.cs
@@ -1626,7 +1626,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220703194412_logwarns.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220703194412_logwarns.Designer.cs
index 964d6bd..2c19566 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220703194412_logwarns.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220703194412_logwarns.Designer.cs
@@ -1630,7 +1630,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220725155941_xpitemshop.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220725155941_xpitemshop.Designer.cs
index 1c2bb86..0ad20f8 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220725155941_xpitemshop.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220725155941_xpitemshop.Designer.cs
@@ -1670,7 +1670,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220727033944_linkonly-channels.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220727033944_linkonly-channels.Designer.cs
index 8a9bb37..a6d9203 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220727033944_linkonly-channels.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220727033944_linkonly-channels.Designer.cs
@@ -1674,7 +1674,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220808142559_remove-obsolete-xp-columns.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220808142559_remove-obsolete-xp-columns.Designer.cs
index e315f4d..60ef9a6 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220808142559_remove-obsolete-xp-columns.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220808142559_remove-obsolete-xp-columns.Designer.cs
@@ -1662,7 +1662,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220831142735_banprune.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220831142735_banprune.Designer.cs
index ce4b1a7..812f165 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220831142735_banprune.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220831142735_banprune.Designer.cs
@@ -1666,7 +1666,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220913192529_shop-role-req.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220913192529_shop-role-req.Designer.cs
index 04644ac..564fb8d 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220913192529_shop-role-req.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220913192529_shop-role-req.Designer.cs
@@ -1666,7 +1666,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20220916194523_autopub.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20220916194523_autopub.Designer.cs
index 41eb2c9..b372469 100644
--- a/src/EllieBot/Migrations/PostgreSql/20220916194523_autopub.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20220916194523_autopub.Designer.cs
@@ -1697,7 +1697,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20221003175752_gambling-stats.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20221003175752_gambling-stats.Designer.cs
index 3740b60..78021a9 100644
--- a/src/EllieBot/Migrations/PostgreSql/20221003175752_gambling-stats.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20221003175752_gambling-stats.Designer.cs
@@ -1732,7 +1732,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20221021192807_toggle-global-expressions.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20221021192807_toggle-global-expressions.Designer.cs
index 44486f6..813ffd1 100644
--- a/src/EllieBot/Migrations/PostgreSql/20221021192807_toggle-global-expressions.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20221021192807_toggle-global-expressions.Designer.cs
@@ -1736,7 +1736,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20221118195200_log-thread.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20221118195200_log-thread.Designer.cs
index 07a42f2..51c8a35 100644
--- a/src/EllieBot/Migrations/PostgreSql/20221118195200_log-thread.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20221118195200_log-thread.Designer.cs
@@ -1744,7 +1744,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20221122204423_feed-text.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20221122204423_feed-text.Designer.cs
index 24bfefc..a0a8272 100644
--- a/src/EllieBot/Migrations/PostgreSql/20221122204423_feed-text.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20221122204423_feed-text.Designer.cs
@@ -1748,7 +1748,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Services.Database.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Services.Database.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20240502233202_v5.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20240502233202_v5.Designer.cs
index abbe420..2546c39 100644
--- a/src/EllieBot/Migrations/PostgreSql/20240502233202_v5.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20240502233202_v5.Designer.cs
@@ -1699,7 +1699,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20240518221432_guidlconfig-cleanup.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20240518221432_guidlconfig-cleanup.Designer.cs
index 2227f4a..fde53c6 100644
--- a/src/EllieBot/Migrations/PostgreSql/20240518221432_guidlconfig-cleanup.Designer.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20240518221432_guidlconfig-cleanup.Designer.cs
@@ -1669,7 +1669,7 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("muteduserid", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.NadekoExpression", b =>
+            modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
                 {
                     b.Property<int>("Id")
                         .ValueGeneratedOnAdd()
diff --git a/src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.Designer.cs
new file mode 100644
index 0000000..18a4651
--- /dev/null
+++ b/src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.Designer.cs
@@ -0,0 +1,3781 @@
+// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using EllieBot.Db;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace EllieBot.Migrations.PostgreSql
+{
+    [DbContext(typeof(PostgreSqlContext))]
+    [Migration("20240611180506_remove-patron-limits")]
+    partial class removepatronlimits
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "8.0.4")
+                .HasAnnotation("Relational:MaxIdentifierLength", 63);
+
+            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
+
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("integer")
+                        .HasColumnName("actiondurationminutes");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("interval")
+                        .HasColumnName("minage");
+
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antialtsetting");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antialtsetting_guildconfigid");
+
+                    b.ToTable("antialtsetting", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("integer")
+                        .HasColumnName("punishduration");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
+
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("integer")
+                        .HasColumnName("userthreshold");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antiraidsetting");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antiraidsetting_guildconfigid");
+
+                    b.ToTable("antiraidsetting", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("integer")
+                        .HasColumnName("antispamsettingid");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antispamignore");
+
+                    b.HasIndex("AntiSpamSettingId")
+                        .HasDatabaseName("ix_antispamignore_antispamsettingid");
+
+                    b.ToTable("antispamignore", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("integer")
+                        .HasColumnName("messagethreshold");
+
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("integer")
+                        .HasColumnName("mutetime");
+
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_antispamsetting");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antispamsetting_guildconfigid");
+
+                    b.ToTable("antispamsetting", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_todosarchive");
+
+                    b.ToTable("todosarchive", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", 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<string>("ChannelName")
+                        .HasColumnType("text")
+                        .HasColumnName("channelname");
+
+                    b.Property<string>("CommandText")
+                        .HasColumnType("text")
+                        .HasColumnName("commandtext");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("GuildName")
+                        .HasColumnType("text")
+                        .HasColumnName("guildname");
+
+                    b.Property<int>("Interval")
+                        .HasColumnType("integer")
+                        .HasColumnName("interval");
+
+                    b.Property<decimal?>("VoiceChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("voicechannelid");
+
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("text")
+                        .HasColumnName("voicechannelname");
+
+                    b.HasKey("Id")
+                        .HasName("pk_autocommands");
+
+                    b.ToTable("autocommands", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", 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_autopublishchannel");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autopublishchannel_guildid");
+
+                    b.ToTable("autopublishchannel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AutoDelete")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodelete");
+
+                    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_autotranslatechannels");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autotranslatechannels_channelid");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_autotranslatechannels_guildid");
+
+                    b.ToTable("autotranslatechannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("integer")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Source")
+                        .HasColumnType("text")
+                        .HasColumnName("source");
+
+                    b.Property<string>("Target")
+                        .HasColumnType("text")
+                        .HasColumnName("target");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslateusers");
+
+                    b.HasAlternateKey("ChannelId", "UserId")
+                        .HasName("ak_autotranslateusers_channelid_userid");
+
+                    b.ToTable("autotranslateusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", 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<int?>("PruneDays")
+                        .HasColumnType("integer")
+                        .HasColumnName("prunedays");
+
+                    b.Property<string>("Text")
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_bantemplates");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bantemplates_guildid");
+
+                    b.ToTable("bantemplates", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Balance")
+                        .HasColumnType("bigint")
+                        .HasColumnName("balance");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_bankusers");
+
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bankusers_userid");
+
+                    b.ToTable("bankusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", 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>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_blacklist");
+
+                    b.ToTable("blacklist", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
+
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubapplicants");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubapplicants_userid");
+
+                    b.ToTable("clubapplicants", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
+
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubbans");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubbans_userid");
+
+                    b.ToTable("clubbans", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", 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>("Description")
+                        .HasColumnType("text")
+                        .HasColumnName("description");
+
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("imageurl");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("character varying(20)")
+                        .HasColumnName("name");
+
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("integer")
+                        .HasColumnName("ownerid");
+
+                    b.Property<int>("Xp")
+                        .HasColumnType("integer")
+                        .HasColumnName("xp");
+
+                    b.HasKey("Id")
+                        .HasName("pk_clubs");
+
+                    b.HasIndex("Name")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_name");
+
+                    b.HasIndex("OwnerId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_ownerid");
+
+                    b.ToTable("clubs", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", 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>("Mapping")
+                        .HasColumnType("text")
+                        .HasColumnName("mapping");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
+
+                    b.HasKey("Id")
+                        .HasName("pk_commandalias");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_commandalias_guildconfigid");
+
+                    b.ToTable("commandalias", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("CommandName")
+                        .HasColumnType("text")
+                        .HasColumnName("commandname");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
+
+                    b.HasKey("Id")
+                        .HasName("pk_commandcooldown");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_commandcooldown_guildconfigid");
+
+                    b.ToTable("commandcooldown", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", 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<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("extra");
+
+                    b.Property<string>("Note")
+                        .HasColumnType("text")
+                        .HasColumnName("note");
+
+                    b.Property<decimal?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("otherid")
+                        .HasDefaultValueSql("NULL");
+
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("type");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_currencytransactions");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_currencytransactions_userid");
+
+                    b.ToTable("currencytransactions", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", 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<bool>("State")
+                        .HasColumnType("boolean")
+                        .HasColumnName("state");
+
+                    b.HasKey("Id")
+                        .HasName("pk_delmsgoncmdchannel");
+
+                    b.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_delmsgoncmdchannel_guildconfigid");
+
+                    b.ToTable("delmsgoncmdchannel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Command")
+                        .HasColumnType("text")
+                        .HasColumnName("command");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("Perm")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("perm");
+
+                    b.HasKey("Id")
+                        .HasName("pk_discordpermoverrides");
+
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique()
+                        .HasDatabaseName("ix_discordpermoverrides_guildid_command");
+
+                    b.ToTable("discordpermoverrides", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("text")
+                        .HasColumnName("avatarid");
+
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
+
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("currencyamount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Discriminator")
+                        .HasColumnType("text")
+                        .HasColumnName("discriminator");
+
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isclubadmin");
+
+                    b.Property<int>("NotifyOnLevelUp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(0)
+                        .HasColumnName("notifyonlevelup");
+
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("totalxp");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_discorduser");
+
+                    b.HasAlternateKey("UserId")
+                        .HasName("ak_discorduser_userid");
+
+                    b.HasIndex("ClubId")
+                        .HasDatabaseName("ix_discorduser_clubid");
+
+                    b.HasIndex("CurrencyAmount")
+                        .HasDatabaseName("ix_discorduser_currencyamount");
+
+                    b.HasIndex("TotalXp")
+                        .HasDatabaseName("ix_discorduser_totalxp");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_discorduser_userid");
+
+                    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.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.GroupName", 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>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Number")
+                        .HasColumnType("integer")
+                        .HasColumnName("number");
+
+                    b.HasKey("Id")
+                        .HasName("pk_groupname");
+
+                    b.HasIndex("GuildConfigId", "Number")
+                        .IsUnique()
+                        .HasDatabaseName("ix_groupname_guildconfigid_number");
+
+                    b.ToTable("groupname", (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<int>("AutoDeleteByeMessagesTimer")
+                        .HasColumnType("integer")
+                        .HasColumnName("autodeletebyemessagestimer");
+
+                    b.Property<int>("AutoDeleteGreetMessagesTimer")
+                        .HasColumnType("integer")
+                        .HasColumnName("autodeletegreetmessagestimer");
+
+                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodeleteselfassignedrolemessages");
+
+                    b.Property<string>("BoostMessage")
+                        .HasColumnType("text")
+                        .HasColumnName("boostmessage");
+
+                    b.Property<decimal>("BoostMessageChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("boostmessagechannelid");
+
+                    b.Property<int>("BoostMessageDeleteAfter")
+                        .HasColumnType("integer")
+                        .HasColumnName("boostmessagedeleteafter");
+
+                    b.Property<decimal>("ByeMessageChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("byemessagechannelid");
+
+                    b.Property<string>("ChannelByeMessageText")
+                        .HasColumnType("text")
+                        .HasColumnName("channelbyemessagetext");
+
+                    b.Property<string>("ChannelGreetMessageText")
+                        .HasColumnType("text")
+                        .HasColumnName("channelgreetmessagetext");
+
+                    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<string>("DmGreetMessageText")
+                        .HasColumnType("text")
+                        .HasColumnName("dmgreetmessagetext");
+
+                    b.Property<bool>("ExclusiveSelfAssignedRoles")
+                        .HasColumnType("boolean")
+                        .HasColumnName("exclusiveselfassignedroles");
+
+                    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>("GreetMessageChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("greetmessagechannelid");
+
+                    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>("SendBoostMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("sendboostmessage");
+
+                    b.Property<bool>("SendChannelByeMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("sendchannelbyemessage");
+
+                    b.Property<bool>("SendChannelGreetMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("sendchannelgreetmessage");
+
+                    b.Property<bool>("SendDmGreetMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("senddmgreetmessage");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("boolean")
+                        .HasColumnName("stickyroles");
+
+                    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.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.EllieExpression", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("boolean")
+                        .HasColumnName("allowtarget");
+
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodeletetrigger");
+
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("boolean")
+                        .HasColumnName("containsanywhere");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("boolean")
+                        .HasColumnName("dmresponse");
+
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Reactions")
+                        .HasColumnType("text")
+                        .HasColumnName("reactions");
+
+                    b.Property<string>("Response")
+                        .HasColumnType("text")
+                        .HasColumnName("response");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
+
+                    b.HasKey("Id")
+                        .HasName("pk_expressions");
+
+                    b.ToTable("expressions", (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.SelfAssignedRole", 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>("Group")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(0)
+                        .HasColumnName("group");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelRequirement")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelrequirement");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_selfassignableroles");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_selfassignableroles_guildid_roleid");
+
+                    b.ToTable("selfassignableroles", (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.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<long>("AwardedXp")
+                        .HasColumnType("bigint")
+                        .HasColumnName("awardedxp");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("NotifyOnLevelUp")
+                        .HasColumnType("integer")
+                        .HasColumnName("notifyonlevelup");
+
+                    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("AwardedXp")
+                        .HasDatabaseName("ix_userxpstats_awardedxp");
+
+                    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<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    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.HasIndex("GuildConfigId")
+                        .HasDatabaseName("ix_warningpunishment_guildconfigid");
+
+                    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.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.GroupName", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("SelfAssignableRoleGroupNames")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_groupname_guildconfigs_guildconfigid");
+
+                    b.Navigation("GuildConfig");
+                });
+
+            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.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.WarningPunishment", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("WarnPunishments")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_warningpunishment_guildconfigs_guildconfigid");
+                });
+
+            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("SelfAssignableRoleGroupNames");
+
+                    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("WarnPunishments");
+
+                    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.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/PostgreSql/20240611180506_remove-patron-limits.cs b/src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.cs
new file mode 100644
index 0000000..7fb11bc
--- /dev/null
+++ b/src/EllieBot/Migrations/PostgreSql/20240611180506_remove-patron-limits.cs
@@ -0,0 +1,42 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace EllieBot.Migrations.PostgreSql
+{
+    /// <inheritdoc />
+    public partial class removepatronlimits : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "patronquotas");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "patronquotas",
+                columns: table => new
+                {
+                    userid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
+                    featuretype = table.Column<int>(type: "integer", nullable: false),
+                    feature = table.Column<string>(type: "text", nullable: false),
+                    dailycount = table.Column<long>(type: "bigint", nullable: false),
+                    hourlycount = table.Column<long>(type: "bigint", nullable: false),
+                    monthlycount = table.Column<long>(type: "bigint", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_patronquotas", x => new { x.userid, x.featuretype, x.feature });
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "ix_patronquotas_userid",
+                table: "patronquotas",
+                column: "userid");
+        }
+    }
+}
diff --git a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
index 02d425e..5873be8 100644
--- a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
@@ -1717,41 +1717,6 @@ namespace EllieBot.Migrations.PostgreSql
                     b.ToTable("expressions", (string)null);
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.PatronQuota", b =>
-                {
-                    b.Property<decimal>("UserId")
-                        .HasColumnType("numeric(20,0)")
-                        .HasColumnName("userid");
-
-                    b.Property<int>("FeatureType")
-                        .HasColumnType("integer")
-                        .HasColumnName("featuretype");
-
-                    b.Property<string>("Feature")
-                        .HasColumnType("text")
-                        .HasColumnName("feature");
-
-                    b.Property<long>("DailyCount")
-                        .HasColumnType("bigint")
-                        .HasColumnName("dailycount");
-
-                    b.Property<long>("HourlyCount")
-                        .HasColumnType("bigint")
-                        .HasColumnName("hourlycount");
-
-                    b.Property<long>("MonthlyCount")
-                        .HasColumnType("bigint")
-                        .HasColumnName("monthlycount");
-
-                    b.HasKey("UserId", "FeatureType", "Feature")
-                        .HasName("pk_patronquotas");
-
-                    b.HasIndex("UserId")
-                        .HasDatabaseName("ix_patronquotas_userid");
-
-                    b.ToTable("patronquotas", (string)null);
-                });
-
             modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
                 {
                     b.Property<decimal>("UserId")
diff --git a/src/EllieBot/Migrations/Sqlite/20240518221424_guidlconfig-cleanup.cs b/src/EllieBot/Migrations/Sqlite/20240518221424_guidlconfig-cleanup.cs
index faaf454..cc33c61 100644
--- a/src/EllieBot/Migrations/Sqlite/20240518221424_guidlconfig-cleanup.cs
+++ b/src/EllieBot/Migrations/Sqlite/20240518221424_guidlconfig-cleanup.cs
@@ -12,7 +12,7 @@ namespace EllieBot.Migrations
         protected override void Up(MigrationBuilder migrationBuilder)
         {
             MigrationQueries.GuildConfigCleanup(migrationBuilder);
-
+            
             migrationBuilder.DropForeignKey(
                 name: "FK_AntiRaidSetting_GuildConfigs_GuildConfigId",
                 table: "AntiRaidSetting");
diff --git a/src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.Designer.cs b/src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.Designer.cs
new file mode 100644
index 0000000..c0d277c
--- /dev/null
+++ b/src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.Designer.cs
@@ -0,0 +1,2921 @@
+// <auto-generated />
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using EllieBot.Db;
+
+#nullable disable
+
+namespace EllieBot.Migrations
+{
+    [DbContext(typeof(SqliteContext))]
+    [Migration("20240611180456_remove-patron-limits")]
+    partial class removepatronlimits
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder.HasAnnotation("ProductVersion", "8.0.4");
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
+
+                    b.ToTable("AntiAltSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
+
+                    b.ToTable("AntiRaidSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AntiSpamSettingId");
+
+                    b.ToTable("AntiSpamIgnore");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId")
+                        .IsUnique();
+
+                    b.ToTable("AntiSpamSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("TodosArchive");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ChannelName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("CommandText")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("GuildName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Interval")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("VoiceChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("AutoCommands");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", 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")
+                        .IsUnique();
+
+                    b.ToTable("AutoPublishChannel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoDelete")
+                        .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("ChannelId")
+                        .IsUnique();
+
+                    b.HasIndex("GuildId");
+
+                    b.ToTable("AutoTranslateChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Source")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Target")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("ChannelId", "UserId");
+
+                    b.ToTable("AutoTranslateUsers");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("PruneDays")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("BanTemplates");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Balance")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("BankUsers");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("ItemId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Blacklist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("ClubId", "UserId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("ClubApplicants");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("ClubId", "UserId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("ClubBans");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Description")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Xp")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Name")
+                        .IsUnique();
+
+                    b.HasIndex("OwnerId")
+                        .IsUnique();
+
+                    b.ToTable("Clubs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Mapping")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("CommandAlias");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("CommandName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("CommandCooldown");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Note")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValueSql("NULL");
+
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("CurrencyTransactions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", 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<bool>("State")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    b.ToTable("DelMsgOnCmdChannel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("Perm")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique();
+
+                    b.ToTable("DiscordPermOverrides");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Discriminator")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
+
+                    b.Property<int>("NotifyOnLevelUp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0);
+
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("UserId");
+
+                    b.HasIndex("ClubId");
+
+                    b.HasIndex("CurrencyAmount");
+
+                    b.HasIndex("TotalXp");
+
+                    b.HasIndex("UserId");
+
+                    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.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.GroupName", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Number")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId", "Number")
+                        .IsUnique();
+
+                    b.ToTable("GroupName");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("AutoDeleteByeMessagesTimer")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AutoDeleteGreetMessagesTimer")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("BoostMessage")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("BoostMessageChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("BoostMessageDeleteAfter")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ByeMessageChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ChannelByeMessageText")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ChannelGreetMessageText")
+                        .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<string>("DmGreetMessageText")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("ExclusiveSelfAssignedRoles")
+                        .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>("GreetMessageChannelId")
+                        .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>("SendBoostMessage")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("SendChannelByeMessage")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("SendChannelGreetMessage")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("SendDmGreetMessage")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("INTEGER");
+
+                    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.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.EllieExpression", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Reactions")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Response")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Expressions");
+                });
+
+            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.SelfAssignedRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Group")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0);
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelRequirement")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique();
+
+                    b.ToTable("SelfAssignableRoles");
+                });
+
+            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.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<long>("AwardedXp")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("NotifyOnLevelUp")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AwardedXp");
+
+                    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<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildConfigId");
+
+                    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.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.GroupName", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
+                        .WithMany("SelfAssignableRoleGroupNames")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("GuildConfig");
+                });
+
+            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.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.WarningPunishment", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("WarnPunishments")
+                        .HasForeignKey("GuildConfigId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            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("SelfAssignableRoleGroupNames");
+
+                    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("WarnPunishments");
+
+                    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.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/20240611180456_remove-patron-limits.cs b/src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.cs
new file mode 100644
index 0000000..1091268
--- /dev/null
+++ b/src/EllieBot/Migrations/Sqlite/20240611180456_remove-patron-limits.cs
@@ -0,0 +1,42 @@
+using Microsoft.EntityFrameworkCore.Migrations;
+
+#nullable disable
+
+namespace EllieBot.Migrations
+{
+    /// <inheritdoc />
+    public partial class removepatronlimits : Migration
+    {
+        /// <inheritdoc />
+        protected override void Up(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.DropTable(
+                name: "PatronQuotas");
+        }
+
+        /// <inheritdoc />
+        protected override void Down(MigrationBuilder migrationBuilder)
+        {
+            migrationBuilder.CreateTable(
+                name: "PatronQuotas",
+                columns: table => new
+                {
+                    UserId = table.Column<ulong>(type: "INTEGER", nullable: false),
+                    FeatureType = table.Column<int>(type: "INTEGER", nullable: false),
+                    Feature = table.Column<string>(type: "TEXT", nullable: false),
+                    DailyCount = table.Column<uint>(type: "INTEGER", nullable: false),
+                    HourlyCount = table.Column<uint>(type: "INTEGER", nullable: false),
+                    MonthlyCount = table.Column<uint>(type: "INTEGER", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_PatronQuotas", x => new { x.UserId, x.FeatureType, x.Feature });
+                });
+
+            migrationBuilder.CreateIndex(
+                name: "IX_PatronQuotas_UserId",
+                table: "PatronQuotas",
+                column: "UserId");
+        }
+    }
+}
diff --git a/src/EllieBot/Migrations/Sqlite/EllieSqliteContextModelSnapshot.cs b/src/EllieBot/Migrations/Sqlite/EllieSqliteContextModelSnapshot.cs
index 1d5dcf6..947c521 100644
--- a/src/EllieBot/Migrations/Sqlite/EllieSqliteContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/Sqlite/EllieSqliteContextModelSnapshot.cs
@@ -1279,33 +1279,6 @@ namespace EllieBot.Migrations
                     b.ToTable("Expressions");
                 });
 
-            modelBuilder.Entity("EllieBot.Db.Models.PatronQuota", b =>
-                {
-                    b.Property<ulong>("UserId")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<int>("FeatureType")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<string>("Feature")
-                        .HasColumnType("TEXT");
-
-                    b.Property<uint>("DailyCount")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<uint>("HourlyCount")
-                        .HasColumnType("INTEGER");
-
-                    b.Property<uint>("MonthlyCount")
-                        .HasColumnType("INTEGER");
-
-                    b.HasKey("UserId", "FeatureType", "Feature");
-
-                    b.HasIndex("UserId");
-
-                    b.ToTable("PatronQuotas");
-                });
-
             modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
                 {
                     b.Property<ulong>("UserId")