From ca46786c5e2fe274a109f7f38d83d1edeadaf9ab Mon Sep 17 00:00:00 2001
From: Toastie <toastie@toastiet0ast.com>
Date: Mon, 17 Mar 2025 19:51:05 +1300
Subject: [PATCH] added scheduled commands, .scha, .schd and .schl

---
 .../20250315225539_init.Designer.cs           | 4037 ---------
 .../20250317063129_scheduled-commands.sql     |   23 +
 .../20250317063309_init.Designer.cs           | 4086 +++++++++
 ...5225539_init.cs => 20250317063309_init.cs} |   38 +-
 .../PostgreSqlContextModelSnapshot.cs         | 7409 +++++++++--------
 .../Sqlite/20250315225536_init.Designer.cs    | 3073 -------
 .../20250317063119_scheduled-commands.sql     |   22 +
 .../Sqlite/20250317063300_init.Designer.cs    | 3109 +++++++
 ...5225536_init.cs => 20250317063300_init.cs} |   38 +-
 .../Sqlite/SqliteContextModelSnapshot.cs      | 5522 ++++++------
 .../Scheduled/ScheduleCommandService.cs       |  150 +
 .../Utility/Scheduled/ScheduledCommand.cs     |   28 +
 .../Utility/Scheduled/ScheduledCommands.cs    |   89 +
 src/EllieBot/_common/DoAsUserMessage.cs       |    2 +-
 src/EllieBot/strings/aliases.yml              |   14 +-
 .../strings/commands/commands.en-US.yml       |   29 +-
 .../strings/responses/responses.en-US.json    |   14 +-
 17 files changed, 14143 insertions(+), 13540 deletions(-)
 delete mode 100644 src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs
 create mode 100644 src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql
 create mode 100644 src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs
 rename src/EllieBot/Migrations/PostgreSql/{20250315225539_init.cs => 20250317063309_init.cs} (98%)
 delete mode 100644 src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs
 create mode 100644 src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql
 create mode 100644 src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs
 rename src/EllieBot/Migrations/Sqlite/{20250315225536_init.cs => 20250317063300_init.cs} (98%)
 create mode 100644 src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs
 create mode 100644 src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs
 create mode 100644 src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs

diff --git a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs
deleted file mode 100644
index b047a58..0000000
--- a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.Designer.cs
+++ /dev/null
@@ -1,4037 +0,0 @@
-// <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("20250315225539_init")]
-    partial class init
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder
-                .HasAnnotation("ProductVersion", "9.0.1")
-                .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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antialtsetting_guildid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antiraidsetting_guildid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antispamsetting_guildid");
-
-                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.ButtonRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("ButtonId")
-                    .IsRequired()
-                    .HasMaxLength(200)
-                    .HasColumnType("character varying(200)")
-                    .HasColumnName("buttonid");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<string>("Emote")
-                    .IsRequired()
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("emote");
-
-                b.Property<bool>("Exclusive")
-                    .HasColumnType("boolean")
-                    .HasColumnName("exclusive");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Label")
-                    .IsRequired()
-                    .HasMaxLength(50)
-                    .HasColumnType("character varying(50)")
-                    .HasColumnName("label");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<int>("Position")
-                    .HasColumnType("integer")
-                    .HasColumnName("position");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_buttonrole");
-
-                b.HasAlternateKey("RoleId", "MessageId")
-                    .HasName("ak_buttonrole_roleid_messageid");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_buttonrole_guildid");
-
-                b.ToTable("buttonrole", (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<string>("BannerUrl")
-                    .HasColumnType("text")
-                    .HasColumnName("bannerurl");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Mapping")
-                    .HasColumnType("text")
-                    .HasColumnName("mapping");
-
-                b.Property<string>("Trigger")
-                    .HasColumnType("text")
-                    .HasColumnName("trigger");
-
-                b.HasKey("Id")
-                    .HasName("pk_commandalias");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_commandalias_guildid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Seconds")
-                    .HasColumnType("integer")
-                    .HasColumnName("seconds");
-
-                b.HasKey("Id")
-                    .HasName("pk_commandcooldown");
-
-                b.HasIndex("GuildId", "CommandName")
-                    .IsUnique()
-                    .HasDatabaseName("ix_commandcooldown_guildid_commandname");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("State")
-                    .HasColumnType("boolean")
-                    .HasColumnName("state");
-
-                b.HasKey("Id")
-                    .HasName("pk_delmsgoncmdchannel");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid");
-
-                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<bool>("IsClubAdmin")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(false)
-                    .HasColumnName("isclubadmin");
-
-                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.HasIndex("Username")
-                    .HasDatabaseName("ix_discorduser_username");
-
-                b.ToTable("discorduser", (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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<string>("Url")
-                    .HasColumnType("text")
-                    .HasColumnName("url");
-
-                b.HasKey("Id")
-                    .HasName("pk_feedsub");
-
-                b.HasIndex("GuildId", "Url")
-                    .IsUnique()
-                    .HasDatabaseName("ix_feedsub_guildid_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<int?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterchannelid");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filterchannelid_guildfilterconfigid");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterlinkschannelid");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterwordschannelid");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.Property<string>("Word")
-                    .HasColumnType("text")
-                    .HasColumnName("word");
-
-                b.HasKey("Id")
-                    .HasName("pk_filteredword");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filteredword_guildfilterconfigid");
-
-                b.ToTable("filteredword", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_flagtranslatechannel");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");
-
-                b.ToTable("flagtranslatechannel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<string>("PrettyName")
-                    .HasColumnType("text")
-                    .HasColumnName("prettyname");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_followedstream");
-
-                b.HasIndex("GuildId", "Username", "Type")
-                    .HasDatabaseName("ix_followedstream_guildid_username_type");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_gcchannelid");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_gcchannelid_guildid_channelid");
-
-                b.ToTable("gcchannelid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("Bet")
-                    .HasColumnType("numeric")
-                    .HasColumnName("bet");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Feature")
-                    .HasColumnType("text")
-                    .HasColumnName("feature");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("numeric")
-                    .HasColumnName("paidout");
-
-                b.HasKey("Id")
-                    .HasName("pk_gamblingstats");
-
-                b.HasIndex("Feature")
-                    .IsUnique()
-                    .HasDatabaseName("ix_gamblingstats_feature");
-
-                b.ToTable("gamblingstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime>("EndsAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("endsat");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.HasKey("Id")
-                    .HasName("pk_giveawaymodel");
-
-                b.ToTable("giveawaymodel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("GiveawayId")
-                    .HasColumnType("integer")
-                    .HasColumnName("giveawayid");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_giveawayuser");
-
-                b.HasIndex("GiveawayId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_giveawayuser_giveawayid_userid");
-
-                b.ToTable("giveawayuser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("ErrorColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("errorcolor");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("OkColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("okcolor");
-
-                b.Property<string>("PendingColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("pendingcolor");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildcolors");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_guildcolors_guildid");
-
-                b.ToTable("guildcolors", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("AutoAssignRoleIds")
-                    .HasColumnType("text")
-                    .HasColumnName("autoassignroleids");
-
-                b.Property<bool>("CleverbotEnabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("cleverbotenabled");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("DeleteMessageOnCommand")
-                    .HasColumnType("boolean")
-                    .HasColumnName("deletemessageoncommand");
-
-                b.Property<bool>("DeleteStreamOnlineMessage")
-                    .HasColumnType("boolean")
-                    .HasColumnName("deletestreamonlinemessage");
-
-                b.Property<bool>("DisableGlobalExpressions")
-                    .HasColumnType("boolean")
-                    .HasColumnName("disableglobalexpressions");
-
-                b.Property<decimal?>("GameVoiceChannel")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("gamevoicechannel");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Locale")
-                    .HasColumnType("text")
-                    .HasColumnName("locale");
-
-                b.Property<string>("MuteRoleName")
-                    .HasColumnType("text")
-                    .HasColumnName("muterolename");
-
-                b.Property<bool>("NotifyStreamOffline")
-                    .HasColumnType("boolean")
-                    .HasColumnName("notifystreamoffline");
-
-                b.Property<string>("PermissionRole")
-                    .HasColumnType("text")
-                    .HasColumnName("permissionrole");
-
-                b.Property<string>("Prefix")
-                    .HasColumnType("text")
-                    .HasColumnName("prefix");
-
-                b.Property<bool>("StickyRoles")
-                    .HasColumnType("boolean")
-                    .HasColumnName("stickyroles");
-
-                b.Property<string>("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.GuildFilterConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                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>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildfilterconfig");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_guildfilterconfig_guildid");
-
-                b.ToTable("guildfilterconfig", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
-            {
-                b.Property<decimal>("GuildId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.HasKey("GuildId")
-                    .HasName("pk_honeypotchannels");
-
-                b.ToTable("honeypotchannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<decimal>("LogItemId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logitemid");
-
-                b.Property<int>("LogSettingId")
-                    .HasColumnType("integer")
-                    .HasColumnName("logsettingid");
-
-                b.HasKey("Id")
-                    .HasName("pk_ignoredlogchannels");
-
-                b.HasIndex("LogSettingId", "LogItemId", "ItemType")
-                    .IsUnique()
-                    .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");
-
-                b.ToTable("ignoredlogchannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_imageonlychannels");
-
-                b.HasIndex("ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_imageonlychannels_channelid");
-
-                b.ToTable("imageonlychannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal?>("ChannelCreatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelcreatedid");
-
-                b.Property<decimal?>("ChannelDestroyedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channeldestroyedid");
-
-                b.Property<decimal?>("ChannelUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelupdatedid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal?>("LogOtherId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logotherid");
-
-                b.Property<decimal?>("LogUserPresenceId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("loguserpresenceid");
-
-                b.Property<decimal?>("LogVoicePresenceId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logvoicepresenceid");
-
-                b.Property<decimal?>("LogVoicePresenceTTSId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logvoicepresencettsid");
-
-                b.Property<decimal?>("LogWarnsId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logwarnsid");
-
-                b.Property<decimal?>("MessageDeletedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messagedeletedid");
-
-                b.Property<decimal?>("MessageUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageupdatedid");
-
-                b.Property<decimal?>("ThreadCreatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("threadcreatedid");
-
-                b.Property<decimal?>("ThreadDeletedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("threaddeletedid");
-
-                b.Property<decimal?>("UserBannedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userbannedid");
-
-                b.Property<decimal?>("UserJoinedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userjoinedid");
-
-                b.Property<decimal?>("UserLeftId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userleftid");
-
-                b.Property<decimal?>("UserMutedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("usermutedid");
-
-                b.Property<decimal?>("UserUnbannedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userunbannedid");
-
-                b.Property<decimal?>("UserUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userupdatedid");
-
-                b.HasKey("Id")
-                    .HasName("pk_logsettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_logsettings_guildid");
-
-                b.ToTable("logsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<bool>("AutoDisconnect")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodisconnect");
-
-                b.Property<bool>("AutoPlay")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autoplay");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal?>("MusicChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("musicchannelid");
-
-                b.Property<int>("PlayerRepeat")
-                    .HasColumnType("integer")
-                    .HasColumnName("playerrepeat");
-
-                b.Property<int>("QualityPreset")
-                    .HasColumnType("integer")
-                    .HasColumnName("qualitypreset");
-
-                b.Property<int>("Volume")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(100)
-                    .HasColumnName("volume");
-
-                b.HasKey("Id")
-                    .HasName("pk_musicplayersettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_musicplayersettings_guildid");
-
-                b.ToTable("musicplayersettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("Author")
-                    .HasColumnType("text")
-                    .HasColumnName("author");
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.HasKey("Id")
-                    .HasName("pk_musicplaylists");
-
-                b.ToTable("musicplaylists", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_muteduserid");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_muteduserid_guildid_userid");
-
-                b.ToTable("muteduserid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("Color")
-                    .HasColumnType("bigint")
-                    .HasColumnName("color");
-
-                b.Property<decimal>("OwnerId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("ownerid");
-
-                b.Property<int>("Position")
-                    .HasColumnType("integer")
-                    .HasColumnName("position");
-
-                b.Property<long>("Price")
-                    .HasColumnType("bigint")
-                    .HasColumnName("price");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasMaxLength(256)
-                    .HasColumnType("character varying(256)")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_ncpixel");
-
-                b.HasAlternateKey("Position")
-                    .HasName("ak_ncpixel_position");
-
-                b.HasIndex("OwnerId")
-                    .HasDatabaseName("ix_ncpixel_ownerid");
-
-                b.ToTable("ncpixel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.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.Notify", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal?>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .IsRequired()
-                    .HasMaxLength(10000)
-                    .HasColumnType("character varying(10000)")
-                    .HasColumnName("message");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_notify");
-
-                b.HasAlternateKey("GuildId", "Type")
-                    .HasName("ak_notify_guildid_type");
-
-                b.ToTable("notify", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
-            {
-                b.Property<decimal>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<int>("AmountCents")
-                    .HasColumnType("integer")
-                    .HasColumnName("amountcents");
-
-                b.Property<DateTime>("LastCharge")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("lastcharge");
-
-                b.Property<string>("UniquePlatformUserId")
-                    .HasColumnType("text")
-                    .HasColumnName("uniqueplatformuserid");
-
-                b.Property<DateTime>("ValidThru")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("validthru");
-
-                b.HasKey("UserId")
-                    .HasName("pk_patrons");
-
-                b.HasIndex("UniquePlatformUserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_patrons_uniqueplatformuserid");
-
-                b.ToTable("patrons", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildconfigid");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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.HasIndex("GuildId")
-                    .HasDatabaseName("ix_permissions_guildid");
-
-                b.ToTable("permissions", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("Amount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amount");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<string>("Password")
-                    .HasColumnType("text")
-                    .HasColumnName("password");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_plantedcurrency");
-
-                b.HasIndex("ChannelId")
-                    .HasDatabaseName("ix_plantedcurrency_channelid");
-
-                b.HasIndex("MessageId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_plantedcurrency_messageid");
-
-                b.ToTable("plantedcurrency", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("MusicPlaylistId")
-                    .HasColumnType("integer")
-                    .HasColumnName("musicplaylistid");
-
-                b.Property<string>("Provider")
-                    .HasColumnType("text")
-                    .HasColumnName("provider");
-
-                b.Property<int>("ProviderType")
-                    .HasColumnType("integer")
-                    .HasColumnName("providertype");
-
-                b.Property<string>("Query")
-                    .HasColumnType("text")
-                    .HasColumnName("query");
-
-                b.Property<string>("Title")
-                    .HasColumnType("text")
-                    .HasColumnName("title");
-
-                b.Property<string>("Uri")
-                    .HasColumnType("text")
-                    .HasColumnName("uri");
-
-                b.HasKey("Id")
-                    .HasName("pk_playlistsong");
-
-                b.HasIndex("MusicPlaylistId")
-                    .HasDatabaseName("ix_playlistsong_musicplaylistid");
-
-                b.ToTable("playlistsong", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<string>("AuthorName")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("authorname");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Keyword")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("keyword");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_quotes");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_quotes_guildid");
-
-                b.HasIndex("Keyword")
-                    .HasDatabaseName("ix_quotes_keyword");
-
-                b.ToTable("quotes", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Emote")
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("emote");
-
-                b.Property<int>("Group")
-                    .HasColumnType("integer")
-                    .HasColumnName("group");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("integer")
-                    .HasColumnName("levelreq");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_reactionroles");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_reactionroles_guildid");
-
-                b.HasIndex("MessageId", "Emote")
-                    .IsUnique()
-                    .HasDatabaseName("ix_reactionroles_messageid_emote");
-
-                b.ToTable("reactionroles", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsPrivate")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isprivate");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<decimal>("ServerId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("serverid");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<DateTime>("When")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("when");
-
-                b.HasKey("Id")
-                    .HasName("pk_reminders");
-
-                b.HasIndex("When")
-                    .HasDatabaseName("ix_reminders_when");
-
-                b.ToTable("reminders", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<TimeSpan>("Interval")
-                    .HasColumnType("interval")
-                    .HasColumnName("interval");
-
-                b.Property<decimal?>("LastMessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("lastmessageid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<bool>("NoRedundant")
-                    .HasColumnType("boolean")
-                    .HasColumnName("noredundant");
-
-                b.Property<TimeSpan?>("StartTimeOfDay")
-                    .HasColumnType("interval")
-                    .HasColumnName("starttimeofday");
-
-                b.HasKey("Id")
-                    .HasName("pk_repeaters");
-
-                b.ToTable("repeaters", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("AmountRewardedThisMonth")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amountrewardedthismonth");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<DateTime>("LastReward")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("lastreward");
-
-                b.Property<string>("PlatformUserId")
-                    .HasColumnType("text")
-                    .HasColumnName("platformuserid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_rewardedusers");
-
-                b.HasIndex("PlatformUserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_rewardedusers_platformuserid");
-
-                b.ToTable("rewardedusers", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Status")
-                    .HasColumnType("text")
-                    .HasColumnName("status");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_rotatingstatus");
-
-                b.ToTable("rotatingstatus", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("integer")
-                    .HasColumnName("levelreq");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("SarGroupId")
-                    .HasColumnType("integer")
-                    .HasColumnName("sargroupid");
-
-                b.HasKey("Id")
-                    .HasName("pk_sar");
-
-                b.HasAlternateKey("GuildId", "RoleId")
-                    .HasName("ak_sar_guildid_roleid");
-
-                b.HasIndex("SarGroupId")
-                    .HasDatabaseName("ix_sar_sargroupid");
-
-                b.ToTable("sar", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsEnabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isenabled");
-
-                b.HasKey("Id")
-                    .HasName("pk_sarautodelete");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_sarautodelete_guildid");
-
-                b.ToTable("sarautodelete", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("GroupNumber")
-                    .HasColumnType("integer")
-                    .HasColumnName("groupnumber");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsExclusive")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isexclusive");
-
-                b.Property<string>("Name")
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("name");
-
-                b.Property<decimal?>("RoleReq")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("rolereq");
-
-                b.HasKey("Id")
-                    .HasName("pk_sargroup");
-
-                b.HasAlternateKey("GuildId", "GroupNumber")
-                    .HasName("ak_sargroup_guildid_groupnumber");
-
-                b.ToTable("sargroup", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<string>("Command")
-                    .HasColumnType("text")
-                    .HasColumnName("command");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "Index")
-                    .IsUnique()
-                    .HasDatabaseName("ix_shopentry_guildid_index");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_slowmodeignoredrole");
-
-                b.HasIndex("GuildId", "RoleId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_slowmodeignoreduser");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Keyword")
-                    .HasColumnType("text")
-                    .HasColumnName("keyword");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamrolesettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_streamrolesettings_guildid");
-
-                b.ToTable("streamrolesettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("streamrolesettingsid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamrolewhitelisteduser");
-
-                b.HasIndex("StreamRoleSettingsId")
-                    .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");
-
-                b.ToTable("streamrolewhitelisteduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime>("ExpiresAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("expiresat");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("boolean")
-                    .HasColumnName("remove");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_temprole");
-
-                b.HasAlternateKey("GuildId", "UserId", "RoleId")
-                    .HasName("ak_temprole_guildid_userid_roleid");
-
-                b.HasIndex("ExpiresAt")
-                    .HasDatabaseName("ix_temprole_expiresat");
-
-                b.ToTable("temprole", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("ArchiveId")
-                    .HasColumnType("integer")
-                    .HasColumnName("archiveid");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsDone")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isdone");
-
-                b.Property<string>("Todo")
-                    .HasColumnType("text")
-                    .HasColumnName("todo");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_todos");
-
-                b.HasIndex("ArchiveId")
-                    .HasDatabaseName("ix_todos_archiveid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_todos_userid");
-
-                b.ToTable("todos", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_unbantimer_guildid_userid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_unmutetimer_guildid_userid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_unroletimer_guildid_userid");
-
-                b.ToTable("unroletimer", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("Xp")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xp");
-
-                b.HasKey("Id")
-                    .HasName("pk_userxpstats");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_userxpstats_guildid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_userxpstats_userid");
-
-                b.HasIndex("Xp")
-                    .HasDatabaseName("ix_userxpstats_xp");
-
-                b.HasIndex("UserId", "GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userxpstats_userid_guildid");
-
-                b.ToTable("userxpstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "VoiceChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid");
-
-                b.ToTable("vcroleinfo", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("AffinityId")
-                    .HasColumnType("integer")
-                    .HasColumnName("affinityid");
-
-                b.Property<int?>("ClaimerId")
-                    .HasColumnType("integer")
-                    .HasColumnName("claimerid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<long>("Price")
-                    .HasColumnType("bigint")
-                    .HasColumnName("price");
-
-                b.Property<int>("WaifuId")
-                    .HasColumnType("integer")
-                    .HasColumnName("waifuid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuinfo");
-
-                b.HasIndex("AffinityId")
-                    .HasDatabaseName("ix_waifuinfo_affinityid");
-
-                b.HasIndex("ClaimerId")
-                    .HasDatabaseName("ix_waifuinfo_claimerid");
-
-                b.HasIndex("Price")
-                    .HasDatabaseName("ix_waifuinfo_price");
-
-                b.HasIndex("WaifuId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_waifuinfo_waifuid");
-
-                b.ToTable("waifuinfo", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("ItemEmoji")
-                    .HasColumnType("text")
-                    .HasColumnName("itememoji");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<int?>("WaifuInfoId")
-                    .HasColumnType("integer")
-                    .HasColumnName("waifuinfoid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuitem");
-
-                b.HasIndex("WaifuInfoId")
-                    .HasDatabaseName("ix_waifuitem_waifuinfoid");
-
-                b.ToTable("waifuitem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("NewId")
-                    .HasColumnType("integer")
-                    .HasColumnName("newid");
-
-                b.Property<int?>("OldId")
-                    .HasColumnType("integer")
-                    .HasColumnName("oldid");
-
-                b.Property<int>("UpdateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("updatetype");
-
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuupdates");
-
-                b.HasIndex("NewId")
-                    .HasDatabaseName("ix_waifuupdates_newid");
-
-                b.HasIndex("OldId")
-                    .HasDatabaseName("ix_waifuupdates_oldid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_waifuupdates_userid");
-
-                b.ToTable("waifuupdates", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("Forgiven")
-                    .HasColumnType("boolean")
-                    .HasColumnName("forgiven");
-
-                b.Property<string>("ForgivenBy")
-                    .HasColumnType("text")
-                    .HasColumnName("forgivenby");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Moderator")
-                    .HasColumnType("text")
-                    .HasColumnName("moderator");
-
-                b.Property<string>("Reason")
-                    .HasColumnType("text")
-                    .HasColumnName("reason");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("Weight")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(1L)
-                    .HasColumnName("weight");
-
-                b.HasKey("Id")
-                    .HasName("pk_warnings");
-
-                b.HasIndex("DateAdded")
-                    .HasDatabaseName("ix_warnings_dateadded");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_warnings_guildid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_warnings_userid");
-
-                b.ToTable("warnings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Count")
-                    .HasColumnType("integer")
-                    .HasColumnName("count");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Punishment")
-                    .HasColumnType("integer")
-                    .HasColumnName("punishment");
-
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("Time")
-                    .HasColumnType("integer")
-                    .HasColumnName("time");
-
-                b.HasKey("Id")
-                    .HasName("pk_warningpunishment");
-
-                b.HasAlternateKey("GuildId", "Count")
-                    .HasName("ak_warningpunishment_guildid_count");
-
-                b.ToTable("warningpunishment", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Amount")
-                    .HasColumnType("integer")
-                    .HasColumnName("amount");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("Level")
-                    .HasColumnType("integer")
-                    .HasColumnName("level");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("xpsettingsid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpcurrencyreward");
-
-                b.HasIndex("XpSettingsId")
-                    .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");
-
-                b.HasIndex("Level", "XpSettingsId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpcurrencyreward_level_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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpsettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpsettings_guildid");
-
-                b.ToTable("xpsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsUsing")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isusing");
-
-                b.Property<string>("ItemKey")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("itemkey");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpshopowneditem");
-
-                b.HasIndex("UserId", "ItemType", "ItemKey")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");
-
-                b.ToTable("xpshopowneditem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Count")
-                    .HasColumnType("integer")
-                    .HasColumnName("count");
-
-                b.Property<int>("FishId")
-                    .HasColumnType("integer")
-                    .HasColumnName("fishid");
-
-                b.Property<int>("MaxStars")
-                    .HasColumnType("integer")
-                    .HasColumnName("maxstars");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_fishcatch");
-
-                b.HasAlternateKey("UserId", "FishId")
-                    .HasName("ak_fishcatch_userid_fishid");
-
-                b.ToTable("fishcatch", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("Bait")
-                    .HasColumnType("integer")
-                    .HasColumnName("bait");
-
-                b.Property<int?>("Pole")
-                    .HasColumnType("integer")
-                    .HasColumnName("pole");
-
-                b.Property<int>("Skill")
-                    .HasColumnType("integer")
-                    .HasColumnName("skill");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_userfishstats");
-
-                b.HasIndex("UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userfishstats_userid");
-
-                b.ToTable("userfishstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
-            {
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("GuildId", "UserId", "RoleId")
-                    .HasName("pk_userrole");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_userrole_guildid");
-
-                b.HasIndex("GuildId", "UserId")
-                    .HasDatabaseName("ix_userrole_guildid_userid");
-
-                b.ToTable("userrole", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", 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<float>("Cooldown")
-                    .HasColumnType("real")
-                    .HasColumnName("cooldown");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("ratetype");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xpamount");
-
-                b.HasKey("Id")
-                    .HasName("pk_channelxpconfig");
-
-                b.HasAlternateKey("GuildId", "ChannelId", "RateType")
-                    .HasName("ak_channelxpconfig_guildid_channelid_ratetype");
-
-                b.ToTable("channelxpconfig", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<float>("Cooldown")
-                    .HasColumnType("real")
-                    .HasColumnName("cooldown");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("ratetype");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xpamount");
-
-                b.Property<string>("XpTemplateUrl")
-                    .HasColumnType("text")
-                    .HasColumnName("xptemplateurl");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildxpconfig");
-
-                b.HasAlternateKey("GuildId", "RateType")
-                    .HasName("ak_guildxpconfig_guildid_ratetype");
-
-                b.ToTable("guildxpconfig", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("AutoDeleteTimer")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(0)
-                    .HasColumnName("autodeletetimer");
-
-                b.Property<decimal?>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<int>("GreetType")
-                    .HasColumnType("integer")
-                    .HasColumnName("greettype");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsEnabled")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(false)
-                    .HasColumnName("isenabled");
-
-                b.Property<string>("MessageText")
-                    .HasColumnType("text")
-                    .HasColumnName("messagetext");
-
-                b.HasKey("Id")
-                    .HasName("pk_greetsettings");
-
-                b.HasIndex("GuildId", "GreetType")
-                    .IsUnique()
-                    .HasDatabaseName("ix_greetsettings_guildid_greettype");
-
-                b.ToTable("greetsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
-            {
-                b.Property<decimal>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<decimal>("Amount")
-                    .HasColumnType("numeric")
-                    .HasColumnName("amount");
-
-                b.HasKey("UserId")
-                    .HasName("pk_rakeback");
-
-                b.ToTable("rakeback", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Game")
-                    .HasColumnType("integer")
-                    .HasColumnName("game");
-
-                b.Property<long>("LoseCount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("losecount");
-
-                b.Property<long>("MaxBet")
-                    .HasColumnType("bigint")
-                    .HasColumnName("maxbet");
-
-                b.Property<long>("MaxWin")
-                    .HasColumnType("bigint")
-                    .HasColumnName("maxwin");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("numeric")
-                    .HasColumnName("paidout");
-
-                b.Property<decimal>("TotalBet")
-                    .HasColumnType("numeric")
-                    .HasColumnName("totalbet");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("WinCount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("wincount");
-
-                b.HasKey("Id")
-                    .HasName("pk_userbetstats");
-
-                b.HasIndex("MaxWin")
-                    .HasDatabaseName("ix_userbetstats_maxwin");
-
-                b.HasIndex("UserId", "Game")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userbetstats_userid_game");
-
-                b.ToTable("userbetstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.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.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.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.FilterChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterInvitesChannelIds")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterLinksChannelIds")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterWordsChannelIds")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilteredWords")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
-                    .WithMany("Participants")
-                    .HasForeignKey("GiveawayId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
-                    .WithMany("LogIgnores")
-                    .HasForeignKey("LogSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");
-
-                b.Navigation("LogSetting");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("Permissions")
-                    .HasForeignKey("GuildConfigId")
-                    .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
-                    .WithMany("Songs")
-                    .HasForeignKey("MusicPlaylistId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.SarGroup", null)
-                    .WithMany("Roles")
-                    .HasForeignKey("SarGroupId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_sar_sargroup_sargroupid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.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.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.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.WaifuInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
-                    .WithMany()
-                    .HasForeignKey("AffinityId")
-                    .HasConstraintName("fk_waifuinfo_discorduser_affinityid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
-                    .WithMany()
-                    .HasForeignKey("ClaimerId")
-                    .HasConstraintName("fk_waifuinfo_discorduser_claimerid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_waifuinfo_discorduser_waifuid");
-
-                b.Navigation("Affinity");
-
-                b.Navigation("Claimer");
-
-                b.Navigation("Waifu");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
-                    .WithMany("Items")
-                    .HasForeignKey("WaifuInfoId")
-                    .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");
-
-                b.Navigation("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
-                    .WithMany()
-                    .HasForeignKey("NewId")
-                    .HasConstraintName("fk_waifuupdates_discorduser_newid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
-                    .WithMany()
-                    .HasForeignKey("OldId")
-                    .HasConstraintName("fk_waifuupdates_discorduser_oldid");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_waifuupdates_discorduser_userid");
-
-                b.Navigation("New");
-
-                b.Navigation("Old");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("CurrencyRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("RoleRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");
-            });
-
-            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("Permissions");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b =>
-            {
-                b.Navigation("FilterInvitesChannelIds");
-
-                b.Navigation("FilterLinksChannelIds");
-
-                b.Navigation("FilterWordsChannelIds");
-
-                b.Navigation("FilteredWords");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Navigation("LogIgnores");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Navigation("Songs");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Navigation("Roles");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Navigation("Items");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Navigation("Blacklist");
-
-                b.Navigation("Whitelist");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Navigation("Items");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Navigation("CurrencyRewards");
-
-                b.Navigation("RoleRewards");
-            });
-#pragma warning restore 612, 618
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql b/src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql
new file mode 100644
index 0000000..4ff718e
--- /dev/null
+++ b/src/EllieBot/Migrations/PostgreSql/20250317063129_scheduled-commands.sql
@@ -0,0 +1,23 @@
+START TRANSACTION;
+CREATE TABLE scheduledcommand (
+    id integer GENERATED BY DEFAULT AS IDENTITY,
+    userid numeric(20,0) NOT NULL,
+    channelid numeric(20,0) NOT NULL,
+    guildid numeric(20,0) NOT NULL,
+    messageid numeric(20,0) NOT NULL,
+    text text NOT NULL,
+    "when" timestamp without time zone NOT NULL,
+    CONSTRAINT pk_scheduledcommand PRIMARY KEY (id)
+);
+
+CREATE INDEX ix_scheduledcommand_guildid ON scheduledcommand (guildid);
+
+CREATE INDEX ix_scheduledcommand_userid ON scheduledcommand (userid);
+
+CREATE INDEX ix_scheduledcommand_when ON scheduledcommand ("when");
+
+INSERT INTO "__EFMigrationsHistory" (migrationid, productversion)
+VALUES ('20250317063129_scheduled-commands', '9.0.1');
+
+COMMIT;
+
diff --git a/src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs
new file mode 100644
index 0000000..b95382f
--- /dev/null
+++ b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.Designer.cs
@@ -0,0 +1,4086 @@
+// <auto-generated />
+using System;
+using EllieBot.Db;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
+
+#nullable disable
+
+namespace EllieBot.Migrations.PostgreSql
+{
+    [DbContext(typeof(PostgreSqlContext))]
+    [Migration("20250317063309_init")]
+    partial class init
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder
+                .HasAnnotation("ProductVersion", "9.0.1")
+                .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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antialtsetting_guildid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antiraidsetting_guildid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antispamsetting_guildid");
+
+                    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.ButtonRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ButtonId")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("character varying(200)")
+                        .HasColumnName("buttonid");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<string>("Emote")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("emote");
+
+                    b.Property<bool>("Exclusive")
+                        .HasColumnType("boolean")
+                        .HasColumnName("exclusive");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Label")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("character varying(50)")
+                        .HasColumnName("label");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("integer")
+                        .HasColumnName("position");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_buttonrole");
+
+                    b.HasAlternateKey("RoleId", "MessageId")
+                        .HasName("ak_buttonrole_roleid_messageid");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_buttonrole_guildid");
+
+                    b.ToTable("buttonrole", (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<string>("BannerUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("bannerurl");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Mapping")
+                        .HasColumnType("text")
+                        .HasColumnName("mapping");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
+
+                    b.HasKey("Id")
+                        .HasName("pk_commandalias");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_commandalias_guildid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
+
+                    b.HasKey("Id")
+                        .HasName("pk_commandcooldown");
+
+                    b.HasIndex("GuildId", "CommandName")
+                        .IsUnique()
+                        .HasDatabaseName("ix_commandcooldown_guildid_commandname");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("State")
+                        .HasColumnType("boolean")
+                        .HasColumnName("state");
+
+                    b.HasKey("Id")
+                        .HasName("pk_delmsgoncmdchannel");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid");
+
+                    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<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isclubadmin");
+
+                    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.HasIndex("Username")
+                        .HasDatabaseName("ix_discorduser_username");
+
+                    b.ToTable("discorduser", (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.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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<string>("Url")
+                        .HasColumnType("text")
+                        .HasColumnName("url");
+
+                    b.HasKey("Id")
+                        .HasName("pk_feedsub");
+
+                    b.HasIndex("GuildId", "Url")
+                        .IsUnique()
+                        .HasDatabaseName("ix_feedsub_guildid_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<int?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterchannelid");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filterchannelid_guildfilterconfigid");
+
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterlinkschannelid");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid");
+
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterwordschannelid");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid");
+
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.Property<string>("Word")
+                        .HasColumnType("text")
+                        .HasColumnName("word");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filteredword");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filteredword_guildfilterconfigid");
+
+                    b.ToTable("filteredword", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_flagtranslatechannel");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");
+
+                    b.ToTable("flagtranslatechannel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<string>("PrettyName")
+                        .HasColumnType("text")
+                        .HasColumnName("prettyname");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_followedstream");
+
+                    b.HasIndex("GuildId", "Username", "Type")
+                        .HasDatabaseName("ix_followedstream_guildid_username_type");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_gcchannelid");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_gcchannelid_guildid_channelid");
+
+                    b.ToTable("gcchannelid", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("Bet")
+                        .HasColumnType("numeric")
+                        .HasColumnName("bet");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Feature")
+                        .HasColumnType("text")
+                        .HasColumnName("feature");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("numeric")
+                        .HasColumnName("paidout");
+
+                    b.HasKey("Id")
+                        .HasName("pk_gamblingstats");
+
+                    b.HasIndex("Feature")
+                        .IsUnique()
+                        .HasDatabaseName("ix_gamblingstats_feature");
+
+                    b.ToTable("gamblingstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("endsat");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_giveawaymodel");
+
+                    b.ToTable("giveawaymodel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("integer")
+                        .HasColumnName("giveawayid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_giveawayuser");
+
+                    b.HasIndex("GiveawayId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_giveawayuser_giveawayid_userid");
+
+                    b.ToTable("giveawayuser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ErrorColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("errorcolor");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("OkColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("okcolor");
+
+                    b.Property<string>("PendingColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("pendingcolor");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildcolors");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_guildcolors_guildid");
+
+                    b.ToTable("guildcolors", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("text")
+                        .HasColumnName("autoassignroleids");
+
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("cleverbotenabled");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("boolean")
+                        .HasColumnName("deletemessageoncommand");
+
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("deletestreamonlinemessage");
+
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("boolean")
+                        .HasColumnName("disableglobalexpressions");
+
+                    b.Property<decimal?>("GameVoiceChannel")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("gamevoicechannel");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Locale")
+                        .HasColumnType("text")
+                        .HasColumnName("locale");
+
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("text")
+                        .HasColumnName("muterolename");
+
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("boolean")
+                        .HasColumnName("notifystreamoffline");
+
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("text")
+                        .HasColumnName("permissionrole");
+
+                    b.Property<string>("Prefix")
+                        .HasColumnType("text")
+                        .HasColumnName("prefix");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("boolean")
+                        .HasColumnName("stickyroles");
+
+                    b.Property<string>("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.GuildFilterConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    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>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildfilterconfig");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_guildfilterconfig_guildid");
+
+                    b.ToTable("guildfilterconfig", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
+                {
+                    b.Property<decimal>("GuildId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.HasKey("GuildId")
+                        .HasName("pk_honeypotchannels");
+
+                    b.ToTable("honeypotchannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<decimal>("LogItemId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logitemid");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("integer")
+                        .HasColumnName("logsettingid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_ignoredlogchannels");
+
+                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
+                        .IsUnique()
+                        .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");
+
+                    b.ToTable("ignoredlogchannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_imageonlychannels");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_imageonlychannels_channelid");
+
+                    b.ToTable("imageonlychannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal?>("ChannelCreatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelcreatedid");
+
+                    b.Property<decimal?>("ChannelDestroyedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channeldestroyedid");
+
+                    b.Property<decimal?>("ChannelUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelupdatedid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal?>("LogOtherId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logotherid");
+
+                    b.Property<decimal?>("LogUserPresenceId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("loguserpresenceid");
+
+                    b.Property<decimal?>("LogVoicePresenceId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logvoicepresenceid");
+
+                    b.Property<decimal?>("LogVoicePresenceTTSId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logvoicepresencettsid");
+
+                    b.Property<decimal?>("LogWarnsId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logwarnsid");
+
+                    b.Property<decimal?>("MessageDeletedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messagedeletedid");
+
+                    b.Property<decimal?>("MessageUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageupdatedid");
+
+                    b.Property<decimal?>("ThreadCreatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("threadcreatedid");
+
+                    b.Property<decimal?>("ThreadDeletedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("threaddeletedid");
+
+                    b.Property<decimal?>("UserBannedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userbannedid");
+
+                    b.Property<decimal?>("UserJoinedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userjoinedid");
+
+                    b.Property<decimal?>("UserLeftId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userleftid");
+
+                    b.Property<decimal?>("UserMutedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("usermutedid");
+
+                    b.Property<decimal?>("UserUnbannedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userunbannedid");
+
+                    b.Property<decimal?>("UserUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userupdatedid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_logsettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_logsettings_guildid");
+
+                    b.ToTable("logsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodisconnect");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autoplay");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal?>("MusicChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("musicchannelid");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("integer")
+                        .HasColumnName("playerrepeat");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("integer")
+                        .HasColumnName("qualitypreset");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(100)
+                        .HasColumnName("volume");
+
+                    b.HasKey("Id")
+                        .HasName("pk_musicplayersettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_musicplayersettings_guildid");
+
+                    b.ToTable("musicplayersettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Author")
+                        .HasColumnType("text")
+                        .HasColumnName("author");
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.HasKey("Id")
+                        .HasName("pk_musicplaylists");
+
+                    b.ToTable("musicplaylists", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_muteduserid");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_muteduserid_guildid_userid");
+
+                    b.ToTable("muteduserid", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Color")
+                        .HasColumnType("bigint")
+                        .HasColumnName("color");
+
+                    b.Property<decimal>("OwnerId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("ownerid");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("integer")
+                        .HasColumnName("position");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("character varying(256)")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_ncpixel");
+
+                    b.HasAlternateKey("Position")
+                        .HasName("ak_ncpixel_position");
+
+                    b.HasIndex("OwnerId")
+                        .HasDatabaseName("ix_ncpixel_ownerid");
+
+                    b.ToTable("ncpixel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal?>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .IsRequired()
+                        .HasMaxLength(10000)
+                        .HasColumnType("character varying(10000)")
+                        .HasColumnName("message");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_notify");
+
+                    b.HasAlternateKey("GuildId", "Type")
+                        .HasName("ak_notify_guildid_type");
+
+                    b.ToTable("notify", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<decimal>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("integer")
+                        .HasColumnName("amountcents");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("lastcharge");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("text")
+                        .HasColumnName("uniqueplatformuserid");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("validthru");
+
+                    b.HasKey("UserId")
+                        .HasName("pk_patrons");
+
+                    b.HasIndex("UniquePlatformUserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_patrons_uniqueplatformuserid");
+
+                    b.ToTable("patrons", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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.HasIndex("GuildId")
+                        .HasDatabaseName("ix_permissions_guildid");
+
+                    b.ToTable("permissions", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("text")
+                        .HasColumnName("password");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_plantedcurrency");
+
+                    b.HasIndex("ChannelId")
+                        .HasDatabaseName("ix_plantedcurrency_channelid");
+
+                    b.HasIndex("MessageId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_plantedcurrency_messageid");
+
+                    b.ToTable("plantedcurrency", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("integer")
+                        .HasColumnName("musicplaylistid");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("text")
+                        .HasColumnName("provider");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("integer")
+                        .HasColumnName("providertype");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("text")
+                        .HasColumnName("query");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("text")
+                        .HasColumnName("title");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("text")
+                        .HasColumnName("uri");
+
+                    b.HasKey("Id")
+                        .HasName("pk_playlistsong");
+
+                    b.HasIndex("MusicPlaylistId")
+                        .HasDatabaseName("ix_playlistsong_musicplaylistid");
+
+                    b.ToTable("playlistsong", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("authorname");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("keyword");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_quotes");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_quotes_guildid");
+
+                    b.HasIndex("Keyword")
+                        .HasDatabaseName("ix_quotes_keyword");
+
+                    b.ToTable("quotes", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("emote");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("integer")
+                        .HasColumnName("group");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelreq");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_reactionroles");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_reactionroles_guildid");
+
+                    b.HasIndex("MessageId", "Emote")
+                        .IsUnique()
+                        .HasDatabaseName("ix_reactionroles_messageid_emote");
+
+                    b.ToTable("reactionroles", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isprivate");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<decimal>("ServerId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("serverid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("when");
+
+                    b.HasKey("Id")
+                        .HasName("pk_reminders");
+
+                    b.HasIndex("When")
+                        .HasDatabaseName("ix_reminders_when");
+
+                    b.ToTable("reminders", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("interval")
+                        .HasColumnName("interval");
+
+                    b.Property<decimal?>("LastMessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("lastmessageid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("boolean")
+                        .HasColumnName("noredundant");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("interval")
+                        .HasColumnName("starttimeofday");
+
+                    b.HasKey("Id")
+                        .HasName("pk_repeaters");
+
+                    b.ToTable("repeaters", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amountrewardedthismonth");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("lastreward");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("text")
+                        .HasColumnName("platformuserid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rewardedusers");
+
+                    b.HasIndex("PlatformUserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_rewardedusers_platformuserid");
+
+                    b.ToTable("rewardedusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("text")
+                        .HasColumnName("status");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rotatingstatus");
+
+                    b.ToTable("rotatingstatus", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelreq");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("SarGroupId")
+                        .HasColumnType("integer")
+                        .HasColumnName("sargroupid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sar");
+
+                    b.HasAlternateKey("GuildId", "RoleId")
+                        .HasName("ak_sar_guildid_roleid");
+
+                    b.HasIndex("SarGroupId")
+                        .HasDatabaseName("ix_sar_sargroupid");
+
+                    b.ToTable("sar", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsEnabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isenabled");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sarautodelete");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_sarautodelete_guildid");
+
+                    b.ToTable("sarautodelete", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GroupNumber")
+                        .HasColumnType("integer")
+                        .HasColumnName("groupnumber");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsExclusive")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isexclusive");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("name");
+
+                    b.Property<decimal?>("RoleReq")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("rolereq");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sargroup");
+
+                    b.HasAlternateKey("GuildId", "GroupNumber")
+                        .HasName("ak_sargroup_guildid_groupnumber");
+
+                    b.ToTable("sargroup", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("text")
+                        .HasColumnName("command");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "Index")
+                        .IsUnique()
+                        .HasDatabaseName("ix_shopentry_guildid_index");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_slowmodeignoredrole");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_slowmodeignoreduser");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("text")
+                        .HasColumnName("keyword");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamrolesettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_streamrolesettings_guildid");
+
+                    b.ToTable("streamrolesettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamrolewhitelisteduser");
+
+                    b.HasIndex("StreamRoleSettingsId")
+                        .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");
+
+                    b.ToTable("streamrolewhitelisteduser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("expiresat");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("boolean")
+                        .HasColumnName("remove");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_temprole");
+
+                    b.HasAlternateKey("GuildId", "UserId", "RoleId")
+                        .HasName("ak_temprole_guildid_userid_roleid");
+
+                    b.HasIndex("ExpiresAt")
+                        .HasDatabaseName("ix_temprole_expiresat");
+
+                    b.ToTable("temprole", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("integer")
+                        .HasColumnName("archiveid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isdone");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("text")
+                        .HasColumnName("todo");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_todos");
+
+                    b.HasIndex("ArchiveId")
+                        .HasDatabaseName("ix_todos_archiveid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_todos_userid");
+
+                    b.ToTable("todos", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_unbantimer_guildid_userid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_unmutetimer_guildid_userid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_unroletimer_guildid_userid");
+
+                    b.ToTable("unroletimer", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xp");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userxpstats");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_userxpstats_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_userxpstats_userid");
+
+                    b.HasIndex("Xp")
+                        .HasDatabaseName("ix_userxpstats_xp");
+
+                    b.HasIndex("UserId", "GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userxpstats_userid_guildid");
+
+                    b.ToTable("userxpstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "VoiceChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid");
+
+                    b.ToTable("vcroleinfo", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("integer")
+                        .HasColumnName("affinityid");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("integer")
+                        .HasColumnName("claimerid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("integer")
+                        .HasColumnName("waifuid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuinfo");
+
+                    b.HasIndex("AffinityId")
+                        .HasDatabaseName("ix_waifuinfo_affinityid");
+
+                    b.HasIndex("ClaimerId")
+                        .HasDatabaseName("ix_waifuinfo_claimerid");
+
+                    b.HasIndex("Price")
+                        .HasDatabaseName("ix_waifuinfo_price");
+
+                    b.HasIndex("WaifuId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_waifuinfo_waifuid");
+
+                    b.ToTable("waifuinfo", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("text")
+                        .HasColumnName("itememoji");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("integer")
+                        .HasColumnName("waifuinfoid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuitem");
+
+                    b.HasIndex("WaifuInfoId")
+                        .HasDatabaseName("ix_waifuitem_waifuinfoid");
+
+                    b.ToTable("waifuitem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("integer")
+                        .HasColumnName("newid");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("integer")
+                        .HasColumnName("oldid");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("updatetype");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuupdates");
+
+                    b.HasIndex("NewId")
+                        .HasDatabaseName("ix_waifuupdates_newid");
+
+                    b.HasIndex("OldId")
+                        .HasDatabaseName("ix_waifuupdates_oldid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_waifuupdates_userid");
+
+                    b.ToTable("waifuupdates", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("boolean")
+                        .HasColumnName("forgiven");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("text")
+                        .HasColumnName("forgivenby");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("text")
+                        .HasColumnName("moderator");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("text")
+                        .HasColumnName("reason");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Weight")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(1L)
+                        .HasColumnName("weight");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warnings");
+
+                    b.HasIndex("DateAdded")
+                        .HasDatabaseName("ix_warnings_dateadded");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_warnings_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_warnings_userid");
+
+                    b.ToTable("warnings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("integer")
+                        .HasColumnName("count");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("integer")
+                        .HasColumnName("punishment");
+
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("integer")
+                        .HasColumnName("time");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warningpunishment");
+
+                    b.HasAlternateKey("GuildId", "Count")
+                        .HasName("ak_warningpunishment_guildid_count");
+
+                    b.ToTable("warningpunishment", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("integer")
+                        .HasColumnName("amount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("integer")
+                        .HasColumnName("level");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("xpsettingsid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpcurrencyreward");
+
+                    b.HasIndex("XpSettingsId")
+                        .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");
+
+                    b.HasIndex("Level", "XpSettingsId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpcurrencyreward_level_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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpsettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpsettings_guildid");
+
+                    b.ToTable("xpsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isusing");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("itemkey");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpshopowneditem");
+
+                    b.HasIndex("UserId", "ItemType", "ItemKey")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");
+
+                    b.ToTable("xpshopowneditem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("integer")
+                        .HasColumnName("count");
+
+                    b.Property<int>("FishId")
+                        .HasColumnType("integer")
+                        .HasColumnName("fishid");
+
+                    b.Property<int>("MaxStars")
+                        .HasColumnType("integer")
+                        .HasColumnName("maxstars");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_fishcatch");
+
+                    b.HasAlternateKey("UserId", "FishId")
+                        .HasName("ak_fishcatch_userid_fishid");
+
+                    b.ToTable("fishcatch", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("Bait")
+                        .HasColumnType("integer")
+                        .HasColumnName("bait");
+
+                    b.Property<int?>("Pole")
+                        .HasColumnType("integer")
+                        .HasColumnName("pole");
+
+                    b.Property<int>("Skill")
+                        .HasColumnType("integer")
+                        .HasColumnName("skill");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userfishstats");
+
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userfishstats_userid");
+
+                    b.ToTable("userfishstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    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_scheduledcommand");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_scheduledcommand_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_scheduledcommand_userid");
+
+                    b.HasIndex("When")
+                        .HasDatabaseName("ix_scheduledcommand_when");
+
+                    b.ToTable("scheduledcommand", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
+                {
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("GuildId", "UserId", "RoleId")
+                        .HasName("pk_userrole");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_userrole_guildid");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .HasDatabaseName("ix_userrole_guildid_userid");
+
+                    b.ToTable("userrole", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", 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<float>("Cooldown")
+                        .HasColumnType("real")
+                        .HasColumnName("cooldown");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("ratetype");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xpamount");
+
+                    b.HasKey("Id")
+                        .HasName("pk_channelxpconfig");
+
+                    b.HasAlternateKey("GuildId", "ChannelId", "RateType")
+                        .HasName("ak_channelxpconfig_guildid_channelid_ratetype");
+
+                    b.ToTable("channelxpconfig", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<float>("Cooldown")
+                        .HasColumnType("real")
+                        .HasColumnName("cooldown");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("ratetype");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xpamount");
+
+                    b.Property<string>("XpTemplateUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("xptemplateurl");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildxpconfig");
+
+                    b.HasAlternateKey("GuildId", "RateType")
+                        .HasName("ak_guildxpconfig_guildid_ratetype");
+
+                    b.ToTable("guildxpconfig", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("AutoDeleteTimer")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(0)
+                        .HasColumnName("autodeletetimer");
+
+                    b.Property<decimal?>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<int>("GreetType")
+                        .HasColumnType("integer")
+                        .HasColumnName("greettype");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsEnabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isenabled");
+
+                    b.Property<string>("MessageText")
+                        .HasColumnType("text")
+                        .HasColumnName("messagetext");
+
+                    b.HasKey("Id")
+                        .HasName("pk_greetsettings");
+
+                    b.HasIndex("GuildId", "GreetType")
+                        .IsUnique()
+                        .HasDatabaseName("ix_greetsettings_guildid_greettype");
+
+                    b.ToTable("greetsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
+                {
+                    b.Property<decimal>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("numeric")
+                        .HasColumnName("amount");
+
+                    b.HasKey("UserId")
+                        .HasName("pk_rakeback");
+
+                    b.ToTable("rakeback", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Game")
+                        .HasColumnType("integer")
+                        .HasColumnName("game");
+
+                    b.Property<long>("LoseCount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("losecount");
+
+                    b.Property<long>("MaxBet")
+                        .HasColumnType("bigint")
+                        .HasColumnName("maxbet");
+
+                    b.Property<long>("MaxWin")
+                        .HasColumnType("bigint")
+                        .HasColumnName("maxwin");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("numeric")
+                        .HasColumnName("paidout");
+
+                    b.Property<decimal>("TotalBet")
+                        .HasColumnType("numeric")
+                        .HasColumnName("totalbet");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("WinCount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("wincount");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userbetstats");
+
+                    b.HasIndex("MaxWin")
+                        .HasDatabaseName("ix_userbetstats_maxwin");
+
+                    b.HasIndex("UserId", "Game")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userbetstats_userid_game");
+
+                    b.ToTable("userbetstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.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.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.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.FilterChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterInvitesChannelIds")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterLinksChannelIds")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterWordsChannelIds")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilteredWords")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
+                        .WithMany("Participants")
+                        .HasForeignKey("GiveawayId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
+                        .WithMany("LogIgnores")
+                        .HasForeignKey("LogSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");
+
+                    b.Navigation("LogSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("Permissions")
+                        .HasForeignKey("GuildConfigId")
+                        .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
+                        .WithMany("Songs")
+                        .HasForeignKey("MusicPlaylistId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
+                        .WithMany("Roles")
+                        .HasForeignKey("SarGroupId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_sar_sargroup_sargroupid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.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.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.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.WaifuInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
+                        .WithMany()
+                        .HasForeignKey("AffinityId")
+                        .HasConstraintName("fk_waifuinfo_discorduser_affinityid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
+                        .WithMany()
+                        .HasForeignKey("ClaimerId")
+                        .HasConstraintName("fk_waifuinfo_discorduser_claimerid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_waifuinfo_discorduser_waifuid");
+
+                    b.Navigation("Affinity");
+
+                    b.Navigation("Claimer");
+
+                    b.Navigation("Waifu");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
+                        .WithMany("Items")
+                        .HasForeignKey("WaifuInfoId")
+                        .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");
+
+                    b.Navigation("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
+                        .WithMany()
+                        .HasForeignKey("NewId")
+                        .HasConstraintName("fk_waifuupdates_discorduser_newid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
+                        .WithMany()
+                        .HasForeignKey("OldId")
+                        .HasConstraintName("fk_waifuupdates_discorduser_oldid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_waifuupdates_discorduser_userid");
+
+                    b.Navigation("New");
+
+                    b.Navigation("Old");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("CurrencyRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("RoleRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");
+                });
+
+            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("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b =>
+                {
+                    b.Navigation("FilterInvitesChannelIds");
+
+                    b.Navigation("FilterLinksChannelIds");
+
+                    b.Navigation("FilterWordsChannelIds");
+
+                    b.Navigation("FilteredWords");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Navigation("LogIgnores");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Navigation("Songs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Navigation("Roles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.Navigation("Blacklist");
+
+                    b.Navigation("Whitelist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.Navigation("CurrencyRewards");
+
+                    b.Navigation("RoleRewards");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.cs b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.cs
similarity index 98%
rename from src/EllieBot/Migrations/PostgreSql/20250315225539_init.cs
rename to src/EllieBot/Migrations/PostgreSql/20250317063309_init.cs
index 3e0f8d2..d1ca439 100644
--- a/src/EllieBot/Migrations/PostgreSql/20250315225539_init.cs
+++ b/src/EllieBot/Migrations/PostgreSql/20250317063309_init.cs
@@ -855,6 +855,24 @@ namespace EllieBot.Migrations.PostgreSql
                     table.UniqueConstraint("ak_sargroup_guildid_groupnumber", x => new { x.guildid, x.groupnumber });
                 });
 
+            migrationBuilder.CreateTable(
+                name: "scheduledcommand",
+                columns: table => new
+                {
+                    id = table.Column<int>(type: "integer", nullable: false)
+                        .Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
+                    userid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
+                    channelid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
+                    guildid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
+                    messageid = table.Column<decimal>(type: "numeric(20,0)", nullable: false),
+                    text = table.Column<string>(type: "text", nullable: false),
+                    when = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("pk_scheduledcommand", x => x.id);
+                });
+
             migrationBuilder.CreateTable(
                 name: "shopentry",
                 columns: table => new
@@ -2048,6 +2066,21 @@ namespace EllieBot.Migrations.PostgreSql
                 column: "guildid",
                 unique: true);
 
+            migrationBuilder.CreateIndex(
+                name: "ix_scheduledcommand_guildid",
+                table: "scheduledcommand",
+                column: "guildid");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_scheduledcommand_userid",
+                table: "scheduledcommand",
+                column: "userid");
+
+            migrationBuilder.CreateIndex(
+                name: "ix_scheduledcommand_when",
+                table: "scheduledcommand",
+                column: "when");
+
             migrationBuilder.CreateIndex(
                 name: "ix_shopentry_guildid_index",
                 table: "shopentry",
@@ -2472,6 +2505,9 @@ namespace EllieBot.Migrations.PostgreSql
             migrationBuilder.DropTable(
                 name: "sarautodelete");
 
+            migrationBuilder.DropTable(
+                name: "scheduledcommand");
+
             migrationBuilder.DropTable(
                 name: "shopentryitem");
 
@@ -2590,4 +2626,4 @@ namespace EllieBot.Migrations.PostgreSql
                 name: "discorduser");
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
index fc8795f..36d701a 100644
--- a/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/PostgreSql/PostgreSqlContextModelSnapshot.cs
@@ -23,4012 +23,4061 @@ namespace EllieBot.Migrations.PostgreSql
             NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("Action")
-                    .HasColumnType("integer")
-                    .HasColumnName("action");
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
 
-                b.Property<int>("ActionDurationMinutes")
-                    .HasColumnType("integer")
-                    .HasColumnName("actiondurationminutes");
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("integer")
+                        .HasColumnName("actiondurationminutes");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<TimeSpan>("MinAge")
-                    .HasColumnType("interval")
-                    .HasColumnName("minage");
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("interval")
+                        .HasColumnName("minage");
 
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
 
-                b.HasKey("Id")
-                    .HasName("pk_antialtsetting");
+                    b.HasKey("Id")
+                        .HasName("pk_antialtsetting");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antialtsetting_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antialtsetting_guildid");
 
-                b.ToTable("antialtsetting", (string)null);
-            });
+                    b.ToTable("antialtsetting", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("Action")
-                    .HasColumnType("integer")
-                    .HasColumnName("action");
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<int>("PunishDuration")
-                    .HasColumnType("integer")
-                    .HasColumnName("punishduration");
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("integer")
+                        .HasColumnName("punishduration");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("integer")
-                    .HasColumnName("seconds");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
 
-                b.Property<int>("UserThreshold")
-                    .HasColumnType("integer")
-                    .HasColumnName("userthreshold");
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("integer")
+                        .HasColumnName("userthreshold");
 
-                b.HasKey("Id")
-                    .HasName("pk_antiraidsetting");
+                    b.HasKey("Id")
+                        .HasName("pk_antiraidsetting");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antiraidsetting_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antiraidsetting_guildid");
 
-                b.ToTable("antiraidsetting", (string)null);
-            });
+                    b.ToTable("antiraidsetting", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int?>("AntiSpamSettingId")
-                    .HasColumnType("integer")
-                    .HasColumnName("antispamsettingid");
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("integer")
+                        .HasColumnName("antispamsettingid");
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.HasKey("Id")
-                    .HasName("pk_antispamignore");
+                    b.HasKey("Id")
+                        .HasName("pk_antispamignore");
 
-                b.HasIndex("AntiSpamSettingId")
-                    .HasDatabaseName("ix_antispamignore_antispamsettingid");
+                    b.HasIndex("AntiSpamSettingId")
+                        .HasDatabaseName("ix_antispamignore_antispamsettingid");
 
-                b.ToTable("antispamignore", (string)null);
-            });
+                    b.ToTable("antispamignore", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("Action")
-                    .HasColumnType("integer")
-                    .HasColumnName("action");
+                    b.Property<int>("Action")
+                        .HasColumnType("integer")
+                        .HasColumnName("action");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<int>("MessageThreshold")
-                    .HasColumnType("integer")
-                    .HasColumnName("messagethreshold");
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("integer")
+                        .HasColumnName("messagethreshold");
 
-                b.Property<int>("MuteTime")
-                    .HasColumnType("integer")
-                    .HasColumnName("mutetime");
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("integer")
+                        .HasColumnName("mutetime");
 
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
 
-                b.HasKey("Id")
-                    .HasName("pk_antispamsetting");
+                    b.HasKey("Id")
+                        .HasName("pk_antispamsetting");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_antispamsetting_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_antispamsetting_guildid");
 
-                b.ToTable("antispamsetting", (string)null);
-            });
+                    b.ToTable("antispamsetting", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_todosarchive");
+                    b.HasKey("Id")
+                        .HasName("pk_todosarchive");
 
-                b.ToTable("todosarchive", (string)null);
-            });
+                    b.ToTable("todosarchive", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<string>("ChannelName")
-                    .HasColumnType("text")
-                    .HasColumnName("channelname");
+                    b.Property<string>("ChannelName")
+                        .HasColumnType("text")
+                        .HasColumnName("channelname");
 
-                b.Property<string>("CommandText")
-                    .HasColumnType("text")
-                    .HasColumnName("commandtext");
+                    b.Property<string>("CommandText")
+                        .HasColumnType("text")
+                        .HasColumnName("commandtext");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal?>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("GuildName")
-                    .HasColumnType("text")
-                    .HasColumnName("guildname");
+                    b.Property<string>("GuildName")
+                        .HasColumnType("text")
+                        .HasColumnName("guildname");
 
-                b.Property<int>("Interval")
-                    .HasColumnType("integer")
-                    .HasColumnName("interval");
+                    b.Property<int>("Interval")
+                        .HasColumnType("integer")
+                        .HasColumnName("interval");
 
-                b.Property<decimal?>("VoiceChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("voicechannelid");
+                    b.Property<decimal?>("VoiceChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("voicechannelid");
 
-                b.Property<string>("VoiceChannelName")
-                    .HasColumnType("text")
-                    .HasColumnName("voicechannelname");
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("text")
+                        .HasColumnName("voicechannelname");
 
-                b.HasKey("Id")
-                    .HasName("pk_autocommands");
+                    b.HasKey("Id")
+                        .HasName("pk_autocommands");
 
-                b.ToTable("autocommands", (string)null);
-            });
+                    b.ToTable("autocommands", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.HasKey("Id")
-                    .HasName("pk_autopublishchannel");
+                    b.HasKey("Id")
+                        .HasName("pk_autopublishchannel");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_autopublishchannel_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autopublishchannel_guildid");
 
-                b.ToTable("autopublishchannel", (string)null);
-            });
+                    b.ToTable("autopublishchannel", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<bool>("AutoDelete")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodelete");
+                    b.Property<bool>("AutoDelete")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodelete");
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.HasKey("Id")
-                    .HasName("pk_autotranslatechannels");
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslatechannels");
 
-                b.HasIndex("ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_autotranslatechannels_channelid");
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_autotranslatechannels_channelid");
 
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_autotranslatechannels_guildid");
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_autotranslatechannels_guildid");
 
-                b.ToTable("autotranslatechannels", (string)null);
-            });
+                    b.ToTable("autotranslatechannels", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<int>("ChannelId")
-                    .HasColumnType("integer")
-                    .HasColumnName("channelid");
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("integer")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Source")
-                    .HasColumnType("text")
-                    .HasColumnName("source");
+                    b.Property<string>("Source")
+                        .HasColumnType("text")
+                        .HasColumnName("source");
 
-                b.Property<string>("Target")
-                    .HasColumnType("text")
-                    .HasColumnName("target");
+                    b.Property<string>("Target")
+                        .HasColumnType("text")
+                        .HasColumnName("target");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_autotranslateusers");
+                    b.HasKey("Id")
+                        .HasName("pk_autotranslateusers");
 
-                b.HasAlternateKey("ChannelId", "UserId")
-                    .HasName("ak_autotranslateusers_channelid_userid");
+                    b.HasAlternateKey("ChannelId", "UserId")
+                        .HasName("ak_autotranslateusers_channelid_userid");
 
-                b.ToTable("autotranslateusers", (string)null);
-            });
+                    b.ToTable("autotranslateusers", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<int?>("PruneDays")
-                    .HasColumnType("integer")
-                    .HasColumnName("prunedays");
+                    b.Property<int?>("PruneDays")
+                        .HasColumnType("integer")
+                        .HasColumnName("prunedays");
 
-                b.Property<string>("Text")
-                    .HasColumnType("text")
-                    .HasColumnName("text");
+                    b.Property<string>("Text")
+                        .HasColumnType("text")
+                        .HasColumnName("text");
 
-                b.HasKey("Id")
-                    .HasName("pk_bantemplates");
+                    b.HasKey("Id")
+                        .HasName("pk_bantemplates");
 
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_bantemplates_guildid");
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bantemplates_guildid");
 
-                b.ToTable("bantemplates", (string)null);
-            });
+                    b.ToTable("bantemplates", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<long>("Balance")
-                    .HasColumnType("bigint")
-                    .HasColumnName("balance");
+                    b.Property<long>("Balance")
+                        .HasColumnType("bigint")
+                        .HasColumnName("balance");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_bankusers");
+                    b.HasKey("Id")
+                        .HasName("pk_bankusers");
 
-                b.HasIndex("UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_bankusers_userid");
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_bankusers_userid");
 
-                b.ToTable("bankusers", (string)null);
-            });
+                    b.ToTable("bankusers", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("ItemId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("itemid");
+                    b.Property<decimal>("ItemId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("itemid");
 
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
 
-                b.HasKey("Id")
-                    .HasName("pk_blacklist");
+                    b.HasKey("Id")
+                        .HasName("pk_blacklist");
 
-                b.ToTable("blacklist", (string)null);
-            });
+                    b.ToTable("blacklist", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("ButtonId")
-                    .IsRequired()
-                    .HasMaxLength(200)
-                    .HasColumnType("character varying(200)")
-                    .HasColumnName("buttonid");
+                    b.Property<string>("ButtonId")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("character varying(200)")
+                        .HasColumnName("buttonid");
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<string>("Emote")
-                    .IsRequired()
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("emote");
+                    b.Property<string>("Emote")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("emote");
 
-                b.Property<bool>("Exclusive")
-                    .HasColumnType("boolean")
-                    .HasColumnName("exclusive");
+                    b.Property<bool>("Exclusive")
+                        .HasColumnType("boolean")
+                        .HasColumnName("exclusive");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("Label")
-                    .IsRequired()
-                    .HasMaxLength(50)
-                    .HasColumnType("character varying(50)")
-                    .HasColumnName("label");
+                    b.Property<string>("Label")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("character varying(50)")
+                        .HasColumnName("label");
 
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
 
-                b.Property<int>("Position")
-                    .HasColumnType("integer")
-                    .HasColumnName("position");
+                    b.Property<int>("Position")
+                        .HasColumnType("integer")
+                        .HasColumnName("position");
 
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
 
-                b.HasKey("Id")
-                    .HasName("pk_buttonrole");
+                    b.HasKey("Id")
+                        .HasName("pk_buttonrole");
 
-                b.HasAlternateKey("RoleId", "MessageId")
-                    .HasName("ak_buttonrole_roleid_messageid");
+                    b.HasAlternateKey("RoleId", "MessageId")
+                        .HasName("ak_buttonrole_roleid_messageid");
 
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_buttonrole_guildid");
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_buttonrole_guildid");
 
-                b.ToTable("buttonrole", (string)null);
-            });
+                    b.ToTable("buttonrole", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("integer")
-                    .HasColumnName("clubid");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
 
-                b.HasKey("ClubId", "UserId")
-                    .HasName("pk_clubapplicants");
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubapplicants");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_clubapplicants_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubapplicants_userid");
 
-                b.ToTable("clubapplicants", (string)null);
-            });
+                    b.ToTable("clubapplicants", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("integer")
-                    .HasColumnName("clubid");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
 
-                b.HasKey("ClubId", "UserId")
-                    .HasName("pk_clubbans");
+                    b.HasKey("ClubId", "UserId")
+                        .HasName("pk_clubbans");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_clubbans_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_clubbans_userid");
 
-                b.ToTable("clubbans", (string)null);
-            });
+                    b.ToTable("clubbans", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("BannerUrl")
-                    .HasColumnType("text")
-                    .HasColumnName("bannerurl");
+                    b.Property<string>("BannerUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("bannerurl");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Description")
-                    .HasColumnType("text")
-                    .HasColumnName("description");
+                    b.Property<string>("Description")
+                        .HasColumnType("text")
+                        .HasColumnName("description");
 
-                b.Property<string>("ImageUrl")
-                    .HasColumnType("text")
-                    .HasColumnName("imageurl");
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("imageurl");
 
-                b.Property<string>("Name")
-                    .HasMaxLength(20)
-                    .HasColumnType("character varying(20)")
-                    .HasColumnName("name");
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("character varying(20)")
+                        .HasColumnName("name");
 
-                b.Property<int?>("OwnerId")
-                    .HasColumnType("integer")
-                    .HasColumnName("ownerid");
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("integer")
+                        .HasColumnName("ownerid");
 
-                b.Property<int>("Xp")
-                    .HasColumnType("integer")
-                    .HasColumnName("xp");
+                    b.Property<int>("Xp")
+                        .HasColumnType("integer")
+                        .HasColumnName("xp");
 
-                b.HasKey("Id")
-                    .HasName("pk_clubs");
+                    b.HasKey("Id")
+                        .HasName("pk_clubs");
 
-                b.HasIndex("Name")
-                    .IsUnique()
-                    .HasDatabaseName("ix_clubs_name");
+                    b.HasIndex("Name")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_name");
 
-                b.HasIndex("OwnerId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_clubs_ownerid");
+                    b.HasIndex("OwnerId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_clubs_ownerid");
 
-                b.ToTable("clubs", (string)null);
-            });
+                    b.ToTable("clubs", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("Mapping")
-                    .HasColumnType("text")
-                    .HasColumnName("mapping");
+                    b.Property<string>("Mapping")
+                        .HasColumnType("text")
+                        .HasColumnName("mapping");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("text")
-                    .HasColumnName("trigger");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
 
-                b.HasKey("Id")
-                    .HasName("pk_commandalias");
+                    b.HasKey("Id")
+                        .HasName("pk_commandalias");
 
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_commandalias_guildid");
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_commandalias_guildid");
 
-                b.ToTable("commandalias", (string)null);
-            });
+                    b.ToTable("commandalias", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("CommandName")
-                    .HasColumnType("text")
-                    .HasColumnName("commandname");
+                    b.Property<string>("CommandName")
+                        .HasColumnType("text")
+                        .HasColumnName("commandname");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("integer")
-                    .HasColumnName("seconds");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("integer")
+                        .HasColumnName("seconds");
 
-                b.HasKey("Id")
-                    .HasName("pk_commandcooldown");
+                    b.HasKey("Id")
+                        .HasName("pk_commandcooldown");
 
-                b.HasIndex("GuildId", "CommandName")
-                    .IsUnique()
-                    .HasDatabaseName("ix_commandcooldown_guildid_commandname");
+                    b.HasIndex("GuildId", "CommandName")
+                        .IsUnique()
+                        .HasDatabaseName("ix_commandcooldown_guildid_commandname");
 
-                b.ToTable("commandcooldown", (string)null);
-            });
+                    b.ToTable("commandcooldown", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<long>("Amount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amount");
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Extra")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("extra");
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("extra");
 
-                b.Property<string>("Note")
-                    .HasColumnType("text")
-                    .HasColumnName("note");
+                    b.Property<string>("Note")
+                        .HasColumnType("text")
+                        .HasColumnName("note");
 
-                b.Property<decimal?>("OtherId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("otherid")
-                    .HasDefaultValueSql("NULL");
+                    b.Property<decimal?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("otherid")
+                        .HasDefaultValueSql("NULL");
 
-                b.Property<string>("Type")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("type");
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("type");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.HasKey("Id")
-                    .HasName("pk_currencytransactions");
+                    b.HasKey("Id")
+                        .HasName("pk_currencytransactions");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_currencytransactions_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_currencytransactions_userid");
 
-                b.ToTable("currencytransactions", (string)null);
-            });
+                    b.ToTable("currencytransactions", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<bool>("State")
-                    .HasColumnType("boolean")
-                    .HasColumnName("state");
+                    b.Property<bool>("State")
+                        .HasColumnType("boolean")
+                        .HasColumnName("state");
 
-                b.HasKey("Id")
-                    .HasName("pk_delmsgoncmdchannel");
+                    b.HasKey("Id")
+                        .HasName("pk_delmsgoncmdchannel");
 
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid");
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_delmsgoncmdchannel_guildid_channelid");
 
-                b.ToTable("delmsgoncmdchannel", (string)null);
-            });
+                    b.ToTable("delmsgoncmdchannel", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("Command")
-                    .HasColumnType("text")
-                    .HasColumnName("command");
+                    b.Property<string>("Command")
+                        .HasColumnType("text")
+                        .HasColumnName("command");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<decimal?>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<decimal>("Perm")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("perm");
+                    b.Property<decimal>("Perm")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("perm");
 
-                b.HasKey("Id")
-                    .HasName("pk_discordpermoverrides");
+                    b.HasKey("Id")
+                        .HasName("pk_discordpermoverrides");
 
-                b.HasIndex("GuildId", "Command")
-                    .IsUnique()
-                    .HasDatabaseName("ix_discordpermoverrides_guildid_command");
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique()
+                        .HasDatabaseName("ix_discordpermoverrides_guildid_command");
 
-                b.ToTable("discordpermoverrides", (string)null);
-            });
+                    b.ToTable("discordpermoverrides", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<string>("AvatarId")
-                    .HasColumnType("text")
-                    .HasColumnName("avatarid");
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("text")
+                        .HasColumnName("avatarid");
 
-                b.Property<int?>("ClubId")
-                    .HasColumnType("integer")
-                    .HasColumnName("clubid");
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("integer")
+                        .HasColumnName("clubid");
 
-                b.Property<long>("CurrencyAmount")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(0L)
-                    .HasColumnName("currencyamount");
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("currencyamount");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<bool>("IsClubAdmin")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(false)
-                    .HasColumnName("isclubadmin");
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isclubadmin");
 
-                b.Property<long>("TotalXp")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(0L)
-                    .HasColumnName("totalxp");
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(0L)
+                        .HasColumnName("totalxp");
 
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
 
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
 
-                b.HasKey("Id")
-                    .HasName("pk_discorduser");
+                    b.HasKey("Id")
+                        .HasName("pk_discorduser");
 
-                b.HasAlternateKey("UserId")
-                    .HasName("ak_discorduser_userid");
+                    b.HasAlternateKey("UserId")
+                        .HasName("ak_discorduser_userid");
 
-                b.HasIndex("ClubId")
-                    .HasDatabaseName("ix_discorduser_clubid");
+                    b.HasIndex("ClubId")
+                        .HasDatabaseName("ix_discorduser_clubid");
 
-                b.HasIndex("CurrencyAmount")
-                    .HasDatabaseName("ix_discorduser_currencyamount");
+                    b.HasIndex("CurrencyAmount")
+                        .HasDatabaseName("ix_discorduser_currencyamount");
 
-                b.HasIndex("TotalXp")
-                    .HasDatabaseName("ix_discorduser_totalxp");
+                    b.HasIndex("TotalXp")
+                        .HasDatabaseName("ix_discorduser_totalxp");
 
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_discorduser_userid");
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_discorduser_userid");
 
-                b.HasIndex("Username")
-                    .HasDatabaseName("ix_discorduser_username");
+                    b.HasIndex("Username")
+                        .HasDatabaseName("ix_discorduser_username");
 
-                b.ToTable("discorduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<string>("Url")
-                    .HasColumnType("text")
-                    .HasColumnName("url");
-
-                b.HasKey("Id")
-                    .HasName("pk_feedsub");
-
-                b.HasIndex("GuildId", "Url")
-                    .IsUnique()
-                    .HasDatabaseName("ix_feedsub_guildid_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<int?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterchannelid");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filterchannelid_guildfilterconfigid");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterlinkschannelid");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.HasKey("Id")
-                    .HasName("pk_filterwordschannelid");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("integer")
-                    .HasColumnName("guildfilterconfigid");
-
-                b.Property<string>("Word")
-                    .HasColumnType("text")
-                    .HasColumnName("word");
-
-                b.HasKey("Id")
-                    .HasName("pk_filteredword");
-
-                b.HasIndex("GuildFilterConfigId")
-                    .HasDatabaseName("ix_filteredword_guildfilterconfigid");
-
-                b.ToTable("filteredword", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_flagtranslatechannel");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");
-
-                b.ToTable("flagtranslatechannel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<string>("PrettyName")
-                    .HasColumnType("text")
-                    .HasColumnName("prettyname");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_followedstream");
-
-                b.HasIndex("GuildId", "Username", "Type")
-                    .HasDatabaseName("ix_followedstream_guildid_username_type");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_gcchannelid");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_gcchannelid_guildid_channelid");
-
-                b.ToTable("gcchannelid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("Bet")
-                    .HasColumnType("numeric")
-                    .HasColumnName("bet");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Feature")
-                    .HasColumnType("text")
-                    .HasColumnName("feature");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("numeric")
-                    .HasColumnName("paidout");
-
-                b.HasKey("Id")
-                    .HasName("pk_gamblingstats");
-
-                b.HasIndex("Feature")
-                    .IsUnique()
-                    .HasDatabaseName("ix_gamblingstats_feature");
-
-                b.ToTable("gamblingstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime>("EndsAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("endsat");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.HasKey("Id")
-                    .HasName("pk_giveawaymodel");
-
-                b.ToTable("giveawaymodel", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("GiveawayId")
-                    .HasColumnType("integer")
-                    .HasColumnName("giveawayid");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_giveawayuser");
-
-                b.HasIndex("GiveawayId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_giveawayuser_giveawayid_userid");
-
-                b.ToTable("giveawayuser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("ErrorColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("errorcolor");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("OkColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("okcolor");
-
-                b.Property<string>("PendingColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("character varying(9)")
-                    .HasColumnName("pendingcolor");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildcolors");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_guildcolors_guildid");
-
-                b.ToTable("guildcolors", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("AutoAssignRoleIds")
-                    .HasColumnType("text")
-                    .HasColumnName("autoassignroleids");
-
-                b.Property<bool>("CleverbotEnabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("cleverbotenabled");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("DeleteMessageOnCommand")
-                    .HasColumnType("boolean")
-                    .HasColumnName("deletemessageoncommand");
-
-                b.Property<bool>("DeleteStreamOnlineMessage")
-                    .HasColumnType("boolean")
-                    .HasColumnName("deletestreamonlinemessage");
-
-                b.Property<bool>("DisableGlobalExpressions")
-                    .HasColumnType("boolean")
-                    .HasColumnName("disableglobalexpressions");
-
-                b.Property<decimal?>("GameVoiceChannel")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("gamevoicechannel");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Locale")
-                    .HasColumnType("text")
-                    .HasColumnName("locale");
-
-                b.Property<string>("MuteRoleName")
-                    .HasColumnType("text")
-                    .HasColumnName("muterolename");
-
-                b.Property<bool>("NotifyStreamOffline")
-                    .HasColumnType("boolean")
-                    .HasColumnName("notifystreamoffline");
-
-                b.Property<string>("PermissionRole")
-                    .HasColumnType("text")
-                    .HasColumnName("permissionrole");
-
-                b.Property<string>("Prefix")
-                    .HasColumnType("text")
-                    .HasColumnName("prefix");
-
-                b.Property<bool>("StickyRoles")
-                    .HasColumnType("boolean")
-                    .HasColumnName("stickyroles");
-
-                b.Property<string>("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.GuildFilterConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                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>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildfilterconfig");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_guildfilterconfig_guildid");
-
-                b.ToTable("guildfilterconfig", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
-            {
-                b.Property<decimal>("GuildId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.HasKey("GuildId")
-                    .HasName("pk_honeypotchannels");
-
-                b.ToTable("honeypotchannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<decimal>("LogItemId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logitemid");
-
-                b.Property<int>("LogSettingId")
-                    .HasColumnType("integer")
-                    .HasColumnName("logsettingid");
-
-                b.HasKey("Id")
-                    .HasName("pk_ignoredlogchannels");
-
-                b.HasIndex("LogSettingId", "LogItemId", "ItemType")
-                    .IsUnique()
-                    .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");
-
-                b.ToTable("ignoredlogchannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_imageonlychannels");
-
-                b.HasIndex("ChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_imageonlychannels_channelid");
-
-                b.ToTable("imageonlychannels", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal?>("ChannelCreatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelcreatedid");
-
-                b.Property<decimal?>("ChannelDestroyedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channeldestroyedid");
-
-                b.Property<decimal?>("ChannelUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelupdatedid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal?>("LogOtherId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logotherid");
-
-                b.Property<decimal?>("LogUserPresenceId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("loguserpresenceid");
-
-                b.Property<decimal?>("LogVoicePresenceId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logvoicepresenceid");
-
-                b.Property<decimal?>("LogVoicePresenceTTSId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logvoicepresencettsid");
-
-                b.Property<decimal?>("LogWarnsId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("logwarnsid");
-
-                b.Property<decimal?>("MessageDeletedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messagedeletedid");
-
-                b.Property<decimal?>("MessageUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageupdatedid");
-
-                b.Property<decimal?>("ThreadCreatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("threadcreatedid");
-
-                b.Property<decimal?>("ThreadDeletedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("threaddeletedid");
-
-                b.Property<decimal?>("UserBannedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userbannedid");
-
-                b.Property<decimal?>("UserJoinedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userjoinedid");
-
-                b.Property<decimal?>("UserLeftId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userleftid");
-
-                b.Property<decimal?>("UserMutedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("usermutedid");
-
-                b.Property<decimal?>("UserUnbannedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userunbannedid");
-
-                b.Property<decimal?>("UserUpdatedId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userupdatedid");
-
-                b.HasKey("Id")
-                    .HasName("pk_logsettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_logsettings_guildid");
-
-                b.ToTable("logsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<bool>("AutoDisconnect")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodisconnect");
-
-                b.Property<bool>("AutoPlay")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autoplay");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal?>("MusicChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("musicchannelid");
-
-                b.Property<int>("PlayerRepeat")
-                    .HasColumnType("integer")
-                    .HasColumnName("playerrepeat");
-
-                b.Property<int>("QualityPreset")
-                    .HasColumnType("integer")
-                    .HasColumnName("qualitypreset");
-
-                b.Property<int>("Volume")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(100)
-                    .HasColumnName("volume");
-
-                b.HasKey("Id")
-                    .HasName("pk_musicplayersettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_musicplayersettings_guildid");
-
-                b.ToTable("musicplayersettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<string>("Author")
-                    .HasColumnType("text")
-                    .HasColumnName("author");
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.HasKey("Id")
-                    .HasName("pk_musicplaylists");
-
-                b.ToTable("musicplaylists", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_muteduserid");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_muteduserid_guildid_userid");
-
-                b.ToTable("muteduserid", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("Color")
-                    .HasColumnType("bigint")
-                    .HasColumnName("color");
-
-                b.Property<decimal>("OwnerId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("ownerid");
-
-                b.Property<int>("Position")
-                    .HasColumnType("integer")
-                    .HasColumnName("position");
-
-                b.Property<long>("Price")
-                    .HasColumnType("bigint")
-                    .HasColumnName("price");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasMaxLength(256)
-                    .HasColumnType("character varying(256)")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_ncpixel");
-
-                b.HasAlternateKey("Position")
-                    .HasName("ak_ncpixel_position");
-
-                b.HasIndex("OwnerId")
-                    .HasDatabaseName("ix_ncpixel_ownerid");
-
-                b.ToTable("ncpixel", (string)null);
-            });
+                    b.ToTable("discorduser", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<bool>("AllowTarget")
-                    .HasColumnType("boolean")
-                    .HasColumnName("allowtarget");
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("boolean")
+                        .HasColumnName("allowtarget");
 
-                b.Property<bool>("AutoDeleteTrigger")
-                    .HasColumnType("boolean")
-                    .HasColumnName("autodeletetrigger");
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodeletetrigger");
 
-                b.Property<bool>("ContainsAnywhere")
-                    .HasColumnType("boolean")
-                    .HasColumnName("containsanywhere");
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("boolean")
+                        .HasColumnName("containsanywhere");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<bool>("DmResponse")
-                    .HasColumnType("boolean")
-                    .HasColumnName("dmresponse");
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("boolean")
+                        .HasColumnName("dmresponse");
 
-                b.Property<decimal?>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<decimal?>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<string>("Reactions")
-                    .HasColumnType("text")
-                    .HasColumnName("reactions");
+                    b.Property<string>("Reactions")
+                        .HasColumnType("text")
+                        .HasColumnName("reactions");
 
-                b.Property<string>("Response")
-                    .HasColumnType("text")
-                    .HasColumnName("response");
+                    b.Property<string>("Response")
+                        .HasColumnType("text")
+                        .HasColumnName("response");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("text")
-                    .HasColumnName("trigger");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("text")
+                        .HasColumnName("trigger");
 
-                b.HasKey("Id")
-                    .HasName("pk_expressions");
+                    b.HasKey("Id")
+                        .HasName("pk_expressions");
 
-                b.ToTable("expressions", (string)null);
-            });
+                    b.ToTable("expressions", (string)null);
+                });
 
-            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
+            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Property<decimal?>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Property<string>("Message")
-                    .IsRequired()
-                    .HasMaxLength(10000)
-                    .HasColumnType("character varying(10000)")
-                    .HasColumnName("message");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
 
-                b.HasKey("Id")
-                    .HasName("pk_notify");
+                    b.Property<string>("Url")
+                        .HasColumnType("text")
+                        .HasColumnName("url");
 
-                b.HasAlternateKey("GuildId", "Type")
-                    .HasName("ak_notify_guildid_type");
+                    b.HasKey("Id")
+                        .HasName("pk_feedsub");
 
-                b.ToTable("notify", (string)null);
-            });
+                    b.HasIndex("GuildId", "Url")
+                        .IsUnique()
+                        .HasDatabaseName("ix_feedsub_guildid_url");
 
-            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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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.HasIndex("GuildId")
-                    .HasDatabaseName("ix_permissions_guildid");
-
-                b.ToTable("permissions", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("Amount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amount");
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<string>("Password")
-                    .HasColumnType("text")
-                    .HasColumnName("password");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_plantedcurrency");
-
-                b.HasIndex("ChannelId")
-                    .HasDatabaseName("ix_plantedcurrency_channelid");
-
-                b.HasIndex("MessageId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_plantedcurrency_messageid");
-
-                b.ToTable("plantedcurrency", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("MusicPlaylistId")
-                    .HasColumnType("integer")
-                    .HasColumnName("musicplaylistid");
-
-                b.Property<string>("Provider")
-                    .HasColumnType("text")
-                    .HasColumnName("provider");
-
-                b.Property<int>("ProviderType")
-                    .HasColumnType("integer")
-                    .HasColumnName("providertype");
-
-                b.Property<string>("Query")
-                    .HasColumnType("text")
-                    .HasColumnName("query");
-
-                b.Property<string>("Title")
-                    .HasColumnType("text")
-                    .HasColumnName("title");
-
-                b.Property<string>("Uri")
-                    .HasColumnType("text")
-                    .HasColumnName("uri");
-
-                b.HasKey("Id")
-                    .HasName("pk_playlistsong");
-
-                b.HasIndex("MusicPlaylistId")
-                    .HasDatabaseName("ix_playlistsong_musicplaylistid");
-
-                b.ToTable("playlistsong", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<string>("AuthorName")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("authorname");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Keyword")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("keyword");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("text");
-
-                b.HasKey("Id")
-                    .HasName("pk_quotes");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_quotes_guildid");
-
-                b.HasIndex("Keyword")
-                    .HasDatabaseName("ix_quotes_keyword");
-
-                b.ToTable("quotes", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Emote")
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("emote");
-
-                b.Property<int>("Group")
-                    .HasColumnType("integer")
-                    .HasColumnName("group");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("integer")
-                    .HasColumnName("levelreq");
-
-                b.Property<decimal>("MessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("messageid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_reactionroles");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_reactionroles_guildid");
-
-                b.HasIndex("MessageId", "Emote")
-                    .IsUnique()
-                    .HasDatabaseName("ix_reactionroles_messageid_emote");
-
-                b.ToTable("reactionroles", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsPrivate")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isprivate");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<decimal>("ServerId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("serverid");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<DateTime>("When")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("when");
-
-                b.HasKey("Id")
-                    .HasName("pk_reminders");
-
-                b.HasIndex("When")
-                    .HasDatabaseName("ix_reminders_when");
-
-                b.ToTable("reminders", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<TimeSpan>("Interval")
-                    .HasColumnType("interval")
-                    .HasColumnName("interval");
-
-                b.Property<decimal?>("LastMessageId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("lastmessageid");
-
-                b.Property<string>("Message")
-                    .HasColumnType("text")
-                    .HasColumnName("message");
-
-                b.Property<bool>("NoRedundant")
-                    .HasColumnType("boolean")
-                    .HasColumnName("noredundant");
-
-                b.Property<TimeSpan?>("StartTimeOfDay")
-                    .HasColumnType("interval")
-                    .HasColumnName("starttimeofday");
-
-                b.HasKey("Id")
-                    .HasName("pk_repeaters");
-
-                b.ToTable("repeaters", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<long>("AmountRewardedThisMonth")
-                    .HasColumnType("bigint")
-                    .HasColumnName("amountrewardedthismonth");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<DateTime>("LastReward")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("lastreward");
-
-                b.Property<string>("PlatformUserId")
-                    .HasColumnType("text")
-                    .HasColumnName("platformuserid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_rewardedusers");
-
-                b.HasIndex("PlatformUserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_rewardedusers_platformuserid");
-
-                b.ToTable("rewardedusers", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("Status")
-                    .HasColumnType("text")
-                    .HasColumnName("status");
-
-                b.Property<int>("Type")
-                    .HasColumnType("integer")
-                    .HasColumnName("type");
-
-                b.HasKey("Id")
-                    .HasName("pk_rotatingstatus");
-
-                b.ToTable("rotatingstatus", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("integer")
-                    .HasColumnName("levelreq");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("SarGroupId")
-                    .HasColumnType("integer")
-                    .HasColumnName("sargroupid");
-
-                b.HasKey("Id")
-                    .HasName("pk_sar");
-
-                b.HasAlternateKey("GuildId", "RoleId")
-                    .HasName("ak_sar_guildid_roleid");
-
-                b.HasIndex("SarGroupId")
-                    .HasDatabaseName("ix_sar_sargroupid");
-
-                b.ToTable("sar", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsEnabled")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isenabled");
-
-                b.HasKey("Id")
-                    .HasName("pk_sarautodelete");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_sarautodelete_guildid");
-
-                b.ToTable("sarautodelete", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("GroupNumber")
-                    .HasColumnType("integer")
-                    .HasColumnName("groupnumber");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsExclusive")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isexclusive");
-
-                b.Property<string>("Name")
-                    .HasMaxLength(100)
-                    .HasColumnType("character varying(100)")
-                    .HasColumnName("name");
-
-                b.Property<decimal?>("RoleReq")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("rolereq");
-
-                b.HasKey("Id")
-                    .HasName("pk_sargroup");
-
-                b.HasAlternateKey("GuildId", "GroupNumber")
-                    .HasName("ak_sargroup_guildid_groupnumber");
-
-                b.ToTable("sargroup", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<decimal>("AuthorId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("authorid");
-
-                b.Property<string>("Command")
-                    .HasColumnType("text")
-                    .HasColumnName("command");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "Index")
-                    .IsUnique()
-                    .HasDatabaseName("ix_shopentry_guildid_index");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("Id")
-                    .HasName("pk_slowmodeignoredrole");
-
-                b.HasIndex("GuildId", "RoleId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_slowmodeignoreduser");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Keyword")
-                    .HasColumnType("text")
-                    .HasColumnName("keyword");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamrolesettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_streamrolesettings_guildid");
-
-                b.ToTable("streamrolesettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("streamrolesettingsid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<string>("Username")
-                    .HasColumnType("text")
-                    .HasColumnName("username");
-
-                b.HasKey("Id")
-                    .HasName("pk_streamrolewhitelisteduser");
-
-                b.HasIndex("StreamRoleSettingsId")
-                    .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");
-
-                b.ToTable("streamrolewhitelisteduser", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime>("ExpiresAt")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("expiresat");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("boolean")
-                    .HasColumnName("remove");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_temprole");
-
-                b.HasAlternateKey("GuildId", "UserId", "RoleId")
-                    .HasName("ak_temprole_guildid_userid_roleid");
-
-                b.HasIndex("ExpiresAt")
-                    .HasDatabaseName("ix_temprole_expiresat");
-
-                b.ToTable("temprole", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("ArchiveId")
-                    .HasColumnType("integer")
-                    .HasColumnName("archiveid");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsDone")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isdone");
-
-                b.Property<string>("Todo")
-                    .HasColumnType("text")
-                    .HasColumnName("todo");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_todos");
-
-                b.HasIndex("ArchiveId")
-                    .HasDatabaseName("ix_todos_archiveid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_todos_userid");
-
-                b.ToTable("todos", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_unbantimer_guildid_userid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_unmutetimer_guildid_userid");
-
-                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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_unroletimer_guildid_userid");
-
-                b.ToTable("unroletimer", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("Xp")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xp");
-
-                b.HasKey("Id")
-                    .HasName("pk_userxpstats");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_userxpstats_guildid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_userxpstats_userid");
-
-                b.HasIndex("Xp")
-                    .HasDatabaseName("ix_userxpstats_xp");
-
-                b.HasIndex("UserId", "GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userxpstats_userid_guildid");
-
-                b.ToTable("userxpstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                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("GuildId", "VoiceChannelId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid");
-
-                b.ToTable("vcroleinfo", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("AffinityId")
-                    .HasColumnType("integer")
-                    .HasColumnName("affinityid");
-
-                b.Property<int?>("ClaimerId")
-                    .HasColumnType("integer")
-                    .HasColumnName("claimerid");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<long>("Price")
-                    .HasColumnType("bigint")
-                    .HasColumnName("price");
-
-                b.Property<int>("WaifuId")
-                    .HasColumnType("integer")
-                    .HasColumnName("waifuid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuinfo");
-
-                b.HasIndex("AffinityId")
-                    .HasDatabaseName("ix_waifuinfo_affinityid");
-
-                b.HasIndex("ClaimerId")
-                    .HasDatabaseName("ix_waifuinfo_claimerid");
-
-                b.HasIndex("Price")
-                    .HasDatabaseName("ix_waifuinfo_price");
-
-                b.HasIndex("WaifuId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_waifuinfo_waifuid");
-
-                b.ToTable("waifuinfo", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<string>("ItemEmoji")
-                    .HasColumnType("text")
-                    .HasColumnName("itememoji");
-
-                b.Property<string>("Name")
-                    .HasColumnType("text")
-                    .HasColumnName("name");
-
-                b.Property<int?>("WaifuInfoId")
-                    .HasColumnType("integer")
-                    .HasColumnName("waifuinfoid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuitem");
-
-                b.HasIndex("WaifuInfoId")
-                    .HasDatabaseName("ix_waifuitem_waifuinfoid");
-
-                b.ToTable("waifuitem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int?>("NewId")
-                    .HasColumnType("integer")
-                    .HasColumnName("newid");
-
-                b.Property<int?>("OldId")
-                    .HasColumnType("integer")
-                    .HasColumnName("oldid");
-
-                b.Property<int>("UpdateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("updatetype");
-
-                b.Property<int>("UserId")
-                    .HasColumnType("integer")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_waifuupdates");
-
-                b.HasIndex("NewId")
-                    .HasDatabaseName("ix_waifuupdates_newid");
-
-                b.HasIndex("OldId")
-                    .HasDatabaseName("ix_waifuupdates_oldid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_waifuupdates_userid");
-
-                b.ToTable("waifuupdates", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("Forgiven")
-                    .HasColumnType("boolean")
-                    .HasColumnName("forgiven");
-
-                b.Property<string>("ForgivenBy")
-                    .HasColumnType("text")
-                    .HasColumnName("forgivenby");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<string>("Moderator")
-                    .HasColumnType("text")
-                    .HasColumnName("moderator");
-
-                b.Property<string>("Reason")
-                    .HasColumnType("text")
-                    .HasColumnName("reason");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("Weight")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("bigint")
-                    .HasDefaultValue(1L)
-                    .HasColumnName("weight");
-
-                b.HasKey("Id")
-                    .HasName("pk_warnings");
-
-                b.HasIndex("DateAdded")
-                    .HasDatabaseName("ix_warnings_dateadded");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_warnings_guildid");
-
-                b.HasIndex("UserId")
-                    .HasDatabaseName("ix_warnings_userid");
-
-                b.ToTable("warnings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Count")
-                    .HasColumnType("integer")
-                    .HasColumnName("count");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("Punishment")
-                    .HasColumnType("integer")
-                    .HasColumnName("punishment");
-
-                b.Property<decimal?>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.Property<int>("Time")
-                    .HasColumnType("integer")
-                    .HasColumnName("time");
-
-                b.HasKey("Id")
-                    .HasName("pk_warningpunishment");
-
-                b.HasAlternateKey("GuildId", "Count")
-                    .HasName("ak_warningpunishment_guildid_count");
-
-                b.ToTable("warningpunishment", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Amount")
-                    .HasColumnType("integer")
-                    .HasColumnName("amount");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<int>("Level")
-                    .HasColumnType("integer")
-                    .HasColumnName("level");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("integer")
-                    .HasColumnName("xpsettingsid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpcurrencyreward");
-
-                b.HasIndex("XpSettingsId")
-                    .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");
-
-                b.HasIndex("Level", "XpSettingsId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpcurrencyreward_level_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<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpsettings");
-
-                b.HasIndex("GuildId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpsettings_guildid");
-
-                b.ToTable("xpsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("timestamp without time zone")
-                    .HasColumnName("dateadded");
-
-                b.Property<bool>("IsUsing")
-                    .HasColumnType("boolean")
-                    .HasColumnName("isusing");
-
-                b.Property<string>("ItemKey")
-                    .IsRequired()
-                    .HasColumnType("text")
-                    .HasColumnName("itemkey");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("integer")
-                    .HasColumnName("itemtype");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_xpshopowneditem");
-
-                b.HasIndex("UserId", "ItemType", "ItemKey")
-                    .IsUnique()
-                    .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");
-
-                b.ToTable("xpshopowneditem", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Count")
-                    .HasColumnType("integer")
-                    .HasColumnName("count");
-
-                b.Property<int>("FishId")
-                    .HasColumnType("integer")
-                    .HasColumnName("fishid");
-
-                b.Property<int>("MaxStars")
-                    .HasColumnType("integer")
-                    .HasColumnName("maxstars");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_fishcatch");
-
-                b.HasAlternateKey("UserId", "FishId")
-                    .HasName("ak_fishcatch_userid_fishid");
-
-                b.ToTable("fishcatch", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int?>("Bait")
-                    .HasColumnType("integer")
-                    .HasColumnName("bait");
-
-                b.Property<int?>("Pole")
-                    .HasColumnType("integer")
-                    .HasColumnName("pole");
-
-                b.Property<int>("Skill")
-                    .HasColumnType("integer")
-                    .HasColumnName("skill");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.HasKey("Id")
-                    .HasName("pk_userfishstats");
-
-                b.HasIndex("UserId")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userfishstats_userid");
-
-                b.ToTable("userfishstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
-            {
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<decimal>("RoleId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("roleid");
-
-                b.HasKey("GuildId", "UserId", "RoleId")
-                    .HasName("pk_userrole");
-
-                b.HasIndex("GuildId")
-                    .HasDatabaseName("ix_userrole_guildid");
-
-                b.HasIndex("GuildId", "UserId")
-                    .HasDatabaseName("ix_userrole_guildid_userid");
-
-                b.ToTable("userrole", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", 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<float>("Cooldown")
-                    .HasColumnType("real")
-                    .HasColumnName("cooldown");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("ratetype");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xpamount");
-
-                b.HasKey("Id")
-                    .HasName("pk_channelxpconfig");
-
-                b.HasAlternateKey("GuildId", "ChannelId", "RateType")
-                    .HasName("ak_channelxpconfig_guildid_channelid_ratetype");
-
-                b.ToTable("channelxpconfig", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<float>("Cooldown")
-                    .HasColumnType("real")
-                    .HasColumnName("cooldown");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("integer")
-                    .HasColumnName("ratetype");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("xpamount");
-
-                b.Property<string>("XpTemplateUrl")
-                    .HasColumnType("text")
-                    .HasColumnName("xptemplateurl");
-
-                b.HasKey("Id")
-                    .HasName("pk_guildxpconfig");
-
-                b.HasAlternateKey("GuildId", "RateType")
-                    .HasName("ak_guildxpconfig_guildid_ratetype");
-
-                b.ToTable("guildxpconfig", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("AutoDeleteTimer")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasDefaultValue(0)
-                    .HasColumnName("autodeletetimer");
-
-                b.Property<decimal?>("ChannelId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("channelid");
-
-                b.Property<int>("GreetType")
-                    .HasColumnType("integer")
-                    .HasColumnName("greettype");
-
-                b.Property<decimal>("GuildId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("guildid");
-
-                b.Property<bool>("IsEnabled")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("boolean")
-                    .HasDefaultValue(false)
-                    .HasColumnName("isenabled");
-
-                b.Property<string>("MessageText")
-                    .HasColumnType("text")
-                    .HasColumnName("messagetext");
-
-                b.HasKey("Id")
-                    .HasName("pk_greetsettings");
-
-                b.HasIndex("GuildId", "GreetType")
-                    .IsUnique()
-                    .HasDatabaseName("ix_greetsettings_guildid_greettype");
-
-                b.ToTable("greetsettings", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
-            {
-                b.Property<decimal>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<decimal>("Amount")
-                    .HasColumnType("numeric")
-                    .HasColumnName("amount");
-
-                b.HasKey("UserId")
-                    .HasName("pk_rakeback");
-
-                b.ToTable("rakeback", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("integer")
-                    .HasColumnName("id");
-
-                NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
-
-                b.Property<int>("Game")
-                    .HasColumnType("integer")
-                    .HasColumnName("game");
-
-                b.Property<long>("LoseCount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("losecount");
-
-                b.Property<long>("MaxBet")
-                    .HasColumnType("bigint")
-                    .HasColumnName("maxbet");
-
-                b.Property<long>("MaxWin")
-                    .HasColumnType("bigint")
-                    .HasColumnName("maxwin");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("numeric")
-                    .HasColumnName("paidout");
-
-                b.Property<decimal>("TotalBet")
-                    .HasColumnType("numeric")
-                    .HasColumnName("totalbet");
-
-                b.Property<decimal>("UserId")
-                    .HasColumnType("numeric(20,0)")
-                    .HasColumnName("userid");
-
-                b.Property<long>("WinCount")
-                    .HasColumnType("bigint")
-                    .HasColumnName("wincount");
-
-                b.HasKey("Id")
-                    .HasName("pk_userbetstats");
-
-                b.HasIndex("MaxWin")
-                    .HasDatabaseName("ix_userbetstats_maxwin");
-
-                b.HasIndex("UserId", "Game")
-                    .IsUnique()
-                    .HasDatabaseName("ix_userbetstats_userid_game");
-
-                b.ToTable("userbetstats", (string)null);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.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.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.DiscordUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Members")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.NoAction)
-                    .HasConstraintName("fk_discorduser_clubs_clubid");
-
-                b.Navigation("Club");
-            });
+                    b.ToTable("feedsub", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterInvitesChannelIds")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid");
-            });
+                {
+                    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<int?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterchannelid");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filterchannelid_guildfilterconfigid");
+
+                    b.ToTable("filterchannelid", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterLinksChannelIds")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid");
-            });
+                {
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterlinkschannelid");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filterlinkschannelid_guildfilterconfigid");
+
+                    b.ToTable("filterlinkschannelid", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterWordsChannelIds")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid");
-            });
+                {
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_filterwordschannelid");
+
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filterwordschannelid_guildfilterconfigid");
+
+                    b.ToTable("filterwordschannelid", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilteredWords")
-                    .HasForeignKey("GuildFilterConfigId")
-                    .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
-                    .WithMany("Participants")
-                    .HasForeignKey("GiveawayId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
-                    .WithMany("LogIgnores")
-                    .HasForeignKey("LogSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-                b.Navigation("LogSetting");
-            });
+                    b.Property<int?>("GuildFilterConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildfilterconfigid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("Permissions")
-                    .HasForeignKey("GuildConfigId")
-                    .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
-            });
+                    b.Property<string>("Word")
+                        .HasColumnType("text")
+                        .HasColumnName("word");
 
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
-                    .WithMany("Songs")
-                    .HasForeignKey("MusicPlaylistId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
-            });
+                    b.HasKey("Id")
+                        .HasName("pk_filteredword");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.SarGroup", null)
-                    .WithMany("Roles")
-                    .HasForeignKey("SarGroupId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_sar_sargroup_sargroupid");
-            });
+                    b.HasIndex("GuildFilterConfigId")
+                        .HasDatabaseName("ix_filteredword_guildfilterconfigid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ShopEntry", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ShopEntryId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .HasConstraintName("fk_shopentryitem_shopentry_shopentryid");
-            });
+                    b.ToTable("filteredword", (string)null);
+                });
 
-            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~");
+            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("StreamRoleSettings");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-            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.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-                b.Navigation("StreamRoleSettings");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-            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");
-            });
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
-                    .WithMany()
-                    .HasForeignKey("AffinityId")
-                    .HasConstraintName("fk_waifuinfo_discorduser_affinityid");
+                    b.HasKey("Id")
+                        .HasName("pk_flagtranslatechannel");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
-                    .WithMany()
-                    .HasForeignKey("ClaimerId")
-                    .HasConstraintName("fk_waifuinfo_discorduser_claimerid");
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_waifuinfo_discorduser_waifuid");
+                    b.ToTable("flagtranslatechannel", (string)null);
+                });
 
-                b.Navigation("Affinity");
+            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("Claimer");
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Navigation("Waifu");
-            });
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
-                    .WithMany("Items")
-                    .HasForeignKey("WaifuInfoId")
-                    .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-                b.Navigation("WaifuInfo");
-            });
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
 
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
-                    .WithMany()
-                    .HasForeignKey("NewId")
-                    .HasConstraintName("fk_waifuupdates_discorduser_newid");
+                    b.Property<string>("PrettyName")
+                        .HasColumnType("text")
+                        .HasColumnName("prettyname");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
-                    .WithMany()
-                    .HasForeignKey("OldId")
-                    .HasConstraintName("fk_waifuupdates_discorduser_oldid");
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_waifuupdates_discorduser_userid");
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
 
-                b.Navigation("New");
+                    b.HasKey("Id")
+                        .HasName("pk_followedstream");
 
-                b.Navigation("Old");
+                    b.HasIndex("GuildId", "Username", "Type")
+                        .HasDatabaseName("ix_followedstream_guildid_username_type");
 
-                b.Navigation("User");
-            });
+                    b.ToTable("followedstream", (string)null);
+                });
 
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("CurrencyRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");
-            });
+            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("RoleRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired()
-                    .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Navigation("IgnoredChannels");
-            });
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Navigation("Items");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
 
-            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Navigation("Users");
-            });
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Navigation("Applicants");
+                    b.HasKey("Id")
+                        .HasName("pk_gcchannelid");
 
-                b.Navigation("Bans");
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_gcchannelid_guildid_channelid");
 
-                b.Navigation("Members");
-            });
+                    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.Navigation("Participants");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("endsat");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_giveawaymodel");
+
+                    b.ToTable("giveawaymodel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("integer")
+                        .HasColumnName("giveawayid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_giveawayuser");
+
+                    b.HasIndex("GiveawayId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_giveawayuser_giveawayid_userid");
+
+                    b.ToTable("giveawayuser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("ErrorColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("errorcolor");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("OkColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("okcolor");
+
+                    b.Property<string>("PendingColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("character varying(9)")
+                        .HasColumnName("pendingcolor");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildcolors");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_guildcolors_guildid");
+
+                    b.ToTable("guildcolors", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Navigation("Permissions");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("text")
+                        .HasColumnName("autoassignroleids");
+
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("cleverbotenabled");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("boolean")
+                        .HasColumnName("deletemessageoncommand");
+
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("boolean")
+                        .HasColumnName("deletestreamonlinemessage");
+
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("boolean")
+                        .HasColumnName("disableglobalexpressions");
+
+                    b.Property<decimal?>("GameVoiceChannel")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("gamevoicechannel");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Locale")
+                        .HasColumnType("text")
+                        .HasColumnName("locale");
+
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("text")
+                        .HasColumnName("muterolename");
+
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("boolean")
+                        .HasColumnName("notifystreamoffline");
+
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("text")
+                        .HasColumnName("permissionrole");
+
+                    b.Property<string>("Prefix")
+                        .HasColumnType("text")
+                        .HasColumnName("prefix");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("boolean")
+                        .HasColumnName("stickyroles");
+
+                    b.Property<string>("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.GuildFilterConfig", b =>
-            {
-                b.Navigation("FilterInvitesChannelIds");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("FilterLinksChannelIds");
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
 
-                b.Navigation("FilterWordsChannelIds");
+                    b.Property<bool>("FilterInvites")
+                        .HasColumnType("boolean")
+                        .HasColumnName("filterinvites");
 
-                b.Navigation("FilteredWords");
-            });
+                    b.Property<bool>("FilterLinks")
+                        .HasColumnType("boolean")
+                        .HasColumnName("filterlinks");
+
+                    b.Property<bool>("FilterWords")
+                        .HasColumnType("boolean")
+                        .HasColumnName("filterwords");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildfilterconfig");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_guildfilterconfig_guildid");
+
+                    b.ToTable("guildfilterconfig", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
+                {
+                    b.Property<decimal>("GuildId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.HasKey("GuildId")
+                        .HasName("pk_honeypotchannels");
+
+                    b.ToTable("honeypotchannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<decimal>("LogItemId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logitemid");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("integer")
+                        .HasColumnName("logsettingid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_ignoredlogchannels");
+
+                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
+                        .IsUnique()
+                        .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");
+
+                    b.ToTable("ignoredlogchannels", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_imageonlychannels");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_imageonlychannels_channelid");
+
+                    b.ToTable("imageonlychannels", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Navigation("LogIgnores");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal?>("ChannelCreatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelcreatedid");
+
+                    b.Property<decimal?>("ChannelDestroyedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channeldestroyedid");
+
+                    b.Property<decimal?>("ChannelUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelupdatedid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal?>("LogOtherId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logotherid");
+
+                    b.Property<decimal?>("LogUserPresenceId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("loguserpresenceid");
+
+                    b.Property<decimal?>("LogVoicePresenceId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logvoicepresenceid");
+
+                    b.Property<decimal?>("LogVoicePresenceTTSId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logvoicepresencettsid");
+
+                    b.Property<decimal?>("LogWarnsId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("logwarnsid");
+
+                    b.Property<decimal?>("MessageDeletedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messagedeletedid");
+
+                    b.Property<decimal?>("MessageUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageupdatedid");
+
+                    b.Property<decimal?>("ThreadCreatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("threadcreatedid");
+
+                    b.Property<decimal?>("ThreadDeletedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("threaddeletedid");
+
+                    b.Property<decimal?>("UserBannedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userbannedid");
+
+                    b.Property<decimal?>("UserJoinedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userjoinedid");
+
+                    b.Property<decimal?>("UserLeftId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userleftid");
+
+                    b.Property<decimal?>("UserMutedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("usermutedid");
+
+                    b.Property<decimal?>("UserUnbannedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userunbannedid");
+
+                    b.Property<decimal?>("UserUpdatedId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userupdatedid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_logsettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_logsettings_guildid");
+
+                    b.ToTable("logsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autodisconnect");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("boolean")
+                        .HasColumnName("autoplay");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal?>("MusicChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("musicchannelid");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("integer")
+                        .HasColumnName("playerrepeat");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("integer")
+                        .HasColumnName("qualitypreset");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(100)
+                        .HasColumnName("volume");
+
+                    b.HasKey("Id")
+                        .HasName("pk_musicplayersettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_musicplayersettings_guildid");
+
+                    b.ToTable("musicplayersettings", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Navigation("Songs");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<string>("Author")
+                        .HasColumnType("text")
+                        .HasColumnName("author");
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.HasKey("Id")
+                        .HasName("pk_musicplaylists");
+
+                    b.ToTable("musicplaylists", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_muteduserid");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_muteduserid_guildid_userid");
+
+                    b.ToTable("muteduserid", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Color")
+                        .HasColumnType("bigint")
+                        .HasColumnName("color");
+
+                    b.Property<decimal>("OwnerId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("ownerid");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("integer")
+                        .HasColumnName("position");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("character varying(256)")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_ncpixel");
+
+                    b.HasAlternateKey("Position")
+                        .HasName("ak_ncpixel_position");
+
+                    b.HasIndex("OwnerId")
+                        .HasDatabaseName("ix_ncpixel_ownerid");
+
+                    b.ToTable("ncpixel", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal?>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Message")
+                        .IsRequired()
+                        .HasMaxLength(10000)
+                        .HasColumnType("character varying(10000)")
+                        .HasColumnName("message");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_notify");
+
+                    b.HasAlternateKey("GuildId", "Type")
+                        .HasName("ak_notify_guildid_type");
+
+                    b.ToTable("notify", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<decimal>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("integer")
+                        .HasColumnName("amountcents");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("lastcharge");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("text")
+                        .HasColumnName("uniqueplatformuserid");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("validthru");
+
+                    b.HasKey("UserId")
+                        .HasName("pk_patrons");
+
+                    b.HasIndex("UniquePlatformUserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_patrons_uniqueplatformuserid");
+
+                    b.ToTable("patrons", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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.HasIndex("GuildId")
+                        .HasDatabaseName("ix_permissions_guildid");
+
+                    b.ToTable("permissions", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amount");
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("text")
+                        .HasColumnName("password");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_plantedcurrency");
+
+                    b.HasIndex("ChannelId")
+                        .HasDatabaseName("ix_plantedcurrency_channelid");
+
+                    b.HasIndex("MessageId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_plantedcurrency_messageid");
+
+                    b.ToTable("plantedcurrency", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("integer")
+                        .HasColumnName("musicplaylistid");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("text")
+                        .HasColumnName("provider");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("integer")
+                        .HasColumnName("providertype");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("text")
+                        .HasColumnName("query");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("text")
+                        .HasColumnName("title");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("text")
+                        .HasColumnName("uri");
+
+                    b.HasKey("Id")
+                        .HasName("pk_playlistsong");
+
+                    b.HasIndex("MusicPlaylistId")
+                        .HasDatabaseName("ix_playlistsong_musicplaylistid");
+
+                    b.ToTable("playlistsong", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("authorname");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("keyword");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    b.HasKey("Id")
+                        .HasName("pk_quotes");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_quotes_guildid");
+
+                    b.HasIndex("Keyword")
+                        .HasDatabaseName("ix_quotes_keyword");
+
+                    b.ToTable("quotes", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("emote");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("integer")
+                        .HasColumnName("group");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelreq");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_reactionroles");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_reactionroles_guildid");
+
+                    b.HasIndex("MessageId", "Emote")
+                        .IsUnique()
+                        .HasDatabaseName("ix_reactionroles_messageid_emote");
+
+                    b.ToTable("reactionroles", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isprivate");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<decimal>("ServerId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("serverid");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("when");
+
+                    b.HasKey("Id")
+                        .HasName("pk_reminders");
+
+                    b.HasIndex("When")
+                        .HasDatabaseName("ix_reminders_when");
+
+                    b.ToTable("reminders", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("interval")
+                        .HasColumnName("interval");
+
+                    b.Property<decimal?>("LastMessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("lastmessageid");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("text")
+                        .HasColumnName("message");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("boolean")
+                        .HasColumnName("noredundant");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("interval")
+                        .HasColumnName("starttimeofday");
+
+                    b.HasKey("Id")
+                        .HasName("pk_repeaters");
+
+                    b.ToTable("repeaters", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("bigint")
+                        .HasColumnName("amountrewardedthismonth");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("lastreward");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("text")
+                        .HasColumnName("platformuserid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rewardedusers");
+
+                    b.HasIndex("PlatformUserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_rewardedusers_platformuserid");
+
+                    b.ToTable("rewardedusers", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("text")
+                        .HasColumnName("status");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_rotatingstatus");
+
+                    b.ToTable("rotatingstatus", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("integer")
+                        .HasColumnName("levelreq");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("SarGroupId")
+                        .HasColumnType("integer")
+                        .HasColumnName("sargroupid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sar");
+
+                    b.HasAlternateKey("GuildId", "RoleId")
+                        .HasName("ak_sar_guildid_roleid");
+
+                    b.HasIndex("SarGroupId")
+                        .HasDatabaseName("ix_sar_sargroupid");
+
+                    b.ToTable("sar", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsEnabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isenabled");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sarautodelete");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_sarautodelete_guildid");
+
+                    b.ToTable("sarautodelete", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Navigation("Roles");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("GroupNumber")
+                        .HasColumnType("integer")
+                        .HasColumnName("groupnumber");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsExclusive")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isexclusive");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(100)
+                        .HasColumnType("character varying(100)")
+                        .HasColumnName("name");
+
+                    b.Property<decimal?>("RoleReq")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("rolereq");
+
+                    b.HasKey("Id")
+                        .HasName("pk_sargroup");
+
+                    b.HasAlternateKey("GuildId", "GroupNumber")
+                        .HasName("ak_sargroup_guildid_groupnumber");
+
+                    b.ToTable("sargroup", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AuthorId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("authorid");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("text")
+                        .HasColumnName("command");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "Index")
+                        .IsUnique()
+                        .HasDatabaseName("ix_shopentry_guildid_index");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_slowmodeignoredrole");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_slowmodeignoredrole_guildid_roleid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_slowmodeignoreduser");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_slowmodeignoreduser_guildid_userid");
+
+                    b.ToTable("slowmodeignoreduser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("RoleIds")
+                        .HasColumnType("text")
+                        .HasColumnName("roleids");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_stickyroles");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_stickyroles_guildid_userid");
+
+                    b.ToTable("stickyroles", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("integer")
+                        .HasColumnName("type");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamonlinemessages");
+
+                    b.ToTable("streamonlinemessages", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamroleblacklisteduser");
+
+                    b.HasIndex("StreamRoleSettingsId")
+                        .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid");
+
+                    b.ToTable("streamroleblacklisteduser", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Navigation("Blacklist");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("Whitelist");
-            });
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("AddRoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("addroleid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Enabled")
+                        .HasColumnType("boolean")
+                        .HasColumnName("enabled");
+
+                    b.Property<decimal>("FromRoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("fromroleid");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("integer")
+                        .HasColumnName("guildconfigid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("text")
+                        .HasColumnName("keyword");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamrolesettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_streamrolesettings_guildid");
+
+                    b.ToTable("streamrolesettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("streamrolesettingsid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("text")
+                        .HasColumnName("username");
+
+                    b.HasKey("Id")
+                        .HasName("pk_streamrolewhitelisteduser");
+
+                    b.HasIndex("StreamRoleSettingsId")
+                        .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");
+
+                    b.ToTable("streamrolewhitelisteduser", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("expiresat");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("boolean")
+                        .HasColumnName("remove");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_temprole");
+
+                    b.HasAlternateKey("GuildId", "UserId", "RoleId")
+                        .HasName("ak_temprole_guildid_userid_roleid");
+
+                    b.HasIndex("ExpiresAt")
+                        .HasDatabaseName("ix_temprole_expiresat");
+
+                    b.ToTable("temprole", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("integer")
+                        .HasColumnName("archiveid");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isdone");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("text")
+                        .HasColumnName("todo");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_todos");
+
+                    b.HasIndex("ArchiveId")
+                        .HasDatabaseName("ix_todos_archiveid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_todos_userid");
+
+                    b.ToTable("todos", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_unbantimer_guildid_userid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_unmutetimer_guildid_userid");
+
+                    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<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_unroletimer_guildid_userid");
+
+                    b.ToTable("unroletimer", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xp");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userxpstats");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_userxpstats_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_userxpstats_userid");
+
+                    b.HasIndex("Xp")
+                        .HasDatabaseName("ix_userxpstats_xp");
+
+                    b.HasIndex("UserId", "GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userxpstats_userid_guildid");
+
+                    b.ToTable("userxpstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    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("GuildId", "VoiceChannelId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_vcroleinfo_guildid_voicechannelid");
+
+                    b.ToTable("vcroleinfo", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("integer")
+                        .HasColumnName("affinityid");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("integer")
+                        .HasColumnName("claimerid");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("bigint")
+                        .HasColumnName("price");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("integer")
+                        .HasColumnName("waifuid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuinfo");
+
+                    b.HasIndex("AffinityId")
+                        .HasDatabaseName("ix_waifuinfo_affinityid");
+
+                    b.HasIndex("ClaimerId")
+                        .HasDatabaseName("ix_waifuinfo_claimerid");
+
+                    b.HasIndex("Price")
+                        .HasDatabaseName("ix_waifuinfo_price");
+
+                    b.HasIndex("WaifuId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_waifuinfo_waifuid");
+
+                    b.ToTable("waifuinfo", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("text")
+                        .HasColumnName("itememoji");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("text")
+                        .HasColumnName("name");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("integer")
+                        .HasColumnName("waifuinfoid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuitem");
+
+                    b.HasIndex("WaifuInfoId")
+                        .HasDatabaseName("ix_waifuitem_waifuinfoid");
+
+                    b.ToTable("waifuitem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("integer")
+                        .HasColumnName("newid");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("integer")
+                        .HasColumnName("oldid");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("updatetype");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("integer")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_waifuupdates");
+
+                    b.HasIndex("NewId")
+                        .HasDatabaseName("ix_waifuupdates_newid");
+
+                    b.HasIndex("OldId")
+                        .HasDatabaseName("ix_waifuupdates_oldid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_waifuupdates_userid");
+
+                    b.ToTable("waifuupdates", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("boolean")
+                        .HasColumnName("forgiven");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("text")
+                        .HasColumnName("forgivenby");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("text")
+                        .HasColumnName("moderator");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("text")
+                        .HasColumnName("reason");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("Weight")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("bigint")
+                        .HasDefaultValue(1L)
+                        .HasColumnName("weight");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warnings");
+
+                    b.HasIndex("DateAdded")
+                        .HasDatabaseName("ix_warnings_dateadded");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_warnings_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_warnings_userid");
+
+                    b.ToTable("warnings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("integer")
+                        .HasColumnName("count");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("integer")
+                        .HasColumnName("punishment");
+
+                    b.Property<decimal?>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("integer")
+                        .HasColumnName("time");
+
+                    b.HasKey("Id")
+                        .HasName("pk_warningpunishment");
+
+                    b.HasAlternateKey("GuildId", "Count")
+                        .HasName("ak_warningpunishment_guildid_count");
+
+                    b.ToTable("warningpunishment", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("integer")
+                        .HasColumnName("amount");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("integer")
+                        .HasColumnName("level");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("xpsettingsid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpcurrencyreward");
+
+                    b.HasIndex("XpSettingsId")
+                        .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");
+
+                    b.HasIndex("Level", "XpSettingsId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpcurrencyreward_level_xpsettingsid");
+
+                    b.ToTable("xpcurrencyreward", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("integer")
+                        .HasColumnName("level");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("boolean")
+                        .HasColumnName("remove");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("integer")
+                        .HasColumnName("xpsettingsid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xprolereward");
+
+                    b.HasIndex("XpSettingsId", "Level")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xprolereward_xpsettingsid_level");
+
+                    b.ToTable("xprolereward", (string)null);
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Navigation("CurrencyRewards");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
 
-                b.Navigation("RoleRewards");
-            });
+                    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.HasKey("Id")
+                        .HasName("pk_xpsettings");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpsettings_guildid");
+
+                    b.ToTable("xpsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("timestamp without time zone")
+                        .HasColumnName("dateadded");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("boolean")
+                        .HasColumnName("isusing");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("itemkey");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("integer")
+                        .HasColumnName("itemtype");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_xpshopowneditem");
+
+                    b.HasIndex("UserId", "ItemType", "ItemKey")
+                        .IsUnique()
+                        .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");
+
+                    b.ToTable("xpshopowneditem", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Count")
+                        .HasColumnType("integer")
+                        .HasColumnName("count");
+
+                    b.Property<int>("FishId")
+                        .HasColumnType("integer")
+                        .HasColumnName("fishid");
+
+                    b.Property<int>("MaxStars")
+                        .HasColumnType("integer")
+                        .HasColumnName("maxstars");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_fishcatch");
+
+                    b.HasAlternateKey("UserId", "FishId")
+                        .HasName("ak_fishcatch_userid_fishid");
+
+                    b.ToTable("fishcatch", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int?>("Bait")
+                        .HasColumnType("integer")
+                        .HasColumnName("bait");
+
+                    b.Property<int?>("Pole")
+                        .HasColumnType("integer")
+                        .HasColumnName("pole");
+
+                    b.Property<int>("Skill")
+                        .HasColumnType("integer")
+                        .HasColumnName("skill");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userfishstats");
+
+                    b.HasIndex("UserId")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userfishstats_userid");
+
+                    b.ToTable("userfishstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<decimal>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("MessageId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("messageid");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("text")
+                        .HasColumnName("text");
+
+                    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_scheduledcommand");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_scheduledcommand_guildid");
+
+                    b.HasIndex("UserId")
+                        .HasDatabaseName("ix_scheduledcommand_userid");
+
+                    b.HasIndex("When")
+                        .HasDatabaseName("ix_scheduledcommand_when");
+
+                    b.ToTable("scheduledcommand", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
+                {
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<decimal>("RoleId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("roleid");
+
+                    b.HasKey("GuildId", "UserId", "RoleId")
+                        .HasName("pk_userrole");
+
+                    b.HasIndex("GuildId")
+                        .HasDatabaseName("ix_userrole_guildid");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .HasDatabaseName("ix_userrole_guildid_userid");
+
+                    b.ToTable("userrole", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", 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<float>("Cooldown")
+                        .HasColumnType("real")
+                        .HasColumnName("cooldown");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("ratetype");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xpamount");
+
+                    b.HasKey("Id")
+                        .HasName("pk_channelxpconfig");
+
+                    b.HasAlternateKey("GuildId", "ChannelId", "RateType")
+                        .HasName("ak_channelxpconfig_guildid_channelid_ratetype");
+
+                    b.ToTable("channelxpconfig", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<float>("Cooldown")
+                        .HasColumnType("real")
+                        .HasColumnName("cooldown");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("integer")
+                        .HasColumnName("ratetype");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("xpamount");
+
+                    b.Property<string>("XpTemplateUrl")
+                        .HasColumnType("text")
+                        .HasColumnName("xptemplateurl");
+
+                    b.HasKey("Id")
+                        .HasName("pk_guildxpconfig");
+
+                    b.HasAlternateKey("GuildId", "RateType")
+                        .HasName("ak_guildxpconfig_guildid_ratetype");
+
+                    b.ToTable("guildxpconfig", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("AutoDeleteTimer")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasDefaultValue(0)
+                        .HasColumnName("autodeletetimer");
+
+                    b.Property<decimal?>("ChannelId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("channelid");
+
+                    b.Property<int>("GreetType")
+                        .HasColumnType("integer")
+                        .HasColumnName("greettype");
+
+                    b.Property<decimal>("GuildId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("guildid");
+
+                    b.Property<bool>("IsEnabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("boolean")
+                        .HasDefaultValue(false)
+                        .HasColumnName("isenabled");
+
+                    b.Property<string>("MessageText")
+                        .HasColumnType("text")
+                        .HasColumnName("messagetext");
+
+                    b.HasKey("Id")
+                        .HasName("pk_greetsettings");
+
+                    b.HasIndex("GuildId", "GreetType")
+                        .IsUnique()
+                        .HasDatabaseName("ix_greetsettings_guildid_greettype");
+
+                    b.ToTable("greetsettings", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
+                {
+                    b.Property<decimal>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("numeric")
+                        .HasColumnName("amount");
+
+                    b.HasKey("UserId")
+                        .HasName("pk_rakeback");
+
+                    b.ToTable("rakeback", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("integer")
+                        .HasColumnName("id");
+
+                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));
+
+                    b.Property<int>("Game")
+                        .HasColumnType("integer")
+                        .HasColumnName("game");
+
+                    b.Property<long>("LoseCount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("losecount");
+
+                    b.Property<long>("MaxBet")
+                        .HasColumnType("bigint")
+                        .HasColumnName("maxbet");
+
+                    b.Property<long>("MaxWin")
+                        .HasColumnType("bigint")
+                        .HasColumnName("maxwin");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("numeric")
+                        .HasColumnName("paidout");
+
+                    b.Property<decimal>("TotalBet")
+                        .HasColumnType("numeric")
+                        .HasColumnName("totalbet");
+
+                    b.Property<decimal>("UserId")
+                        .HasColumnType("numeric(20,0)")
+                        .HasColumnName("userid");
+
+                    b.Property<long>("WinCount")
+                        .HasColumnType("bigint")
+                        .HasColumnName("wincount");
+
+                    b.HasKey("Id")
+                        .HasName("pk_userbetstats");
+
+                    b.HasIndex("MaxWin")
+                        .HasDatabaseName("ix_userbetstats_maxwin");
+
+                    b.HasIndex("UserId", "Game")
+                        .IsUnique()
+                        .HasDatabaseName("ix_userbetstats_userid_game");
+
+                    b.ToTable("userbetstats", (string)null);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.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.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.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.FilterChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterInvitesChannelIds")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filterchannelid_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterLinksChannelIds")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filterlinkschannelid_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterWordsChannelIds")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filterwordschannelid_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilteredWords")
+                        .HasForeignKey("GuildFilterConfigId")
+                        .HasConstraintName("fk_filteredword_guildfilterconfig_guildfilterconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
+                        .WithMany("Participants")
+                        .HasForeignKey("GiveawayId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
+                        .WithMany("LogIgnores")
+                        .HasForeignKey("LogSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");
+
+                    b.Navigation("LogSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("Permissions")
+                        .HasForeignKey("GuildConfigId")
+                        .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
+                        .WithMany("Songs")
+                        .HasForeignKey("MusicPlaylistId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
+                        .WithMany("Roles")
+                        .HasForeignKey("SarGroupId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_sar_sargroup_sargroupid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.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.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.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.WaifuInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
+                        .WithMany()
+                        .HasForeignKey("AffinityId")
+                        .HasConstraintName("fk_waifuinfo_discorduser_affinityid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
+                        .WithMany()
+                        .HasForeignKey("ClaimerId")
+                        .HasConstraintName("fk_waifuinfo_discorduser_claimerid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_waifuinfo_discorduser_waifuid");
+
+                    b.Navigation("Affinity");
+
+                    b.Navigation("Claimer");
+
+                    b.Navigation("Waifu");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
+                        .WithMany("Items")
+                        .HasForeignKey("WaifuInfoId")
+                        .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");
+
+                    b.Navigation("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
+                        .WithMany()
+                        .HasForeignKey("NewId")
+                        .HasConstraintName("fk_waifuupdates_discorduser_newid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
+                        .WithMany()
+                        .HasForeignKey("OldId")
+                        .HasConstraintName("fk_waifuupdates_discorduser_oldid");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_waifuupdates_discorduser_userid");
+
+                    b.Navigation("New");
+
+                    b.Navigation("Old");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("CurrencyRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("RoleRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired()
+                        .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");
+                });
+
+            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("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b =>
+                {
+                    b.Navigation("FilterInvitesChannelIds");
+
+                    b.Navigation("FilterLinksChannelIds");
+
+                    b.Navigation("FilterWordsChannelIds");
+
+                    b.Navigation("FilteredWords");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Navigation("LogIgnores");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Navigation("Songs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Navigation("Roles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.Navigation("Blacklist");
+
+                    b.Navigation("Whitelist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.Navigation("CurrencyRewards");
+
+                    b.Navigation("RoleRewards");
+                });
 #pragma warning restore 612, 618
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs b/src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs
deleted file mode 100644
index 47bbdcd..0000000
--- a/src/EllieBot/Migrations/Sqlite/20250315225536_init.Designer.cs
+++ /dev/null
@@ -1,3073 +0,0 @@
-// <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.Sqlite
-{
-    [DbContext(typeof(SqliteContext))]
-    [Migration("20250315225536_init")]
-    partial class init
-    {
-        /// <inheritdoc />
-        protected override void BuildTargetModel(ModelBuilder modelBuilder)
-        {
-#pragma warning disable 612, 618
-            modelBuilder.HasAnnotation("ProductVersion", "9.0.1");
-
-            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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan>("MinAge")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .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<ulong>("GuildId")
-                    .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("GuildId")
-                    .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<ulong>("GuildId")
-                    .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("GuildId")
-                    .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.ButtonRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ButtonId")
-                    .IsRequired()
-                    .HasMaxLength(200)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Emote")
-                    .IsRequired()
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("Exclusive")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Label")
-                    .IsRequired()
-                    .HasMaxLength(50)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Position")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("RoleId", "MessageId");
-
-                b.HasIndex("GuildId");
-
-                b.ToTable("ButtonRole");
-            });
-
-            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<string>("BannerUrl")
-                    .HasColumnType("TEXT");
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Mapping")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Trigger")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Seconds")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "CommandName")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("State")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
-
-                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<bool>("IsClubAdmin")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(false);
-
-                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.HasIndex("Username");
-
-                b.ToTable("DiscordUser");
-            });
-
-            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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Url")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "Url")
-                    .IsUnique();
-
-                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<int?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Word")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                b.ToTable("FilteredWord");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
-
-                b.ToTable("FlagTranslateChannel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PrettyName")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "Username", "Type");
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
-
-                b.ToTable("GCChannelId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("Bet")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Feature")
-                    .HasColumnType("TEXT");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("Feature")
-                    .IsUnique();
-
-                b.ToTable("GamblingStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("EndsAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("GiveawayModel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GiveawayId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GiveawayId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("GiveawayUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ErrorColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("OkColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PendingColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("GuildColors");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("AutoAssignRoleIds")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("CleverbotEnabled")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("DeleteMessageOnCommand")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("DeleteStreamOnlineMessage")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("DisableGlobalExpressions")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("GameVoiceChannel")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Locale")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("MuteRoleName")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("NotifyStreamOffline")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("PermissionRole")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Prefix")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("StickyRoles")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("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.GuildFilterConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterInvites")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterLinks")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterWords")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.ToTable("GuildFilterConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
-            {
-                b.Property<ulong>("GuildId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("GuildId");
-
-                b.ToTable("HoneyPotChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("LogItemId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LogSettingId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("LogSettingId", "LogItemId", "ItemType")
-                    .IsUnique();
-
-                b.ToTable("IgnoredLogChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ChannelId")
-                    .IsUnique();
-
-                b.ToTable("ImageOnlyChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelCreatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelDestroyedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogOtherId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogUserPresenceId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogVoicePresenceId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogVoicePresenceTTSId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogWarnsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MessageDeletedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MessageUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ThreadCreatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ThreadDeletedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserBannedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserJoinedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserLeftId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserMutedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserUnbannedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("LogSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("AutoDisconnect")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("AutoPlay")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MusicChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("PlayerRepeat")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("QualityPreset")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Volume")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(100);
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("MusicPlayerSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Author")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.ToTable("MusicPlaylists");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("MutedUserId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<uint>("Color")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("OwnerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Position")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasMaxLength(256)
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("Position");
-
-                b.HasIndex("OwnerId");
-
-                b.ToTable("NCPixel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.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.Notify", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .IsRequired()
-                    .HasMaxLength(10000)
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "Type");
-
-                b.ToTable("Notify");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
-            {
-                b.Property<ulong>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("AmountCents")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("LastCharge")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("UniquePlatformUserId")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime>("ValidThru")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("UserId");
-
-                b.HasIndex("UniquePlatformUserId")
-                    .IsUnique();
-
-                b.ToTable("Patrons");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("GuildConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .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.HasIndex("GuildId");
-
-                b.ToTable("Permissions");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Amount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Password")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ChannelId");
-
-                b.HasIndex("MessageId")
-                    .IsUnique();
-
-                b.ToTable("PlantedCurrency");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("MusicPlaylistId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Provider")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ProviderType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Query")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Title")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Uri")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("MusicPlaylistId");
-
-                b.ToTable("PlaylistSong");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("AuthorName")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Keyword")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("Keyword");
-
-                b.ToTable("Quotes");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Emote")
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Group")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("MessageId", "Emote")
-                    .IsUnique();
-
-                b.ToTable("ReactionRoles");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsPrivate")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("ServerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("When")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("When");
-
-                b.ToTable("Reminders");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan>("Interval")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("LastMessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("NoRedundant")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan?>("StartTimeOfDay")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.ToTable("Repeaters");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("AmountRewardedThisMonth")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime>("LastReward")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PlatformUserId")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("PlatformUserId")
-                    .IsUnique();
-
-                b.ToTable("RewardedUsers");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Status")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("RotatingStatus");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("SarGroupId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "RoleId");
-
-                b.HasIndex("SarGroupId");
-
-                b.ToTable("Sar");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsEnabled")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("SarAutoDelete");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GroupNumber")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsExclusive")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("RoleReq")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "GroupNumber");
-
-                b.ToTable("SarGroup");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Command")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .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("GuildId", "Index")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "RoleId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Keyword")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("StreamRoleSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("StreamRoleSettingsId");
-
-                b.ToTable("StreamRoleWhitelistedUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("ExpiresAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "UserId", "RoleId");
-
-                b.HasIndex("ExpiresAt");
-
-                b.ToTable("TempRole");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("ArchiveId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsDone")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Todo")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ArchiveId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("Todos");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnbanAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnmuteAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .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("GuildId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("UnroleTimer");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Xp")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("UserId");
-
-                b.HasIndex("Xp");
-
-                b.HasIndex("UserId", "GuildId")
-                    .IsUnique();
-
-                b.ToTable("UserXpStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("VoiceChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "VoiceChannelId")
-                    .IsUnique();
-
-                b.ToTable("VcRoleInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("AffinityId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("ClaimerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<long>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("WaifuId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("AffinityId");
-
-                b.HasIndex("ClaimerId");
-
-                b.HasIndex("Price");
-
-                b.HasIndex("WaifuId")
-                    .IsUnique();
-
-                b.ToTable("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("ItemEmoji")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("WaifuInfoId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("WaifuInfoId");
-
-                b.ToTable("WaifuItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("NewId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("OldId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("UpdateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("NewId");
-
-                b.HasIndex("OldId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("WaifuUpdates");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("Forgiven")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ForgivenBy")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Moderator")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Reason")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Weight")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(1L);
-
-                b.HasKey("Id");
-
-                b.HasIndex("DateAdded");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("Warnings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Count")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Punishment")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Time")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "Count");
-
-                b.ToTable("WarningPunishment");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Amount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Level")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("XpSettingsId");
-
-                b.HasIndex("Level", "XpSettingsId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsUsing")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ItemKey")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("UserId", "ItemType", "ItemKey")
-                    .IsUnique();
-
-                b.ToTable("XpShopOwnedItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Count")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("FishId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("MaxStars")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("UserId", "FishId");
-
-                b.ToTable("FishCatch");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("Bait")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("Pole")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Skill")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("UserId")
-                    .IsUnique();
-
-                b.ToTable("UserFishStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
-            {
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("GuildId", "UserId", "RoleId");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("GuildId", "UserId");
-
-                b.ToTable("UserRole");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<float>("Cooldown")
-                    .HasColumnType("REAL");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "ChannelId", "RateType");
-
-                b.ToTable("ChannelXpConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<float>("Cooldown")
-                    .HasColumnType("REAL");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("XpTemplateUrl")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "RateType");
-
-                b.ToTable("GuildXpConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("AutoDeleteTimer")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0);
-
-                b.Property<ulong?>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GreetType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsEnabled")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(false);
-
-                b.Property<string>("MessageText")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "GreetType")
-                    .IsUnique();
-
-                b.ToTable("GreetSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
-            {
-                b.Property<ulong>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("Amount")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("UserId");
-
-                b.ToTable("Rakeback");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Game")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("LoseCount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("MaxBet")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("MaxWin")
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("TEXT");
-
-                b.Property<decimal>("TotalBet")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("WinCount")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("MaxWin");
-
-                b.HasIndex("UserId", "Game")
-                    .IsUnique();
-
-                b.ToTable("UserBetStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
-                    .WithMany("IgnoredChannels")
-                    .HasForeignKey("AntiSpamSettingId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            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.DiscordUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Members")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.NoAction);
-
-                b.Navigation("Club");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterInvitesChannelIds")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterLinksChannelIds")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterWordsChannelIds")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilteredWords")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
-                    .WithMany("Participants")
-                    .HasForeignKey("GiveawayId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
-                    .WithMany("LogIgnores")
-                    .HasForeignKey("LogSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("LogSetting");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("Permissions")
-                    .HasForeignKey("GuildConfigId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
-                    .WithMany("Songs")
-                    .HasForeignKey("MusicPlaylistId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.SarGroup", null)
-                    .WithMany("Roles")
-                    .HasForeignKey("SarGroupId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ShopEntry", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ShopEntryId")
-                    .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.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.WaifuInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
-                    .WithMany()
-                    .HasForeignKey("AffinityId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
-                    .WithMany()
-                    .HasForeignKey("ClaimerId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("Affinity");
-
-                b.Navigation("Claimer");
-
-                b.Navigation("Waifu");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
-                    .WithMany("Items")
-                    .HasForeignKey("WaifuInfoId");
-
-                b.Navigation("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
-                    .WithMany()
-                    .HasForeignKey("NewId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
-                    .WithMany()
-                    .HasForeignKey("OldId");
-
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-
-                b.Navigation("New");
-
-                b.Navigation("Old");
-
-                b.Navigation("User");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("CurrencyRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("RoleRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
-
-            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("Permissions");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b =>
-            {
-                b.Navigation("FilterInvitesChannelIds");
-
-                b.Navigation("FilterLinksChannelIds");
-
-                b.Navigation("FilterWordsChannelIds");
-
-                b.Navigation("FilteredWords");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Navigation("LogIgnores");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Navigation("Songs");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Navigation("Roles");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Navigation("Items");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Navigation("Blacklist");
-
-                b.Navigation("Whitelist");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Navigation("Items");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Navigation("CurrencyRewards");
-
-                b.Navigation("RoleRewards");
-            });
-#pragma warning restore 612, 618
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql b/src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql
new file mode 100644
index 0000000..d5f263a
--- /dev/null
+++ b/src/EllieBot/Migrations/Sqlite/20250317063119_scheduled-commands.sql
@@ -0,0 +1,22 @@
+BEGIN TRANSACTION;
+CREATE TABLE "ScheduledCommand" (
+    "Id" INTEGER NOT NULL CONSTRAINT "PK_ScheduledCommand" PRIMARY KEY AUTOINCREMENT,
+    "UserId" INTEGER NOT NULL,
+    "ChannelId" INTEGER NOT NULL,
+    "GuildId" INTEGER NOT NULL,
+    "MessageId" INTEGER NOT NULL,
+    "Text" TEXT NOT NULL,
+    "When" TEXT NOT NULL
+);
+
+CREATE INDEX "IX_ScheduledCommand_GuildId" ON "ScheduledCommand" ("GuildId");
+
+CREATE INDEX "IX_ScheduledCommand_UserId" ON "ScheduledCommand" ("UserId");
+
+CREATE INDEX "IX_ScheduledCommand_When" ON "ScheduledCommand" ("When");
+
+INSERT INTO "__EFMigrationsHistory" ("MigrationId", "ProductVersion")
+VALUES ('20250317063119_scheduled-commands', '9.0.1');
+
+COMMIT;
+
diff --git a/src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs b/src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs
new file mode 100644
index 0000000..93429ce
--- /dev/null
+++ b/src/EllieBot/Migrations/Sqlite/20250317063300_init.Designer.cs
@@ -0,0 +1,3109 @@
+// <auto-generated />
+using System;
+using EllieBot.Db;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+
+#nullable disable
+
+namespace EllieBot.Migrations.Sqlite
+{
+    [DbContext(typeof(SqliteContext))]
+    [Migration("20250317063300_init")]
+    partial class init
+    {
+        /// <inheritdoc />
+        protected override void BuildTargetModel(ModelBuilder modelBuilder)
+        {
+#pragma warning disable 612, 618
+            modelBuilder.HasAnnotation("ProductVersion", "9.0.1");
+
+            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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .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<ulong>("GuildId")
+                        .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("GuildId")
+                        .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<ulong>("GuildId")
+                        .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("GuildId")
+                        .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.ButtonRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ButtonId")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Emote")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("Exclusive")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Label")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("RoleId", "MessageId");
+
+                    b.HasIndex("GuildId");
+
+                    b.ToTable("ButtonRole");
+                });
+
+            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<string>("BannerUrl")
+                        .HasColumnType("TEXT");
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Mapping")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "CommandName")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("State")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
+
+                    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<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
+
+                    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.HasIndex("Username");
+
+                    b.ToTable("DiscordUser");
+                });
+
+            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.FeedSub", 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<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Url")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "Url")
+                        .IsUnique();
+
+                    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<int?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    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?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Word")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    b.ToTable("FilteredWord");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
+
+                    b.ToTable("FlagTranslateChannel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PrettyName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "Username", "Type");
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
+
+                    b.ToTable("GCChannelId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("Bet")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Feature")
+                        .HasColumnType("TEXT");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("Feature")
+                        .IsUnique();
+
+                    b.ToTable("GamblingStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("GiveawayModel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GiveawayId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("GiveawayUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ErrorColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("OkColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PendingColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("GuildColors");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("GameVoiceChannel")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Locale")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Prefix")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("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.GuildFilterConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("FilterInvites")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("FilterLinks")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("FilterWords")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.ToTable("GuildFilterConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
+                {
+                    b.Property<ulong>("GuildId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("GuildId");
+
+                    b.ToTable("HoneyPotChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("LogItemId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
+                        .IsUnique();
+
+                    b.ToTable("IgnoredLogChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique();
+
+                    b.ToTable("ImageOnlyChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelCreatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelDestroyedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogOtherId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogUserPresenceId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogVoicePresenceId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogVoicePresenceTTSId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogWarnsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MessageDeletedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MessageUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ThreadCreatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ThreadDeletedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserBannedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserJoinedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserLeftId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserMutedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserUnbannedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("LogSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MusicChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(100);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("MusicPlayerSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Author")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("MusicPlaylists");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("MutedUserId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<uint>("Color")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("OwnerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("Position");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("NCPixel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .IsRequired()
+                        .HasMaxLength(10000)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "Type");
+
+                    b.ToTable("Notify");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("UserId");
+
+                    b.HasIndex("UniquePlatformUserId")
+                        .IsUnique();
+
+                    b.ToTable("Patrons");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .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.HasIndex("GuildId");
+
+                    b.ToTable("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ChannelId");
+
+                    b.HasIndex("MessageId")
+                        .IsUnique();
+
+                    b.ToTable("PlantedCurrency");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MusicPlaylistId");
+
+                    b.ToTable("PlaylistSong");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("Keyword");
+
+                    b.ToTable("Quotes");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("MessageId", "Emote")
+                        .IsUnique();
+
+                    b.ToTable("ReactionRoles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("ServerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("When");
+
+                    b.ToTable("Reminders");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("LastMessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Repeaters");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("PlatformUserId")
+                        .IsUnique();
+
+                    b.ToTable("RewardedUsers");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("RotatingStatus");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("SarGroupId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "RoleId");
+
+                    b.HasIndex("SarGroupId");
+
+                    b.ToTable("Sar");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsEnabled")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("SarAutoDelete");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GroupNumber")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsExclusive")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("RoleReq")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "GroupNumber");
+
+                    b.ToTable("SarGroup");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .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("GuildId", "Index")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("StreamRoleSettingsId");
+
+                    b.ToTable("StreamRoleWhitelistedUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "UserId", "RoleId");
+
+                    b.HasIndex("ExpiresAt");
+
+                    b.ToTable("TempRole");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ArchiveId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("Todos");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnmuteAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .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("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("UnroleTimer");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.HasIndex("Xp");
+
+                    b.HasIndex("UserId", "GuildId")
+                        .IsUnique();
+
+                    b.ToTable("UserXpStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("VoiceChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "VoiceChannelId")
+                        .IsUnique();
+
+                    b.ToTable("VcRoleInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AffinityId");
+
+                    b.HasIndex("ClaimerId");
+
+                    b.HasIndex("Price");
+
+                    b.HasIndex("WaifuId")
+                        .IsUnique();
+
+                    b.ToTable("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("WaifuInfoId");
+
+                    b.ToTable("WaifuItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("NewId");
+
+                    b.HasIndex("OldId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("WaifuUpdates");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Weight")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(1L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("DateAdded");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("Warnings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Count")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "Count");
+
+                    b.ToTable("WarningPunishment");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("XpSettingsId");
+
+                    b.HasIndex("Level", "XpSettingsId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId", "ItemType", "ItemKey")
+                        .IsUnique();
+
+                    b.ToTable("XpShopOwnedItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Count")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("FishId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("MaxStars")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("UserId", "FishId");
+
+                    b.ToTable("FishCatch");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("Bait")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("Pole")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Skill")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("UserFishStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.HasIndex("When");
+
+                    b.ToTable("ScheduledCommand");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
+                {
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("GuildId", "UserId", "RoleId");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("GuildId", "UserId");
+
+                    b.ToTable("UserRole");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<float>("Cooldown")
+                        .HasColumnType("REAL");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "ChannelId", "RateType");
+
+                    b.ToTable("ChannelXpConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<float>("Cooldown")
+                        .HasColumnType("REAL");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("XpTemplateUrl")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "RateType");
+
+                    b.ToTable("GuildXpConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AutoDeleteTimer")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0);
+
+                    b.Property<ulong?>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GreetType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsEnabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
+
+                    b.Property<string>("MessageText")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "GreetType")
+                        .IsUnique();
+
+                    b.ToTable("GreetSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("UserId");
+
+                    b.ToTable("Rakeback");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Game")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("LoseCount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("MaxBet")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("MaxWin")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("TEXT");
+
+                    b.Property<decimal>("TotalBet")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("WinCount")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaxWin");
+
+                    b.HasIndex("UserId", "Game")
+                        .IsUnique();
+
+                    b.ToTable("UserBetStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
+                        .WithMany("IgnoredChannels")
+                        .HasForeignKey("AntiSpamSettingId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            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.DiscordUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Members")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.NoAction);
+
+                    b.Navigation("Club");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterInvitesChannelIds")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterLinksChannelIds")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterWordsChannelIds")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilteredWords")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
+                        .WithMany("Participants")
+                        .HasForeignKey("GiveawayId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
+                        .WithMany("LogIgnores")
+                        .HasForeignKey("LogSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("LogSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("Permissions")
+                        .HasForeignKey("GuildConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
+                        .WithMany("Songs")
+                        .HasForeignKey("MusicPlaylistId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
+                        .WithMany("Roles")
+                        .HasForeignKey("SarGroupId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ShopEntry", null)
+                        .WithMany("Items")
+                        .HasForeignKey("ShopEntryId")
+                        .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.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.WaifuInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
+                        .WithMany()
+                        .HasForeignKey("AffinityId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
+                        .WithMany()
+                        .HasForeignKey("ClaimerId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Affinity");
+
+                    b.Navigation("Claimer");
+
+                    b.Navigation("Waifu");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
+                        .WithMany("Items")
+                        .HasForeignKey("WaifuInfoId");
+
+                    b.Navigation("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
+                        .WithMany()
+                        .HasForeignKey("NewId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
+                        .WithMany()
+                        .HasForeignKey("OldId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("New");
+
+                    b.Navigation("Old");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("CurrencyRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("RoleRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            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("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b =>
+                {
+                    b.Navigation("FilterInvitesChannelIds");
+
+                    b.Navigation("FilterLinksChannelIds");
+
+                    b.Navigation("FilterWordsChannelIds");
+
+                    b.Navigation("FilteredWords");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Navigation("LogIgnores");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Navigation("Songs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Navigation("Roles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.Navigation("Blacklist");
+
+                    b.Navigation("Whitelist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.Navigation("CurrencyRewards");
+
+                    b.Navigation("RoleRewards");
+                });
+#pragma warning restore 612, 618
+        }
+    }
+}
diff --git a/src/EllieBot/Migrations/Sqlite/20250315225536_init.cs b/src/EllieBot/Migrations/Sqlite/20250317063300_init.cs
similarity index 98%
rename from src/EllieBot/Migrations/Sqlite/20250315225536_init.cs
rename to src/EllieBot/Migrations/Sqlite/20250317063300_init.cs
index c142ccf..73c5d84 100644
--- a/src/EllieBot/Migrations/Sqlite/20250315225536_init.cs
+++ b/src/EllieBot/Migrations/Sqlite/20250317063300_init.cs
@@ -857,6 +857,24 @@ namespace EllieBot.Migrations.Sqlite
                     table.UniqueConstraint("AK_SarGroup_GuildId_GroupNumber", x => new { x.GuildId, x.GroupNumber });
                 });
 
+            migrationBuilder.CreateTable(
+                name: "ScheduledCommand",
+                columns: table => new
+                {
+                    Id = table.Column<int>(type: "INTEGER", nullable: false)
+                        .Annotation("Sqlite:Autoincrement", true),
+                    UserId = table.Column<ulong>(type: "INTEGER", nullable: false),
+                    ChannelId = table.Column<ulong>(type: "INTEGER", nullable: false),
+                    GuildId = table.Column<ulong>(type: "INTEGER", nullable: false),
+                    MessageId = table.Column<ulong>(type: "INTEGER", nullable: false),
+                    Text = table.Column<string>(type: "TEXT", nullable: false),
+                    When = table.Column<DateTime>(type: "TEXT", nullable: false)
+                },
+                constraints: table =>
+                {
+                    table.PrimaryKey("PK_ScheduledCommand", x => x.Id);
+                });
+
             migrationBuilder.CreateTable(
                 name: "ShopEntry",
                 columns: table => new
@@ -2050,6 +2068,21 @@ namespace EllieBot.Migrations.Sqlite
                 column: "GuildId",
                 unique: true);
 
+            migrationBuilder.CreateIndex(
+                name: "IX_ScheduledCommand_GuildId",
+                table: "ScheduledCommand",
+                column: "GuildId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_ScheduledCommand_UserId",
+                table: "ScheduledCommand",
+                column: "UserId");
+
+            migrationBuilder.CreateIndex(
+                name: "IX_ScheduledCommand_When",
+                table: "ScheduledCommand",
+                column: "When");
+
             migrationBuilder.CreateIndex(
                 name: "IX_ShopEntry_GuildId_Index",
                 table: "ShopEntry",
@@ -2474,6 +2507,9 @@ namespace EllieBot.Migrations.Sqlite
             migrationBuilder.DropTable(
                 name: "SarAutoDelete");
 
+            migrationBuilder.DropTable(
+                name: "ScheduledCommand");
+
             migrationBuilder.DropTable(
                 name: "ShopEntryItem");
 
@@ -2592,4 +2628,4 @@ namespace EllieBot.Migrations.Sqlite
                 name: "DiscordUser");
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs b/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs
index 7a30ffb..0792778 100644
--- a/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs
+++ b/src/EllieBot/Migrations/Sqlite/SqliteContextModelSnapshot.cs
@@ -18,3053 +18,3089 @@ namespace EllieBot.Migrations.Sqlite
             modelBuilder.HasAnnotation("ProductVersion", "9.0.1");
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Action")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("ActionDurationMinutes")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("ActionDurationMinutes")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<TimeSpan>("MinAge")
-                    .HasColumnType("TEXT");
+                    b.Property<TimeSpan>("MinAge")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("AntiAltSetting");
-            });
+                    b.ToTable("AntiAltSetting");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Action")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("PunishDuration")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("PunishDuration")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("UserThreshold")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("UserThreshold")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("AntiRaidSetting");
-            });
+                    b.ToTable("AntiRaidSetting");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int?>("AntiSpamSettingId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("AntiSpamSettingId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("AntiSpamSettingId");
+                    b.HasIndex("AntiSpamSettingId");
 
-                b.ToTable("AntiSpamIgnore");
-            });
+                    b.ToTable("AntiSpamIgnore");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Action")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Action")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("MessageThreshold")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("MessageThreshold")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("MuteTime")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("MuteTime")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("AntiSpamSetting");
-            });
+                    b.ToTable("AntiSpamSetting");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("TodosArchive");
-            });
+                    b.ToTable("TodosArchive");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("ChannelName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("ChannelName")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("CommandText")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("CommandText")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("GuildName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("GuildName")
+                        .HasColumnType("TEXT");
 
-                b.Property<int>("Interval")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Interval")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("VoiceChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("VoiceChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("VoiceChannelName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("VoiceChannelName")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("AutoCommands");
-            });
+                    b.ToTable("AutoCommands");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("AutoPublishChannel");
-            });
+                    b.ToTable("AutoPublishChannel");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("AutoDelete")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("AutoDelete")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("ChannelId")
-                    .IsUnique();
+                    b.HasIndex("ChannelId")
+                        .IsUnique();
 
-                b.HasIndex("GuildId");
+                    b.HasIndex("GuildId");
 
-                b.ToTable("AutoTranslateChannels");
-            });
+                    b.ToTable("AutoTranslateChannels");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Source")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Source")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Target")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Target")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasAlternateKey("ChannelId", "UserId");
+                    b.HasAlternateKey("ChannelId", "UserId");
 
-                b.ToTable("AutoTranslateUsers");
-            });
+                    b.ToTable("AutoTranslateUsers");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int?>("PruneDays")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("PruneDays")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Text")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Text")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId")
-                    .IsUnique();
+                    b.HasIndex("GuildId")
+                        .IsUnique();
 
-                b.ToTable("BanTemplates");
-            });
+                    b.ToTable("BanTemplates");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<long>("Balance")
-                    .HasColumnType("INTEGER");
+                    b.Property<long>("Balance")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("UserId")
-                    .IsUnique();
+                    b.HasIndex("UserId")
+                        .IsUnique();
 
-                b.ToTable("BankUsers");
-            });
+                    b.ToTable("BankUsers");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("ItemId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ItemId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("Blacklist");
-            });
+                    b.ToTable("Blacklist");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ButtonRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("ButtonId")
-                    .IsRequired()
-                    .HasMaxLength(200)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("ButtonId")
+                        .IsRequired()
+                        .HasMaxLength(200)
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Emote")
-                    .IsRequired()
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Emote")
+                        .IsRequired()
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
 
-                b.Property<bool>("Exclusive")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("Exclusive")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Label")
-                    .IsRequired()
-                    .HasMaxLength(50)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Label")
+                        .IsRequired()
+                        .HasMaxLength(50)
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Position")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Position")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasAlternateKey("RoleId", "MessageId");
+                    b.HasAlternateKey("RoleId", "MessageId");
 
-                b.HasIndex("GuildId");
+                    b.HasIndex("GuildId");
 
-                b.ToTable("ButtonRole");
-            });
+                    b.ToTable("ButtonRole");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("ClubId", "UserId");
+                    b.HasKey("ClubId", "UserId");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.ToTable("ClubApplicants");
-            });
+                    b.ToTable("ClubApplicants");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
-            {
-                b.Property<int>("ClubId")
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("ClubId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("ClubId", "UserId");
+                    b.HasKey("ClubId", "UserId");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.ToTable("ClubBans");
-            });
+                    b.ToTable("ClubBans");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("BannerUrl")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("BannerUrl")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Description")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Description")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("ImageUrl")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("ImageUrl")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Name")
-                    .HasMaxLength(20)
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Name")
+                        .HasMaxLength(20)
+                        .HasColumnType("TEXT");
 
-                b.Property<int?>("OwnerId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("OwnerId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Xp")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Xp")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("Name")
-                    .IsUnique();
+                    b.HasIndex("Name")
+                        .IsUnique();
 
-                b.HasIndex("OwnerId")
-                    .IsUnique();
+                    b.HasIndex("OwnerId")
+                        .IsUnique();
 
-                b.ToTable("Clubs");
-            });
+                    b.ToTable("Clubs");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Mapping")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Mapping")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId");
+                    b.HasIndex("GuildId");
 
-                b.ToTable("CommandAlias");
-            });
+                    b.ToTable("CommandAlias");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("CommandName")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("CommandName")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Seconds")
-                    .HasColumnType("INTEGER");
+                    b.Property<int>("Seconds")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId", "CommandName")
-                    .IsUnique();
+                    b.HasIndex("GuildId", "CommandName")
+                        .IsUnique();
 
-                b.ToTable("CommandCooldown");
-            });
+                    b.ToTable("CommandCooldown");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<long>("Amount")
-                    .HasColumnType("INTEGER");
+                    b.Property<long>("Amount")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Extra")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Extra")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Note")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Note")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("OtherId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValueSql("NULL");
+                    b.Property<ulong?>("OtherId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValueSql("NULL");
 
-                b.Property<string>("Type")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Type")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.ToTable("CurrencyTransactions");
-            });
+                    b.ToTable("CurrencyTransactions");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("State")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("State")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
 
-                b.ToTable("DelMsgOnCmdChannel");
-            });
+                    b.ToTable("DelMsgOnCmdChannel");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Command")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Command")
+                        .HasColumnType("TEXT");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<ulong?>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("Perm")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("Perm")
+                        .HasColumnType("INTEGER");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasIndex("GuildId", "Command")
-                    .IsUnique();
+                    b.HasIndex("GuildId", "Command")
+                        .IsUnique();
 
-                b.ToTable("DiscordPermOverrides");
-            });
+                    b.ToTable("DiscordPermOverrides");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("AvatarId")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("AvatarId")
+                        .HasColumnType("TEXT");
 
-                b.Property<int?>("ClubId")
-                    .HasColumnType("INTEGER");
+                    b.Property<int?>("ClubId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<long>("CurrencyAmount")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0L);
+                    b.Property<long>("CurrencyAmount")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<bool>("IsClubAdmin")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(false);
+                    b.Property<bool>("IsClubAdmin")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
 
-                b.Property<long>("TotalXp")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0L);
+                    b.Property<long>("TotalXp")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0L);
 
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.HasAlternateKey("UserId");
+                    b.HasAlternateKey("UserId");
 
-                b.HasIndex("ClubId");
+                    b.HasIndex("ClubId");
 
-                b.HasIndex("CurrencyAmount");
+                    b.HasIndex("CurrencyAmount");
 
-                b.HasIndex("TotalXp");
+                    b.HasIndex("TotalXp");
 
-                b.HasIndex("UserId");
+                    b.HasIndex("UserId");
 
-                b.HasIndex("Username");
+                    b.HasIndex("Username");
 
-                b.ToTable("DiscordUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", 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<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Url")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "Url")
-                    .IsUnique();
-
-                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<int?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                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?>("GuildFilterConfigId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Word")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildFilterConfigId");
-
-                b.ToTable("FilteredWord");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
-
-                b.ToTable("FlagTranslateChannel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PrettyName")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "Username", "Type");
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "ChannelId")
-                    .IsUnique();
-
-                b.ToTable("GCChannelId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("Bet")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Feature")
-                    .HasColumnType("TEXT");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("Feature")
-                    .IsUnique();
-
-                b.ToTable("GamblingStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("EndsAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("GiveawayModel");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GiveawayId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GiveawayId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("GiveawayUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ErrorColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("OkColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PendingColor")
-                    .HasMaxLength(9)
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("GuildColors");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("AutoAssignRoleIds")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("CleverbotEnabled")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("DeleteMessageOnCommand")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("DeleteStreamOnlineMessage")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("DisableGlobalExpressions")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("GameVoiceChannel")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Locale")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("MuteRoleName")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("NotifyStreamOffline")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("PermissionRole")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Prefix")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("StickyRoles")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("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.GuildFilterConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterInvites")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterLinks")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("FilterWords")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.ToTable("GuildFilterConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
-            {
-                b.Property<ulong>("GuildId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("GuildId");
-
-                b.ToTable("HoneyPotChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("LogItemId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LogSettingId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("LogSettingId", "LogItemId", "ItemType")
-                    .IsUnique();
-
-                b.ToTable("IgnoredLogChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ChannelId")
-                    .IsUnique();
-
-                b.ToTable("ImageOnlyChannels");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelCreatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelDestroyedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ChannelUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogOtherId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogUserPresenceId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogVoicePresenceId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogVoicePresenceTTSId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("LogWarnsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MessageDeletedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MessageUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ThreadCreatedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("ThreadDeletedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserBannedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserJoinedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserLeftId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserMutedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserUnbannedId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("UserUpdatedId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("LogSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("AutoDisconnect")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("AutoPlay")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("MusicChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("PlayerRepeat")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("QualityPreset")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Volume")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(100);
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("MusicPlayerSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Author")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.ToTable("MusicPlaylists");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("MutedUserId");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<uint>("Color")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("OwnerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Position")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasMaxLength(256)
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("Position");
-
-                b.HasIndex("OwnerId");
-
-                b.ToTable("NCPixel");
-            });
+                    b.ToTable("DiscordUser");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.EllieExpression", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("AllowTarget")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("AllowTarget")
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("AutoDeleteTrigger")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("AutoDeleteTrigger")
+                        .HasColumnType("INTEGER");
 
-                b.Property<bool>("ContainsAnywhere")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("ContainsAnywhere")
+                        .HasColumnType("INTEGER");
 
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<bool>("DmResponse")
-                    .HasColumnType("INTEGER");
+                    b.Property<bool>("DmResponse")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong?>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<string>("Reactions")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Reactions")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Response")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Response")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Trigger")
-                    .HasColumnType("TEXT");
+                    b.Property<string>("Trigger")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.HasKey("Id");
 
-                b.ToTable("Expressions");
-            });
+                    b.ToTable("Expressions");
+                });
 
-            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
+            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong?>("ChannelId")
-                    .HasColumnType("INTEGER");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Property<string>("Message")
-                    .IsRequired()
-                    .HasMaxLength(10000)
-                    .HasColumnType("TEXT");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
 
-                b.HasKey("Id");
+                    b.Property<string>("Url")
+                        .HasColumnType("TEXT");
 
-                b.HasAlternateKey("GuildId", "Type");
+                    b.HasKey("Id");
 
-                b.ToTable("Notify");
-            });
+                    b.HasIndex("GuildId", "Url")
+                        .IsUnique();
 
-            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<ulong>("GuildId")
-                    .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.HasIndex("GuildId");
-
-                b.ToTable("Permissions");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Amount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Password")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ChannelId");
-
-                b.HasIndex("MessageId")
-                    .IsUnique();
-
-                b.ToTable("PlantedCurrency");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("MusicPlaylistId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Provider")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ProviderType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Query")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Title")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Uri")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("MusicPlaylistId");
-
-                b.ToTable("PlaylistSong");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("AuthorName")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Keyword")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Text")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("Keyword");
-
-                b.ToTable("Quotes");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Emote")
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Group")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("MessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("MessageId", "Emote")
-                    .IsUnique();
-
-                b.ToTable("ReactionRoles");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsPrivate")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("ServerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("When")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("When");
-
-                b.ToTable("Reminders");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan>("Interval")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("LastMessageId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Message")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("NoRedundant")
-                    .HasColumnType("INTEGER");
-
-                b.Property<TimeSpan?>("StartTimeOfDay")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.ToTable("Repeaters");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("AmountRewardedThisMonth")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime>("LastReward")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("PlatformUserId")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("PlatformUserId")
-                    .IsUnique();
-
-                b.ToTable("RewardedUsers");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Status")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Type")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.ToTable("RotatingStatus");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("LevelReq")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("SarGroupId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "RoleId");
-
-                b.HasIndex("SarGroupId");
-
-                b.ToTable("Sar");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsEnabled")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("SarAutoDelete");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GroupNumber")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsExclusive")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Name")
-                    .HasMaxLength(100)
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong?>("RoleReq")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "GroupNumber");
-
-                b.ToTable("SarGroup");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("AuthorId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Command")
-                    .HasColumnType("TEXT");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .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("GuildId", "Index")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "RoleId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Keyword")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("StreamRoleSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("StreamRoleSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Username")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("StreamRoleSettingsId");
-
-                b.ToTable("StreamRoleWhitelistedUser");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("ExpiresAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("Remove")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "UserId", "RoleId");
-
-                b.HasIndex("ExpiresAt");
-
-                b.ToTable("TempRole");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("ArchiveId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsDone")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Todo")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("ArchiveId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("Todos");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnbanAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime>("UnmuteAt")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "UserId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .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("GuildId", "UserId")
-                    .IsUnique();
-
-                b.ToTable("UnroleTimer");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Xp")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("UserId");
-
-                b.HasIndex("Xp");
-
-                b.HasIndex("UserId", "GuildId")
-                    .IsUnique();
-
-                b.ToTable("UserXpStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("VoiceChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "VoiceChannelId")
-                    .IsUnique();
-
-                b.ToTable("VcRoleInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("AffinityId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("ClaimerId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<long>("Price")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("WaifuId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("AffinityId");
-
-                b.HasIndex("ClaimerId");
-
-                b.HasIndex("Price");
-
-                b.HasIndex("WaifuId")
-                    .IsUnique();
-
-                b.ToTable("WaifuInfo");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("ItemEmoji")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Name")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("WaifuInfoId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("WaifuInfoId");
-
-                b.ToTable("WaifuItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int?>("NewId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("OldId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("UpdateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("NewId");
-
-                b.HasIndex("OldId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("WaifuUpdates");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("Forgiven")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ForgivenBy")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("Moderator")
-                    .HasColumnType("TEXT");
-
-                b.Property<string>("Reason")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("Weight")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(1L);
-
-                b.HasKey("Id");
-
-                b.HasIndex("DateAdded");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("UserId");
-
-                b.ToTable("Warnings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Count")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Punishment")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong?>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Time")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "Count");
-
-                b.ToTable("WarningPunishment");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Amount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("Level")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("XpSettingsId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("XpSettingsId");
-
-                b.HasIndex("Level", "XpSettingsId")
-                    .IsUnique();
-
-                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<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId")
-                    .IsUnique();
-
-                b.ToTable("XpSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<DateTime?>("DateAdded")
-                    .HasColumnType("TEXT");
-
-                b.Property<bool>("IsUsing")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("ItemKey")
-                    .IsRequired()
-                    .HasColumnType("TEXT");
-
-                b.Property<int>("ItemType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("UserId", "ItemType", "ItemKey")
-                    .IsUnique();
-
-                b.ToTable("XpShopOwnedItem");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Count")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("FishId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("MaxStars")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("UserId", "FishId");
-
-                b.ToTable("FishCatch");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("Bait")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int?>("Pole")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Skill")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("UserId")
-                    .IsUnique();
-
-                b.ToTable("UserFishStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
-            {
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("RoleId")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("GuildId", "UserId", "RoleId");
-
-                b.HasIndex("GuildId");
-
-                b.HasIndex("GuildId", "UserId");
-
-                b.ToTable("UserRole");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<float>("Cooldown")
-                    .HasColumnType("REAL");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "ChannelId", "RateType");
-
-                b.ToTable("ChannelXpConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<float>("Cooldown")
-                    .HasColumnType("REAL");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("RateType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("XpAmount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<string>("XpTemplateUrl")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasAlternateKey("GuildId", "RateType");
-
-                b.ToTable("GuildXpConfig");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("AutoDeleteTimer")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(0);
-
-                b.Property<ulong?>("ChannelId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("GreetType")
-                    .HasColumnType("INTEGER");
-
-                b.Property<ulong>("GuildId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<bool>("IsEnabled")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER")
-                    .HasDefaultValue(false);
-
-                b.Property<string>("MessageText")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("Id");
-
-                b.HasIndex("GuildId", "GreetType")
-                    .IsUnique();
-
-                b.ToTable("GreetSettings");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
-            {
-                b.Property<ulong>("UserId")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("Amount")
-                    .HasColumnType("TEXT");
-
-                b.HasKey("UserId");
-
-                b.ToTable("Rakeback");
-            });
-
-            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
-            {
-                b.Property<int>("Id")
-                    .ValueGeneratedOnAdd()
-                    .HasColumnType("INTEGER");
-
-                b.Property<int>("Game")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("LoseCount")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("MaxBet")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("MaxWin")
-                    .HasColumnType("INTEGER");
-
-                b.Property<decimal>("PaidOut")
-                    .HasColumnType("TEXT");
-
-                b.Property<decimal>("TotalBet")
-                    .HasColumnType("TEXT");
-
-                b.Property<ulong>("UserId")
-                    .HasColumnType("INTEGER");
-
-                b.Property<long>("WinCount")
-                    .HasColumnType("INTEGER");
-
-                b.HasKey("Id");
-
-                b.HasIndex("MaxWin");
-
-                b.HasIndex("UserId", "Game")
-                    .IsUnique();
-
-                b.ToTable("UserBetStats");
-            });
-
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
-                    .WithMany("IgnoredChannels")
-                    .HasForeignKey("AntiSpamSettingId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
-
-            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.DiscordUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
-                    .WithMany("Members")
-                    .HasForeignKey("ClubId")
-                    .OnDelete(DeleteBehavior.NoAction);
-
-                b.Navigation("Club");
-            });
+                    b.ToTable("FeedSub");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterInvitesChannelIds")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    b.ToTable("FilterChannelId");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterLinksChannelIds")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    b.ToTable("FilterLinksChannelId");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilterWordsChannelIds")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildFilterConfigId");
+
+                    b.ToTable("FilterWordsChannelId");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
-                    .WithMany("FilteredWords")
-                    .HasForeignKey("GuildFilterConfigId");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
-                    .WithMany("Participants")
-                    .HasForeignKey("GiveawayId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
-                    .WithMany("LogIgnores")
-                    .HasForeignKey("LogSettingId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.Property<int?>("GuildFilterConfigId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("LogSetting");
-            });
+                    b.Property<string>("Word")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.GuildConfig", null)
-                    .WithMany("Permissions")
-                    .HasForeignKey("GuildConfigId");
-            });
+                    b.HasKey("Id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
-                    .WithMany("Songs")
-                    .HasForeignKey("MusicPlaylistId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.HasIndex("GuildFilterConfigId");
 
-            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.SarGroup", null)
-                    .WithMany("Roles")
-                    .HasForeignKey("SarGroupId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
+                    b.ToTable("FilteredWord");
+                });
 
-            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.FlagTranslateChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
-                    .WithMany("Blacklist")
-                    .HasForeignKey("StreamRoleSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("StreamRoleSettings");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
-                    .WithMany("Whitelist")
-                    .HasForeignKey("StreamRoleSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("StreamRoleSettings");
-            });
+                    b.HasKey("Id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null)
-                    .WithMany("Items")
-                    .HasForeignKey("ArchiveId")
-                    .OnDelete(DeleteBehavior.Cascade);
-            });
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
 
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
-                    .WithMany()
-                    .HasForeignKey("AffinityId");
+                    b.ToTable("FlagTranslateChannel");
+                });
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
-                    .WithMany()
-                    .HasForeignKey("ClaimerId");
+            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
-                    .WithOne()
-                    .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("Affinity");
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("Claimer");
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("Waifu");
-            });
+                    b.Property<string>("PrettyName")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
-                    .WithMany("Items")
-                    .HasForeignKey("WaifuInfoId");
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("WaifuInfo");
-            });
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
-                    .WithMany()
-                    .HasForeignKey("NewId");
+                    b.HasKey("Id");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
-                    .WithMany()
-                    .HasForeignKey("OldId");
+                    b.HasIndex("GuildId", "Username", "Type");
 
-                b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
-                    .WithMany()
-                    .HasForeignKey("UserId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
+                    b.ToTable("FollowedStream");
+                });
 
-                b.Navigation("New");
+            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("Old");
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("User");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("CurrencyRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
 
-            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
-            {
-                b.HasOne("EllieBot.Db.Models.XpSettings", null)
-                    .WithMany("RoleRewards")
-                    .HasForeignKey("XpSettingsId")
-                    .OnDelete(DeleteBehavior.Cascade)
-                    .IsRequired();
-            });
+                    b.HasKey("Id");
 
-            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
-            {
-                b.Navigation("IgnoredChannels");
-            });
+                    b.HasIndex("GuildId", "ChannelId")
+                        .IsUnique();
 
-            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
-            {
-                b.Navigation("Items");
-            });
+                    b.ToTable("GCChannelId");
+                });
 
-            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
-            {
-                b.Navigation("Users");
-            });
+            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
-            {
-                b.Navigation("Applicants");
+                    b.Property<decimal>("Bet")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("Bans");
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
 
-                b.Navigation("Members");
-            });
+                    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.Navigation("Participants");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("EndsAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("GiveawayModel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GiveawayId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GiveawayId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("GiveawayUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ErrorColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("OkColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PendingColor")
+                        .HasMaxLength(9)
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("GuildColors");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
-            {
-                b.Navigation("Permissions");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AutoAssignRoleIds")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("CleverbotEnabled")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("DeleteMessageOnCommand")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("DeleteStreamOnlineMessage")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("DisableGlobalExpressions")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("GameVoiceChannel")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Locale")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("MuteRoleName")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("NotifyStreamOffline")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("PermissionRole")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Prefix")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("StickyRoles")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("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.GuildFilterConfig", b =>
-            {
-                b.Navigation("FilterInvitesChannelIds");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilterLinksChannelIds");
+                    b.Property<bool>("FilterInvites")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilterWordsChannelIds");
+                    b.Property<bool>("FilterLinks")
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("FilteredWords");
-            });
+                    b.Property<bool>("FilterWords")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.ToTable("GuildFilterConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
+                {
+                    b.Property<ulong>("GuildId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("GuildId");
+
+                    b.ToTable("HoneyPotChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("LogItemId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LogSettingId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
+                        .IsUnique();
+
+                    b.ToTable("IgnoredLogChannels");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ChannelId")
+                        .IsUnique();
+
+                    b.ToTable("ImageOnlyChannels");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
-            {
-                b.Navigation("LogIgnores");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelCreatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelDestroyedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogOtherId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogUserPresenceId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogVoicePresenceId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogVoicePresenceTTSId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("LogWarnsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MessageDeletedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MessageUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ThreadCreatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ThreadDeletedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserBannedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserJoinedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserLeftId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserMutedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserUnbannedId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("UserUpdatedId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("LogSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoDisconnect")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("AutoPlay")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("MusicChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("PlayerRepeat")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("QualityPreset")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Volume")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(100);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("MusicPlayerSettings");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
-            {
-                b.Navigation("Songs");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Author")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("MusicPlaylists");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("MutedUserId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<uint>("Color")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("OwnerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Position")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasMaxLength(256)
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("Position");
+
+                    b.HasIndex("OwnerId");
+
+                    b.ToTable("NCPixel");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Notify", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .IsRequired()
+                        .HasMaxLength(10000)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "Type");
+
+                    b.ToTable("Notify");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AmountCents")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("LastCharge")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("UniquePlatformUserId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("ValidThru")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("UserId");
+
+                    b.HasIndex("UniquePlatformUserId")
+                        .IsUnique();
+
+                    b.ToTable("Patrons");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .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.HasIndex("GuildId");
+
+                    b.ToTable("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Password")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ChannelId");
+
+                    b.HasIndex("MessageId")
+                        .IsUnique();
+
+                    b.ToTable("PlantedCurrency");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("MusicPlaylistId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Provider")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ProviderType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Query")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Title")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Uri")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MusicPlaylistId");
+
+                    b.ToTable("PlaylistSong");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("AuthorName")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Keyword")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("Keyword");
+
+                    b.ToTable("Quotes");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Emote")
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Group")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("MessageId", "Emote")
+                        .IsUnique();
+
+                    b.ToTable("ReactionRoles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsPrivate")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("ServerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("When");
+
+                    b.ToTable("Reminders");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan>("Interval")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("LastMessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Message")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("NoRedundant")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<TimeSpan?>("StartTimeOfDay")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("Repeaters");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("AmountRewardedThisMonth")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime>("LastReward")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("PlatformUserId")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("PlatformUserId")
+                        .IsUnique();
+
+                    b.ToTable("RewardedUsers");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Status")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("RotatingStatus");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("LevelReq")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("SarGroupId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "RoleId");
+
+                    b.HasIndex("SarGroupId");
+
+                    b.ToTable("Sar");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsEnabled")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("SarAutoDelete");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
-            {
-                b.Navigation("Roles");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GroupNumber")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsExclusive")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasMaxLength(100)
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong?>("RoleReq")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "GroupNumber");
+
+                    b.ToTable("SarGroup");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("AuthorId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Command")
+                        .HasColumnType("TEXT");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .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("GuildId", "Index")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "RoleId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("SlowmodeIgnoredUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("RoleIds")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("StickyRoles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Type")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.ToTable("StreamOnlineMessages");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("StreamRoleSettingsId");
+
+                    b.ToTable("StreamRoleBlacklistedUser");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
-            {
-                b.Navigation("Blacklist");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("Whitelist");
-            });
+                    b.Property<ulong>("AddRoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("Enabled")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("FromRoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GuildConfigId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Keyword")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("StreamRoleSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("StreamRoleSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Username")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("StreamRoleSettingsId");
+
+                    b.ToTable("StreamRoleWhitelistedUser");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TempRole", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("ExpiresAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "UserId", "RoleId");
+
+                    b.HasIndex("ExpiresAt");
+
+                    b.ToTable("TempRole");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("ArchiveId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsDone")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Todo")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("ArchiveId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("Todos");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnbanAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("UnmuteAt")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "UserId")
+                        .IsUnique();
+
+                    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<ulong>("GuildId")
+                        .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("GuildId", "UserId")
+                        .IsUnique();
+
+                    b.ToTable("UnroleTimer");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Xp")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.HasIndex("Xp");
+
+                    b.HasIndex("UserId", "GuildId")
+                        .IsUnique();
+
+                    b.ToTable("UserXpStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("VoiceChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "VoiceChannelId")
+                        .IsUnique();
+
+                    b.ToTable("VcRoleInfo");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
-            {
-                b.Navigation("Items");
-            });
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("AffinityId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("ClaimerId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<long>("Price")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("WaifuId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("AffinityId");
+
+                    b.HasIndex("ClaimerId");
+
+                    b.HasIndex("Price");
+
+                    b.HasIndex("WaifuId")
+                        .IsUnique();
+
+                    b.ToTable("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("ItemEmoji")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Name")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("WaifuInfoId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("WaifuInfoId");
+
+                    b.ToTable("WaifuItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int?>("NewId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("OldId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UpdateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("NewId");
+
+                    b.HasIndex("OldId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("WaifuUpdates");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("Forgiven")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ForgivenBy")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Moderator")
+                        .HasColumnType("TEXT");
+
+                    b.Property<string>("Reason")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("Weight")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(1L);
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("DateAdded");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.ToTable("Warnings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Count")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Punishment")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong?>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Time")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "Count");
+
+                    b.ToTable("WarningPunishment");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Amount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("XpSettingsId");
+
+                    b.HasIndex("Level", "XpSettingsId")
+                        .IsUnique();
+
+                    b.ToTable("XpCurrencyReward");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("Level")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("Remove")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("XpSettingsId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("XpSettingsId", "Level")
+                        .IsUnique();
+
+                    b.ToTable("XpRoleReward");
+                });
 
             modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
-            {
-                b.Navigation("CurrencyRewards");
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
 
-                b.Navigation("RoleRewards");
-            });
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId")
+                        .IsUnique();
+
+                    b.ToTable("XpSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime?>("DateAdded")
+                        .HasColumnType("TEXT");
+
+                    b.Property<bool>("IsUsing")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("ItemKey")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<int>("ItemType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId", "ItemType", "ItemKey")
+                        .IsUnique();
+
+                    b.ToTable("XpShopOwnedItem");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.FishCatch", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Count")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("FishId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("MaxStars")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("UserId", "FishId");
+
+                    b.ToTable("FishCatch");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Games.UserFishStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("Bait")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int?>("Pole")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Skill")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("UserId")
+                        .IsUnique();
+
+                    b.ToTable("UserFishStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.Scheduled.ScheduledCommand", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("MessageId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("Text")
+                        .IsRequired()
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<DateTime>("When")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("UserId");
+
+                    b.HasIndex("When");
+
+                    b.ToTable("ScheduledCommand");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Utility.UserRole.UserRole", b =>
+                {
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("RoleId")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("GuildId", "UserId", "RoleId");
+
+                    b.HasIndex("GuildId");
+
+                    b.HasIndex("GuildId", "UserId");
+
+                    b.ToTable("UserRole");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.ChannelXpConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<float>("Cooldown")
+                        .HasColumnType("REAL");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "ChannelId", "RateType");
+
+                    b.ToTable("ChannelXpConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Modules.Xp.GuildXpConfig", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<float>("Cooldown")
+                        .HasColumnType("REAL");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("RateType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("XpAmount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<string>("XpTemplateUrl")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasAlternateKey("GuildId", "RateType");
+
+                    b.ToTable("GuildXpConfig");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("AutoDeleteTimer")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(0);
+
+                    b.Property<ulong?>("ChannelId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("GreetType")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<ulong>("GuildId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<bool>("IsEnabled")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER")
+                        .HasDefaultValue(false);
+
+                    b.Property<string>("MessageText")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("GuildId", "GreetType")
+                        .IsUnique();
+
+                    b.ToTable("GreetSettings");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
+                {
+                    b.Property<ulong>("UserId")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("Amount")
+                        .HasColumnType("TEXT");
+
+                    b.HasKey("UserId");
+
+                    b.ToTable("Rakeback");
+                });
+
+            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
+                {
+                    b.Property<int>("Id")
+                        .ValueGeneratedOnAdd()
+                        .HasColumnType("INTEGER");
+
+                    b.Property<int>("Game")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("LoseCount")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("MaxBet")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("MaxWin")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<decimal>("PaidOut")
+                        .HasColumnType("TEXT");
+
+                    b.Property<decimal>("TotalBet")
+                        .HasColumnType("TEXT");
+
+                    b.Property<ulong>("UserId")
+                        .HasColumnType("INTEGER");
+
+                    b.Property<long>("WinCount")
+                        .HasColumnType("INTEGER");
+
+                    b.HasKey("Id");
+
+                    b.HasIndex("MaxWin");
+
+                    b.HasIndex("UserId", "Game")
+                        .IsUnique();
+
+                    b.ToTable("UserBetStats");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
+                        .WithMany("IgnoredChannels")
+                        .HasForeignKey("AntiSpamSettingId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            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.DiscordUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
+                        .WithMany("Members")
+                        .HasForeignKey("ClubId")
+                        .OnDelete(DeleteBehavior.NoAction);
+
+                    b.Navigation("Club");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterInvitesChannelIds")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterLinksChannelIds")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilterWordsChannelIds")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildFilterConfig", null)
+                        .WithMany("FilteredWords")
+                        .HasForeignKey("GuildFilterConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
+                        .WithMany("Participants")
+                        .HasForeignKey("GiveawayId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
+                        .WithMany("LogIgnores")
+                        .HasForeignKey("LogSettingId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("LogSetting");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
+                        .WithMany("Permissions")
+                        .HasForeignKey("GuildConfigId");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
+                        .WithMany("Songs")
+                        .HasForeignKey("MusicPlaylistId")
+                        .OnDelete(DeleteBehavior.Cascade);
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
+                        .WithMany("Roles")
+                        .HasForeignKey("SarGroupId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.ShopEntry", null)
+                        .WithMany("Items")
+                        .HasForeignKey("ShopEntryId")
+                        .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.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.WaifuInfo", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
+                        .WithMany()
+                        .HasForeignKey("AffinityId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
+                        .WithMany()
+                        .HasForeignKey("ClaimerId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
+                        .WithOne()
+                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("Affinity");
+
+                    b.Navigation("Claimer");
+
+                    b.Navigation("Waifu");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
+                        .WithMany("Items")
+                        .HasForeignKey("WaifuInfoId");
+
+                    b.Navigation("WaifuInfo");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
+                        .WithMany()
+                        .HasForeignKey("NewId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
+                        .WithMany()
+                        .HasForeignKey("OldId");
+
+                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
+                        .WithMany()
+                        .HasForeignKey("UserId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+
+                    b.Navigation("New");
+
+                    b.Navigation("Old");
+
+                    b.Navigation("User");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("CurrencyRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
+                {
+                    b.HasOne("EllieBot.Db.Models.XpSettings", null)
+                        .WithMany("RoleRewards")
+                        .HasForeignKey("XpSettingsId")
+                        .OnDelete(DeleteBehavior.Cascade)
+                        .IsRequired();
+                });
+
+            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("Permissions");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.GuildFilterConfig", b =>
+                {
+                    b.Navigation("FilterInvitesChannelIds");
+
+                    b.Navigation("FilterLinksChannelIds");
+
+                    b.Navigation("FilterWordsChannelIds");
+
+                    b.Navigation("FilteredWords");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
+                {
+                    b.Navigation("LogIgnores");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
+                {
+                    b.Navigation("Songs");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
+                {
+                    b.Navigation("Roles");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
+                {
+                    b.Navigation("Blacklist");
+
+                    b.Navigation("Whitelist");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
+                {
+                    b.Navigation("Items");
+                });
+
+            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
+                {
+                    b.Navigation("CurrencyRewards");
+
+                    b.Navigation("RoleRewards");
+                });
 #pragma warning restore 612, 618
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs b/src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs
new file mode 100644
index 0000000..300ed4a
--- /dev/null
+++ b/src/EllieBot/Modules/Utility/Scheduled/ScheduleCommandService.cs
@@ -0,0 +1,150 @@
+using LinqToDB;
+using LinqToDB.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore;
+using EllieBot.Common.ModuleBehaviors;
+using EllieBot.Modules.Administration;
+
+namespace EllieBot.Modules.Utility.Scheduled;
+
+public sealed class ScheduleCommandService(
+    DbService db,
+    ICommandHandler cmdHandler,
+    DiscordSocketClient client,
+    ShardData shardData) : IEService, IReadyExecutor
+{
+    private TaskCompletionSource _tcs = new();
+
+    public async Task OnReadyAsync()
+    {
+        while (true)
+        {
+            _tcs = new();
+
+            // get the next scheduled command
+            var scheduledCommand = await db.GetDbContext()
+                .GetTable<ScheduledCommand>()
+                .Where(x => Queries.GuildOnShard(x.GuildId, shardData.TotalShards, shardData.ShardId))
+                .OrderBy(x => x.When)
+                .FirstOrDefaultAsyncLinqToDB();
+
+            if (scheduledCommand is null)
+            {
+                await _tcs.Task;
+                continue;
+            }
+
+            var now = DateTime.UtcNow;
+            if (scheduledCommand.When > now)
+            {
+                var diff = scheduledCommand.When - now;
+                await Task.WhenAny(Task.Delay(diff), _tcs.Task);
+                continue;
+            }
+
+            await db.GetDbContext()
+                .GetTable<ScheduledCommand>()
+                .Where(x => x.Id == scheduledCommand.Id)
+                .DeleteAsync();
+
+            var guild = client.GetGuild(scheduledCommand.GuildId);
+            var channel = guild?.GetChannel(scheduledCommand.ChannelId) as ISocketMessageChannel;
+
+            if (guild is null || channel is null)
+                continue;
+
+            var message = await channel.GetMessageAsync(scheduledCommand.MessageId) as IUserMessage;
+            var user = await (guild as IGuild).GetUserAsync(scheduledCommand.UserId);
+
+            if (message is null || user is null)
+                continue;
+
+            _ = Task.Run(async ()
+                => await cmdHandler.TryRunCommand(guild,
+                    channel,
+                    new DoAsUserMessage(message, user, scheduledCommand.Text)));
+        }
+    }
+
+    /// <summary>
+    /// Adds a scheduled command to be executed after the specified time
+    /// </summary>
+    /// <param name="guildId">ID of the guild</param>
+    /// <param name="channelId">ID of the channel where the command was issued</param>
+    /// <param name="messageId">ID of the message that triggered this command</param>
+    /// <param name="userId">ID of the user who scheduled the command</param>
+    /// <param name="commandText">The command text to execute</param>
+    /// <param name="when">Time span after which the command will be executed</param>
+    /// <returns>True if command was added, false if user reached the limit</returns>
+    public async Task<bool> AddScheduledCommandAsync(
+        ulong guildId,
+        ulong channelId,
+        ulong messageId,
+        ulong userId,
+        string commandText,
+        TimeSpan when)
+    {
+        ArgumentException.ThrowIfNullOrWhiteSpace(commandText, nameof(commandText));
+
+        await using var uow = db.GetDbContext();
+
+        var count = await uow.GetTable<ScheduledCommand>()
+            .Where(x => x.GuildId == guildId && x.UserId == userId)
+            .CountAsyncLinqToDB();
+
+        if (count >= 5)
+            return false;
+
+        await uow.GetTable<ScheduledCommand>()
+            .InsertAsync(() => new()
+            {
+                GuildId = guildId,
+                UserId = userId,
+                Text = commandText,
+                When = DateTime.UtcNow + when,
+                ChannelId = channelId,
+                MessageId = messageId
+            });
+
+        _tcs.TrySetResult();
+
+        return true;
+    }
+
+    /// <summary>
+    /// Gets all scheduled commands for a specific user in a guild
+    /// </summary>
+    /// <param name="guildId">Guild ID</param>
+    /// <param name="userId">User ID</param>
+    /// <returns>List of scheduled commands</returns>
+    public async Task<List<ScheduledCommand>> GetUserScheduledCommandsAsync(ulong guildId, ulong userId)
+    {
+        await using var uow = db.GetDbContext();
+
+        return await uow.GetTable<ScheduledCommand>()
+            .Where(x => x.GuildId == guildId && x.UserId == userId)
+            .OrderBy(x => x.When)
+            .AsNoTracking()
+            .ToListAsyncLinqToDB();
+    }
+
+    /// <summary>
+    /// Deletes a scheduled command by its ID
+    /// </summary>
+    /// <param name="id">ID of the scheduled command</param>
+    /// <param name="guildId">Guild ID</param>
+    /// <param name="userId">User ID</param>
+    /// <returns>True if command was deleted, false otherwise</returns>
+    public async Task<bool> DeleteScheduledCommandAsync(int id, ulong guildId, ulong userId)
+    {
+        await using var uow = db.GetDbContext();
+
+        var result = await uow.GetTable<ScheduledCommand>()
+            .Where(x => x.Id == id && x.GuildId == guildId && x.UserId == userId)
+            .DeleteAsync();
+
+        if (result > 0)
+            _tcs.TrySetResult();
+
+        return result > 0;
+    }
+}
\ No newline at end of file
diff --git a/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs
new file mode 100644
index 0000000..eb14f1f
--- /dev/null
+++ b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommand.cs
@@ -0,0 +1,28 @@
+using System.ComponentModel.DataAnnotations;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Metadata.Builders;
+
+namespace EllieBot.Modules.Utility.Scheduled;
+
+public sealed class ScheduledCommand
+{
+    [Key]
+    public int Id { get; set; }
+
+    public ulong UserId { get; set; }
+    public ulong ChannelId { get; set; }
+    public ulong GuildId { get; set; }
+    public ulong MessageId { get; set; }
+    public string Text { get; set; } = string.Empty;
+    public DateTime When { get; set; }
+}
+
+public sealed class ScheduledCommandEntityConfiguration : IEntityTypeConfiguration<ScheduledCommand>
+{
+    public void Configure(EntityTypeBuilder<ScheduledCommand> builder)
+    {
+        builder.HasIndex(x => x.UserId);
+        builder.HasIndex(x => x.GuildId);
+        builder.HasIndex(x => x.When);
+    }
+}
\ No newline at end of file
diff --git a/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs
new file mode 100644
index 0000000..575d1ac
--- /dev/null
+++ b/src/EllieBot/Modules/Utility/Scheduled/ScheduledCommands.cs
@@ -0,0 +1,89 @@
+using EllieBot.Common.TypeReaders.Models;
+
+namespace EllieBot.Modules.Utility.Scheduled;
+
+public partial class Utility
+{
+    [Group]
+    public class ScheduledCommands(ScheduleCommandService scs) : EllieModule
+    {
+        [Cmd]
+        [RequireContext(ContextType.Guild)]
+        public async Task ScheduleList()
+        {
+            var scheduledCommands = await scs.GetUserScheduledCommandsAsync(ctx.Guild.Id, ctx.User.Id);
+
+            if (scheduledCommands.Count == 0)
+            {
+                await Response().Error(strs.schedule_list_none).SendAsync();
+                return;
+            }
+
+            await Response()
+                .Paginated()
+                .Items(scheduledCommands)
+                .PageSize(5)
+                .Page((pageCommands, _) =>
+                {
+                    var eb = CreateEmbed()
+                        .WithTitle(GetText(strs.schedule_list_title))
+                        .WithAuthor(ctx.User)
+                        .WithOkColor();
+
+                    foreach (var cmd in pageCommands)
+                    {
+                        eb.AddField(
+                            $"`{GetText(strs.schedule_id)}:` {cmd.Id}",
+                            $"""
+                             `{GetText(strs.schedule_command)}:` {cmd.Text}
+                             `{GetText(strs.schedule_when)}:` {TimestampTag.FromDateTime(cmd.When, TimestampTagStyles.Relative)}
+                             """);
+                    }
+
+                    return eb;
+                })
+                .SendAsync();
+        }
+
+        [Cmd]
+        [RequireContext(ContextType.Guild)]
+        public async Task ScheduleDelete([Leftover] int id)
+        {
+            var success = await scs.DeleteScheduledCommandAsync(id, ctx.Guild.Id, ctx.User.Id);
+
+            if (success)
+            {
+                await Response().Confirm(strs.schedule_deleted(id)).SendAsync();
+            }
+            else
+            {
+                await Response().Error(strs.schedule_delete_error).SendAsync();
+            }
+        }
+
+        [Cmd]
+        [RequireContext(ContextType.Guild)]
+        public async Task ScheduleAdd(ParsedTimespan timeString, [Leftover] string commandText)
+        {
+            if (timeString.Time < TimeSpan.FromMinutes(1))
+                return;
+
+            var success = await scs.AddScheduledCommandAsync(
+                ctx.Guild.Id,
+                ctx.Channel.Id,
+                ctx.Message.Id,
+                ctx.User.Id,
+                commandText,
+                timeString.Time);
+
+            if (success)
+            {
+                await Response().Confirm(strs.schedule_add_success).SendAsync();
+            }
+            else
+            {
+                await Response().Error(strs.schedule_add_error).SendAsync();
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/EllieBot/_common/DoAsUserMessage.cs b/src/EllieBot/_common/DoAsUserMessage.cs
index e9c9d55..cc369f9 100644
--- a/src/EllieBot/_common/DoAsUserMessage.cs
+++ b/src/EllieBot/_common/DoAsUserMessage.cs
@@ -8,7 +8,7 @@ public sealed class DoAsUserMessage : IUserMessage
     private IUserMessage _msg;
     private readonly IUser _user;
 
-    public DoAsUserMessage(SocketUserMessage msg, IUser user, string message)
+    public DoAsUserMessage(IUserMessage msg, IUser user, string message)
     {
         _msg = msg;
         _user = user;
diff --git a/src/EllieBot/strings/aliases.yml b/src/EllieBot/strings/aliases.yml
index f707aa0..1ba0dc7 100644
--- a/src/EllieBot/strings/aliases.yml
+++ b/src/EllieBot/strings/aliases.yml
@@ -1614,4 +1614,16 @@ userrolename:
    - urn
 userroleicon:
    - userroleicon
-   - uri
\ No newline at end of file
+   - uri
+schedulelist:
+   - schedulelist
+   - schl
+   - schli
+scheduledelete:
+   - scheduledelete
+   - schd
+   - schdel
+scheduleadd:
+   - scheduleadd
+   - scha
+   - schadd
\ No newline at end of file
diff --git a/src/EllieBot/strings/commands/commands.en-US.yml b/src/EllieBot/strings/commands/commands.en-US.yml
index 98f8a2b..3c17d20 100644
--- a/src/EllieBot/strings/commands/commands.en-US.yml
+++ b/src/EllieBot/strings/commands/commands.en-US.yml
@@ -5073,4 +5073,31 @@ userrolename:
     - role:
         desc: 'The assigned role to rename.'
       name:
-        desc: 'The new name for the role.'
\ No newline at end of file
+        desc: 'The new name for the role.'
+schedulelist:
+   desc: |-
+     Lists your scheduled commands in the current server.
+   ex:
+     - ''
+   params:
+     - { }
+scheduledelete:
+   desc: |-
+     Deletes one of your scheduled commands by its ID.
+   ex:
+     - '5'
+   params:
+     - id:
+         desc: "The ID of the scheduled command to delete." 
+scheduleadd:
+   desc: |-
+     Schedules a command to be executed after the specified amount of time.
+     You can schedule up to 5 commands at a time.
+   ex:
+     - '1h5m .say Hello after 1 hour and 5 minutes'
+     - '3h .br all'
+   params:
+     - time:
+         desc: "How long it takes for the command to execute. Example: 1h30m = 1 hour and 30 minutes"
+     - command:
+         desc: "Command that will be executed after the specified time has elapsed"
\ No newline at end of file
diff --git a/src/EllieBot/strings/responses/responses.en-US.json b/src/EllieBot/strings/responses/responses.en-US.json
index 240a961..e28be28 100644
--- a/src/EllieBot/strings/responses/responses.en-US.json
+++ b/src/EllieBot/strings/responses/responses.en-US.json
@@ -1207,5 +1207,15 @@
   "userrole_icon_invalid": "The role icon cannot be empty.",
   "userrole_hierarchy_error": "You can't assign or modify roles that are higher than or equal to your, or bots highest role.",
   "userrole_role_not_exists": "That role doesn't exist.",
-  "whos_playing_game": "{0} users are playing {1}"
-}
+  "whos_playing_game": "{0} users are playing {1}",
+  "schedule_list_title": "Scheduled Commands",
+  "schedule_list_none": "You don't have any scheduled commands.",
+  "schedule_list_for_user": "Scheduled Commands",
+  "schedule_deleted": "Scheduled command #{0} successfully deleted.",
+  "schedule_delete_error": "Error deleting scheduled command.",
+  "schedule_id": "ID",
+  "schedule_command": "Command",
+  "schedule_when": "Executes At",
+  "schedule_add_success": "Scheduled command successfully added.",
+  "schedule_add_error": "You already have 5 scheduled commands. Please delete some before adding more."
+}
\ No newline at end of file