// <auto-generated />
using System;
using EllieBot.Db;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;

#nullable disable

namespace EllieBot.Migrations.PostgreSql
{
    [DbContext(typeof(PostgreSqlContext))]
    partial class PostgreSqlContextModelSnapshot : ModelSnapshot
    {
        protected override void BuildModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.8")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("Action")
                        .HasColumnType("integer")
                        .HasColumnName("action");

                    b.Property<int>("ActionDurationMinutes")
                        .HasColumnType("integer")
                        .HasColumnName("actiondurationminutes");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<TimeSpan>("MinAge")
                        .HasColumnType("interval")
                        .HasColumnName("minage");

                    b.Property<decimal?>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.HasKey("Id")
                        .HasName("pk_antialtsetting");

                    b.HasIndex("GuildConfigId")
                        .IsUnique()
                        .HasDatabaseName("ix_antialtsetting_guildconfigid");

                    b.ToTable("antialtsetting", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("Action")
                        .HasColumnType("integer")
                        .HasColumnName("action");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<int>("PunishDuration")
                        .HasColumnType("integer")
                        .HasColumnName("punishduration");

                    b.Property<int>("Seconds")
                        .HasColumnType("integer")
                        .HasColumnName("seconds");

                    b.Property<int>("UserThreshold")
                        .HasColumnType("integer")
                        .HasColumnName("userthreshold");

                    b.HasKey("Id")
                        .HasName("pk_antiraidsetting");

                    b.HasIndex("GuildConfigId")
                        .IsUnique()
                        .HasDatabaseName("ix_antiraidsetting_guildconfigid");

                    b.ToTable("antiraidsetting", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int?>("AntiSpamSettingId")
                        .HasColumnType("integer")
                        .HasColumnName("antispamsettingid");

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.HasKey("Id")
                        .HasName("pk_antispamignore");

                    b.HasIndex("AntiSpamSettingId")
                        .HasDatabaseName("ix_antispamignore_antispamsettingid");

                    b.ToTable("antispamignore", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("Action")
                        .HasColumnType("integer")
                        .HasColumnName("action");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<int>("MessageThreshold")
                        .HasColumnType("integer")
                        .HasColumnName("messagethreshold");

                    b.Property<int>("MuteTime")
                        .HasColumnType("integer")
                        .HasColumnName("mutetime");

                    b.Property<decimal?>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.HasKey("Id")
                        .HasName("pk_antispamsetting");

                    b.HasIndex("GuildConfigId")
                        .IsUnique()
                        .HasDatabaseName("ix_antispamsetting_guildconfigid");

                    b.ToTable("antispamsetting", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Name")
                        .HasColumnType("text")
                        .HasColumnName("name");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_todosarchive");

                    b.ToTable("todosarchive", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AutoCommand", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<string>("ChannelName")
                        .HasColumnType("text")
                        .HasColumnName("channelname");

                    b.Property<string>("CommandText")
                        .HasColumnType("text")
                        .HasColumnName("commandtext");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal?>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("GuildName")
                        .HasColumnType("text")
                        .HasColumnName("guildname");

                    b.Property<int>("Interval")
                        .HasColumnType("integer")
                        .HasColumnName("interval");

                    b.Property<decimal?>("VoiceChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("voicechannelid");

                    b.Property<string>("VoiceChannelName")
                        .HasColumnType("text")
                        .HasColumnName("voicechannelname");

                    b.HasKey("Id")
                        .HasName("pk_autocommands");

                    b.ToTable("autocommands", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AutoPublishChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.HasKey("Id")
                        .HasName("pk_autopublishchannel");

                    b.HasIndex("GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_autopublishchannel_guildid");

                    b.ToTable("autopublishchannel", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<bool>("AutoDelete")
                        .HasColumnType("boolean")
                        .HasColumnName("autodelete");

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.HasKey("Id")
                        .HasName("pk_autotranslatechannels");

                    b.HasIndex("ChannelId")
                        .IsUnique()
                        .HasDatabaseName("ix_autotranslatechannels_channelid");

                    b.HasIndex("GuildId")
                        .HasDatabaseName("ix_autotranslatechannels_guildid");

                    b.ToTable("autotranslatechannels", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("ChannelId")
                        .HasColumnType("integer")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Source")
                        .HasColumnType("text")
                        .HasColumnName("source");

                    b.Property<string>("Target")
                        .HasColumnType("text")
                        .HasColumnName("target");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_autotranslateusers");

                    b.HasAlternateKey("ChannelId", "UserId")
                        .HasName("ak_autotranslateusers_channelid_userid");

                    b.ToTable("autotranslateusers", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.BanTemplate", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<int?>("PruneDays")
                        .HasColumnType("integer")
                        .HasColumnName("prunedays");

                    b.Property<string>("Text")
                        .HasColumnType("text")
                        .HasColumnName("text");

                    b.HasKey("Id")
                        .HasName("pk_bantemplates");

                    b.HasIndex("GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_bantemplates_guildid");

                    b.ToTable("bantemplates", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.BankUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<long>("Balance")
                        .HasColumnType("bigint")
                        .HasColumnName("balance");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_bankusers");

                    b.HasIndex("UserId")
                        .IsUnique()
                        .HasDatabaseName("ix_bankusers_userid");

                    b.ToTable("bankusers", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.BlacklistEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("ItemId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("itemid");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.HasKey("Id")
                        .HasName("pk_blacklist");

                    b.ToTable("blacklist", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.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<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Description")
                        .HasColumnType("text")
                        .HasColumnName("description");

                    b.Property<string>("ImageUrl")
                        .HasColumnType("text")
                        .HasColumnName("imageurl");

                    b.Property<string>("Name")
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)")
                        .HasColumnName("name");

                    b.Property<int?>("OwnerId")
                        .HasColumnType("integer")
                        .HasColumnName("ownerid");

                    b.Property<int>("Xp")
                        .HasColumnType("integer")
                        .HasColumnName("xp");

                    b.HasKey("Id")
                        .HasName("pk_clubs");

                    b.HasIndex("Name")
                        .IsUnique()
                        .HasDatabaseName("ix_clubs_name");

                    b.HasIndex("OwnerId")
                        .IsUnique()
                        .HasDatabaseName("ix_clubs_ownerid");

                    b.ToTable("clubs", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<string>("Mapping")
                        .HasColumnType("text")
                        .HasColumnName("mapping");

                    b.Property<string>("Trigger")
                        .HasColumnType("text")
                        .HasColumnName("trigger");

                    b.HasKey("Id")
                        .HasName("pk_commandalias");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_commandalias_guildconfigid");

                    b.ToTable("commandalias", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("CommandName")
                        .HasColumnType("text")
                        .HasColumnName("commandname");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<int>("Seconds")
                        .HasColumnType("integer")
                        .HasColumnName("seconds");

                    b.HasKey("Id")
                        .HasName("pk_commandcooldown");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_commandcooldown_guildconfigid");

                    b.ToTable("commandcooldown", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.CurrencyTransaction", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<long>("Amount")
                        .HasColumnType("bigint")
                        .HasColumnName("amount");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Extra")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("extra");

                    b.Property<string>("Note")
                        .HasColumnType("text")
                        .HasColumnName("note");

                    b.Property<decimal?>("OtherId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("otherid")
                        .HasDefaultValueSql("NULL");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("type");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_currencytransactions");

                    b.HasIndex("UserId")
                        .HasDatabaseName("ix_currencytransactions_userid");

                    b.ToTable("currencytransactions", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<bool>("State")
                        .HasColumnType("boolean")
                        .HasColumnName("state");

                    b.HasKey("Id")
                        .HasName("pk_delmsgoncmdchannel");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_delmsgoncmdchannel_guildconfigid");

                    b.ToTable("delmsgoncmdchannel", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.DiscordPermOverride", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Command")
                        .HasColumnType("text")
                        .HasColumnName("command");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal?>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<decimal>("Perm")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("perm");

                    b.HasKey("Id")
                        .HasName("pk_discordpermoverrides");

                    b.HasIndex("GuildId", "Command")
                        .IsUnique()
                        .HasDatabaseName("ix_discordpermoverrides_guildid_command");

                    b.ToTable("discordpermoverrides", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("AvatarId")
                        .HasColumnType("text")
                        .HasColumnName("avatarid");

                    b.Property<int?>("ClubId")
                        .HasColumnType("integer")
                        .HasColumnName("clubid");

                    b.Property<long>("CurrencyAmount")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasDefaultValue(0L)
                        .HasColumnName("currencyamount");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("IsClubAdmin")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(false)
                        .HasColumnName("isclubadmin");

                    b.Property<int>("NotifyOnLevelUp")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasDefaultValue(0)
                        .HasColumnName("notifyonlevelup");

                    b.Property<long>("TotalXp")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasDefaultValue(0L)
                        .HasColumnName("totalxp");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<string>("Username")
                        .HasColumnType("text")
                        .HasColumnName("username");

                    b.HasKey("Id")
                        .HasName("pk_discorduser");

                    b.HasAlternateKey("UserId")
                        .HasName("ak_discorduser_userid");

                    b.HasIndex("ClubId")
                        .HasDatabaseName("ix_discorduser_clubid");

                    b.HasIndex("CurrencyAmount")
                        .HasDatabaseName("ix_discorduser_currencyamount");

                    b.HasIndex("TotalXp")
                        .HasDatabaseName("ix_discorduser_totalxp");

                    b.HasIndex("UserId")
                        .HasDatabaseName("ix_discorduser_userid");

                    b.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.ExcludedItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("ItemId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("itemid");

                    b.Property<int>("ItemType")
                        .HasColumnType("integer")
                        .HasColumnName("itemtype");

                    b.Property<int?>("XpSettingsId")
                        .HasColumnType("integer")
                        .HasColumnName("xpsettingsid");

                    b.HasKey("Id")
                        .HasName("pk_excludeditem");

                    b.HasIndex("XpSettingsId")
                        .HasDatabaseName("ix_excludeditem_xpsettingsid");

                    b.ToTable("excludeditem", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<string>("Message")
                        .HasColumnType("text")
                        .HasColumnName("message");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("url");

                    b.HasKey("Id")
                        .HasName("pk_feedsub");

                    b.HasAlternateKey("GuildConfigId", "Url")
                        .HasName("ak_feedsub_guildconfigid_url");

                    b.ToTable("feedsub", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.HasKey("Id")
                        .HasName("pk_filterchannelid");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_filterchannelid_guildconfigid");

                    b.ToTable("filterchannelid", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.HasKey("Id")
                        .HasName("pk_filterlinkschannelid");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_filterlinkschannelid_guildconfigid");

                    b.ToTable("filterlinkschannelid", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.HasKey("Id")
                        .HasName("pk_filterwordschannelid");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_filterwordschannelid_guildconfigid");

                    b.ToTable("filterwordschannelid", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<string>("Word")
                        .HasColumnType("text")
                        .HasColumnName("word");

                    b.HasKey("Id")
                        .HasName("pk_filteredword");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_filteredword_guildconfigid");

                    b.ToTable("filteredword", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FlagTranslateChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.HasKey("Id")
                        .HasName("pk_flagtranslatechannel");

                    b.HasIndex("GuildId", "ChannelId")
                        .IsUnique()
                        .HasDatabaseName("ix_flagtranslatechannel_guildid_channelid");

                    b.ToTable("flagtranslatechannel", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("Message")
                        .HasColumnType("text")
                        .HasColumnName("message");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.Property<string>("Username")
                        .HasColumnType("text")
                        .HasColumnName("username");

                    b.HasKey("Id")
                        .HasName("pk_followedstream");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_followedstream_guildconfigid");

                    b.ToTable("followedstream", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.HasKey("Id")
                        .HasName("pk_gcchannelid");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_gcchannelid_guildconfigid");

                    b.ToTable("gcchannelid", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GamblingStats", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("Bet")
                        .HasColumnType("numeric")
                        .HasColumnName("bet");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Feature")
                        .HasColumnType("text")
                        .HasColumnName("feature");

                    b.Property<decimal>("PaidOut")
                        .HasColumnType("numeric")
                        .HasColumnName("paidout");

                    b.HasKey("Id")
                        .HasName("pk_gamblingstats");

                    b.HasIndex("Feature")
                        .IsUnique()
                        .HasDatabaseName("ix_gamblingstats_feature");

                    b.ToTable("gamblingstats", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime>("EndsAt")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("endsat");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("Message")
                        .HasColumnType("text")
                        .HasColumnName("message");

                    b.Property<decimal>("MessageId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("messageid");

                    b.HasKey("Id")
                        .HasName("pk_giveawaymodel");

                    b.ToTable("giveawaymodel", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("GiveawayId")
                        .HasColumnType("integer")
                        .HasColumnName("giveawayid");

                    b.Property<string>("Name")
                        .HasColumnType("text")
                        .HasColumnName("name");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_giveawayuser");

                    b.HasIndex("GiveawayId", "UserId")
                        .IsUnique()
                        .HasDatabaseName("ix_giveawayuser_giveawayid_userid");

                    b.ToTable("giveawayuser", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GuildColors", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("ErrorColor")
                        .HasMaxLength(9)
                        .HasColumnType("character varying(9)")
                        .HasColumnName("errorcolor");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("OkColor")
                        .HasMaxLength(9)
                        .HasColumnType("character varying(9)")
                        .HasColumnName("okcolor");

                    b.Property<string>("PendingColor")
                        .HasMaxLength(9)
                        .HasColumnType("character varying(9)")
                        .HasColumnName("pendingcolor");

                    b.HasKey("Id")
                        .HasName("pk_guildcolors");

                    b.HasIndex("GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_guildcolors_guildid");

                    b.ToTable("guildcolors", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("AutoAssignRoleIds")
                        .HasColumnType("text")
                        .HasColumnName("autoassignroleids");

                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
                        .HasColumnType("boolean")
                        .HasColumnName("autodeleteselfassignedrolemessages");

                    b.Property<bool>("CleverbotEnabled")
                        .HasColumnType("boolean")
                        .HasColumnName("cleverbotenabled");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("DeleteMessageOnCommand")
                        .HasColumnType("boolean")
                        .HasColumnName("deletemessageoncommand");

                    b.Property<bool>("DeleteStreamOnlineMessage")
                        .HasColumnType("boolean")
                        .HasColumnName("deletestreamonlinemessage");

                    b.Property<bool>("DisableGlobalExpressions")
                        .HasColumnType("boolean")
                        .HasColumnName("disableglobalexpressions");

                    b.Property<bool>("ExclusiveSelfAssignedRoles")
                        .HasColumnType("boolean")
                        .HasColumnName("exclusiveselfassignedroles");

                    b.Property<bool>("FilterInvites")
                        .HasColumnType("boolean")
                        .HasColumnName("filterinvites");

                    b.Property<bool>("FilterLinks")
                        .HasColumnType("boolean")
                        .HasColumnName("filterlinks");

                    b.Property<bool>("FilterWords")
                        .HasColumnType("boolean")
                        .HasColumnName("filterwords");

                    b.Property<decimal?>("GameVoiceChannel")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("gamevoicechannel");

                    b.Property<decimal>("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.HoneypotChannel", b =>
                {
                    b.Property<decimal>("GuildId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.HasKey("GuildId")
                        .HasName("pk_honeypotchannels");

                    b.ToTable("honeypotchannels", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("ItemType")
                        .HasColumnType("integer")
                        .HasColumnName("itemtype");

                    b.Property<decimal>("LogItemId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("logitemid");

                    b.Property<int>("LogSettingId")
                        .HasColumnType("integer")
                        .HasColumnName("logsettingid");

                    b.HasKey("Id")
                        .HasName("pk_ignoredlogchannels");

                    b.HasIndex("LogSettingId", "LogItemId", "ItemType")
                        .IsUnique()
                        .HasDatabaseName("ix_ignoredlogchannels_logsettingid_logitemid_itemtype");

                    b.ToTable("ignoredlogchannels", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.ImageOnlyChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.HasKey("Id")
                        .HasName("pk_imageonlychannels");

                    b.HasIndex("ChannelId")
                        .IsUnique()
                        .HasDatabaseName("ix_imageonlychannels_channelid");

                    b.ToTable("imageonlychannels", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal?>("ChannelCreatedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelcreatedid");

                    b.Property<decimal?>("ChannelDestroyedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channeldestroyedid");

                    b.Property<decimal?>("ChannelUpdatedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelupdatedid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<decimal?>("LogOtherId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("logotherid");

                    b.Property<decimal?>("LogUserPresenceId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("loguserpresenceid");

                    b.Property<decimal?>("LogVoicePresenceId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("logvoicepresenceid");

                    b.Property<decimal?>("LogVoicePresenceTTSId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("logvoicepresencettsid");

                    b.Property<decimal?>("LogWarnsId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("logwarnsid");

                    b.Property<decimal?>("MessageDeletedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("messagedeletedid");

                    b.Property<decimal?>("MessageUpdatedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("messageupdatedid");

                    b.Property<decimal?>("ThreadCreatedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("threadcreatedid");

                    b.Property<decimal?>("ThreadDeletedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("threaddeletedid");

                    b.Property<decimal?>("UserBannedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userbannedid");

                    b.Property<decimal?>("UserJoinedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userjoinedid");

                    b.Property<decimal?>("UserLeftId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userleftid");

                    b.Property<decimal?>("UserMutedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("usermutedid");

                    b.Property<decimal?>("UserUnbannedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userunbannedid");

                    b.Property<decimal?>("UserUpdatedId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userupdatedid");

                    b.HasKey("Id")
                        .HasName("pk_logsettings");

                    b.HasIndex("GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_logsettings_guildid");

                    b.ToTable("logsettings", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.MusicPlayerSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<bool>("AutoDisconnect")
                        .HasColumnType("boolean")
                        .HasColumnName("autodisconnect");

                    b.Property<bool>("AutoPlay")
                        .HasColumnType("boolean")
                        .HasColumnName("autoplay");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<decimal?>("MusicChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("musicchannelid");

                    b.Property<int>("PlayerRepeat")
                        .HasColumnType("integer")
                        .HasColumnName("playerrepeat");

                    b.Property<int>("QualityPreset")
                        .HasColumnType("integer")
                        .HasColumnName("qualitypreset");

                    b.Property<int>("Volume")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasDefaultValue(100)
                        .HasColumnName("volume");

                    b.HasKey("Id")
                        .HasName("pk_musicplayersettings");

                    b.HasIndex("GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_musicplayersettings_guildid");

                    b.ToTable("musicplayersettings", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<string>("Author")
                        .HasColumnType("text")
                        .HasColumnName("author");

                    b.Property<decimal>("AuthorId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("authorid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Name")
                        .HasColumnType("text")
                        .HasColumnName("name");

                    b.HasKey("Id")
                        .HasName("pk_musicplaylists");

                    b.ToTable("musicplaylists", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_muteduserid");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_muteduserid_guildconfigid");

                    b.ToTable("muteduserid", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.NCPixel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<long>("Color")
                        .HasColumnType("bigint")
                        .HasColumnName("color");

                    b.Property<decimal>("OwnerId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("ownerid");

                    b.Property<int>("Position")
                        .HasColumnType("integer")
                        .HasColumnName("position");

                    b.Property<long>("Price")
                        .HasColumnType("bigint")
                        .HasColumnName("price");

                    b.Property<string>("Text")
                        .IsRequired()
                        .HasMaxLength(256)
                        .HasColumnType("character varying(256)")
                        .HasColumnName("text");

                    b.HasKey("Id")
                        .HasName("pk_ncpixel");

                    b.HasAlternateKey("Position")
                        .HasName("ak_ncpixel_position");

                    b.HasIndex("OwnerId")
                        .HasDatabaseName("ix_ncpixel_ownerid");

                    b.ToTable("ncpixel", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
                {
                    b.Property<decimal>("UserId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<int>("AmountCents")
                        .HasColumnType("integer")
                        .HasColumnName("amountcents");

                    b.Property<DateTime>("LastCharge")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("lastcharge");

                    b.Property<string>("UniquePlatformUserId")
                        .HasColumnType("text")
                        .HasColumnName("uniqueplatformuserid");

                    b.Property<DateTime>("ValidThru")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("validthru");

                    b.HasKey("UserId")
                        .HasName("pk_patrons");

                    b.HasIndex("UniquePlatformUserId")
                        .IsUnique()
                        .HasDatabaseName("ix_patrons_uniqueplatformuserid");

                    b.ToTable("patrons", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<int>("Index")
                        .HasColumnType("integer")
                        .HasColumnName("index");

                    b.Property<bool>("IsCustomCommand")
                        .HasColumnType("boolean")
                        .HasColumnName("iscustomcommand");

                    b.Property<int>("PrimaryTarget")
                        .HasColumnType("integer")
                        .HasColumnName("primarytarget");

                    b.Property<decimal>("PrimaryTargetId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("primarytargetid");

                    b.Property<int>("SecondaryTarget")
                        .HasColumnType("integer")
                        .HasColumnName("secondarytarget");

                    b.Property<string>("SecondaryTargetName")
                        .HasColumnType("text")
                        .HasColumnName("secondarytargetname");

                    b.Property<bool>("State")
                        .HasColumnType("boolean")
                        .HasColumnName("state");

                    b.HasKey("Id")
                        .HasName("pk_permissions");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_permissions_guildconfigid");

                    b.ToTable("permissions", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.PlantedCurrency", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<long>("Amount")
                        .HasColumnType("bigint")
                        .HasColumnName("amount");

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<decimal>("MessageId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("messageid");

                    b.Property<string>("Password")
                        .HasColumnType("text")
                        .HasColumnName("password");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_plantedcurrency");

                    b.HasIndex("ChannelId")
                        .HasDatabaseName("ix_plantedcurrency_channelid");

                    b.HasIndex("MessageId")
                        .IsUnique()
                        .HasDatabaseName("ix_plantedcurrency_messageid");

                    b.ToTable("plantedcurrency", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("MusicPlaylistId")
                        .HasColumnType("integer")
                        .HasColumnName("musicplaylistid");

                    b.Property<string>("Provider")
                        .HasColumnType("text")
                        .HasColumnName("provider");

                    b.Property<int>("ProviderType")
                        .HasColumnType("integer")
                        .HasColumnName("providertype");

                    b.Property<string>("Query")
                        .HasColumnType("text")
                        .HasColumnName("query");

                    b.Property<string>("Title")
                        .HasColumnType("text")
                        .HasColumnName("title");

                    b.Property<string>("Uri")
                        .HasColumnType("text")
                        .HasColumnName("uri");

                    b.HasKey("Id")
                        .HasName("pk_playlistsong");

                    b.HasIndex("MusicPlaylistId")
                        .HasDatabaseName("ix_playlistsong_musicplaylistid");

                    b.ToTable("playlistsong", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Quote", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("AuthorId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("authorid");

                    b.Property<string>("AuthorName")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("authorname");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("Keyword")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("keyword");

                    b.Property<string>("Text")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("text");

                    b.HasKey("Id")
                        .HasName("pk_quotes");

                    b.HasIndex("GuildId")
                        .HasDatabaseName("ix_quotes_guildid");

                    b.HasIndex("Keyword")
                        .HasDatabaseName("ix_quotes_keyword");

                    b.ToTable("quotes", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.ReactionRoleV2", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Emote")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("emote");

                    b.Property<int>("Group")
                        .HasColumnType("integer")
                        .HasColumnName("group");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<int>("LevelReq")
                        .HasColumnType("integer")
                        .HasColumnName("levelreq");

                    b.Property<decimal>("MessageId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("messageid");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.HasKey("Id")
                        .HasName("pk_reactionroles");

                    b.HasIndex("GuildId")
                        .HasDatabaseName("ix_reactionroles_guildid");

                    b.HasIndex("MessageId", "Emote")
                        .IsUnique()
                        .HasDatabaseName("ix_reactionroles_messageid_emote");

                    b.ToTable("reactionroles", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Reminder", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("IsPrivate")
                        .HasColumnType("boolean")
                        .HasColumnName("isprivate");

                    b.Property<string>("Message")
                        .HasColumnType("text")
                        .HasColumnName("message");

                    b.Property<decimal>("ServerId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("serverid");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<DateTime>("When")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("when");

                    b.HasKey("Id")
                        .HasName("pk_reminders");

                    b.HasIndex("When")
                        .HasDatabaseName("ix_reminders_when");

                    b.ToTable("reminders", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Repeater", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<TimeSpan>("Interval")
                        .HasColumnType("interval")
                        .HasColumnName("interval");

                    b.Property<decimal?>("LastMessageId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("lastmessageid");

                    b.Property<string>("Message")
                        .HasColumnType("text")
                        .HasColumnName("message");

                    b.Property<bool>("NoRedundant")
                        .HasColumnType("boolean")
                        .HasColumnName("noredundant");

                    b.Property<TimeSpan?>("StartTimeOfDay")
                        .HasColumnType("interval")
                        .HasColumnName("starttimeofday");

                    b.HasKey("Id")
                        .HasName("pk_repeaters");

                    b.ToTable("repeaters", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.RewardedUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<long>("AmountRewardedThisMonth")
                        .HasColumnType("bigint")
                        .HasColumnName("amountrewardedthismonth");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<DateTime>("LastReward")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("lastreward");

                    b.Property<string>("PlatformUserId")
                        .HasColumnType("text")
                        .HasColumnName("platformuserid");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_rewardedusers");

                    b.HasIndex("PlatformUserId")
                        .IsUnique()
                        .HasDatabaseName("ix_rewardedusers_platformuserid");

                    b.ToTable("rewardedusers", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.RotatingPlayingStatus", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("Status")
                        .HasColumnType("text")
                        .HasColumnName("status");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.HasKey("Id")
                        .HasName("pk_rotatingstatus");

                    b.ToTable("rotatingstatus", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<int>("LevelReq")
                        .HasColumnType("integer")
                        .HasColumnName("levelreq");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.Property<int>("SarGroupId")
                        .HasColumnType("integer")
                        .HasColumnName("sargroupid");

                    b.HasKey("Id")
                        .HasName("pk_sar");

                    b.HasAlternateKey("GuildId", "RoleId")
                        .HasName("ak_sar_guildid_roleid");

                    b.HasIndex("SarGroupId")
                        .HasDatabaseName("ix_sar_sargroupid");

                    b.ToTable("sar", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.SarAutoDelete", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<bool>("IsEnabled")
                        .HasColumnType("boolean")
                        .HasColumnName("isenabled");

                    b.HasKey("Id")
                        .HasName("pk_sarautodelete");

                    b.HasIndex("GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_sarautodelete_guildid");

                    b.ToTable("sarautodelete", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("GroupNumber")
                        .HasColumnType("integer")
                        .HasColumnName("groupnumber");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<bool>("IsExclusive")
                        .HasColumnType("boolean")
                        .HasColumnName("isexclusive");

                    b.Property<string>("Name")
                        .HasMaxLength(100)
                        .HasColumnType("character varying(100)")
                        .HasColumnName("name");

                    b.Property<decimal?>("RoleReq")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("rolereq");

                    b.HasKey("Id")
                        .HasName("pk_sargroup");

                    b.HasAlternateKey("GuildId", "GroupNumber")
                        .HasName("ak_sargroup_guildid_groupnumber");

                    b.ToTable("sargroup", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("AuthorId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("authorid");

                    b.Property<string>("Command")
                        .HasColumnType("text")
                        .HasColumnName("command");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<int>("Index")
                        .HasColumnType("integer")
                        .HasColumnName("index");

                    b.Property<string>("Name")
                        .HasColumnType("text")
                        .HasColumnName("name");

                    b.Property<int>("Price")
                        .HasColumnType("integer")
                        .HasColumnName("price");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.Property<string>("RoleName")
                        .HasColumnType("text")
                        .HasColumnName("rolename");

                    b.Property<decimal?>("RoleRequirement")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("rolerequirement");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.HasKey("Id")
                        .HasName("pk_shopentry");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_shopentry_guildconfigid");

                    b.ToTable("shopentry", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("ShopEntryId")
                        .HasColumnType("integer")
                        .HasColumnName("shopentryid");

                    b.Property<string>("Text")
                        .HasColumnType("text")
                        .HasColumnName("text");

                    b.HasKey("Id")
                        .HasName("pk_shopentryitem");

                    b.HasIndex("ShopEntryId")
                        .HasDatabaseName("ix_shopentryitem_shopentryid");

                    b.ToTable("shopentryitem", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.HasKey("Id")
                        .HasName("pk_slowmodeignoredrole");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_slowmodeignoredrole_guildconfigid");

                    b.ToTable("slowmodeignoredrole", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_slowmodeignoreduser");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_slowmodeignoreduser_guildconfigid");

                    b.ToTable("slowmodeignoreduser", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.StickyRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("RoleIds")
                        .HasColumnType("text")
                        .HasColumnName("roleids");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_stickyroles");

                    b.HasIndex("GuildId", "UserId")
                        .IsUnique()
                        .HasDatabaseName("ix_stickyroles_guildid_userid");

                    b.ToTable("stickyroles", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamOnlineMessage", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("ChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("channelid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("MessageId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("messageid");

                    b.Property<string>("Name")
                        .HasColumnType("text")
                        .HasColumnName("name");

                    b.Property<int>("Type")
                        .HasColumnType("integer")
                        .HasColumnName("type");

                    b.HasKey("Id")
                        .HasName("pk_streamonlinemessages");

                    b.ToTable("streamonlinemessages", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("StreamRoleSettingsId")
                        .HasColumnType("integer")
                        .HasColumnName("streamrolesettingsid");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<string>("Username")
                        .HasColumnType("text")
                        .HasColumnName("username");

                    b.HasKey("Id")
                        .HasName("pk_streamroleblacklisteduser");

                    b.HasIndex("StreamRoleSettingsId")
                        .HasDatabaseName("ix_streamroleblacklisteduser_streamrolesettingsid");

                    b.ToTable("streamroleblacklisteduser", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<decimal>("AddRoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("addroleid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("Enabled")
                        .HasColumnType("boolean")
                        .HasColumnName("enabled");

                    b.Property<decimal>("FromRoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("fromroleid");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<string>("Keyword")
                        .HasColumnType("text")
                        .HasColumnName("keyword");

                    b.HasKey("Id")
                        .HasName("pk_streamrolesettings");

                    b.HasIndex("GuildConfigId")
                        .IsUnique()
                        .HasDatabaseName("ix_streamrolesettings_guildconfigid");

                    b.ToTable("streamrolesettings", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("StreamRoleSettingsId")
                        .HasColumnType("integer")
                        .HasColumnName("streamrolesettingsid");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<string>("Username")
                        .HasColumnType("text")
                        .HasColumnName("username");

                    b.HasKey("Id")
                        .HasName("pk_streamrolewhitelisteduser");

                    b.HasIndex("StreamRoleSettingsId")
                        .HasDatabaseName("ix_streamrolewhitelisteduser_streamrolesettingsid");

                    b.ToTable("streamrolewhitelisteduser", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int?>("ArchiveId")
                        .HasColumnType("integer")
                        .HasColumnName("archiveid");

                    b.Property<DateTime>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("IsDone")
                        .HasColumnType("boolean")
                        .HasColumnName("isdone");

                    b.Property<string>("Todo")
                        .HasColumnType("text")
                        .HasColumnName("todo");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_todos");

                    b.HasIndex("ArchiveId")
                        .HasDatabaseName("ix_todos_archiveid");

                    b.HasIndex("UserId")
                        .HasDatabaseName("ix_todos_userid");

                    b.ToTable("todos", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<DateTime>("UnbanAt")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("unbanat");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_unbantimer");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_unbantimer_guildconfigid");

                    b.ToTable("unbantimer", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<DateTime>("UnmuteAt")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("unmuteat");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_unmutetimer");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_unmutetimer_guildconfigid");

                    b.ToTable("unmutetimer", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.Property<DateTime>("UnbanAt")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("unbanat");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_unroletimer");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_unroletimer_guildconfigid");

                    b.ToTable("unroletimer", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.UserXpStats", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<long>("AwardedXp")
                        .HasColumnType("bigint")
                        .HasColumnName("awardedxp");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<int>("NotifyOnLevelUp")
                        .HasColumnType("integer")
                        .HasColumnName("notifyonlevelup");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<long>("Xp")
                        .HasColumnType("bigint")
                        .HasColumnName("xp");

                    b.HasKey("Id")
                        .HasName("pk_userxpstats");

                    b.HasIndex("AwardedXp")
                        .HasDatabaseName("ix_userxpstats_awardedxp");

                    b.HasIndex("GuildId")
                        .HasDatabaseName("ix_userxpstats_guildid");

                    b.HasIndex("UserId")
                        .HasDatabaseName("ix_userxpstats_userid");

                    b.HasIndex("Xp")
                        .HasDatabaseName("ix_userxpstats_xp");

                    b.HasIndex("UserId", "GuildId")
                        .IsUnique()
                        .HasDatabaseName("ix_userxpstats_userid_guildid");

                    b.ToTable("userxpstats", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.Property<decimal>("VoiceChannelId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("voicechannelid");

                    b.HasKey("Id")
                        .HasName("pk_vcroleinfo");

                    b.HasIndex("GuildConfigId")
                        .HasDatabaseName("ix_vcroleinfo_guildconfigid");

                    b.ToTable("vcroleinfo", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int?>("AffinityId")
                        .HasColumnType("integer")
                        .HasColumnName("affinityid");

                    b.Property<int?>("ClaimerId")
                        .HasColumnType("integer")
                        .HasColumnName("claimerid");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<long>("Price")
                        .HasColumnType("bigint")
                        .HasColumnName("price");

                    b.Property<int>("WaifuId")
                        .HasColumnType("integer")
                        .HasColumnName("waifuid");

                    b.HasKey("Id")
                        .HasName("pk_waifuinfo");

                    b.HasIndex("AffinityId")
                        .HasDatabaseName("ix_waifuinfo_affinityid");

                    b.HasIndex("ClaimerId")
                        .HasDatabaseName("ix_waifuinfo_claimerid");

                    b.HasIndex("Price")
                        .HasDatabaseName("ix_waifuinfo_price");

                    b.HasIndex("WaifuId")
                        .IsUnique()
                        .HasDatabaseName("ix_waifuinfo_waifuid");

                    b.ToTable("waifuinfo", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<string>("ItemEmoji")
                        .HasColumnType("text")
                        .HasColumnName("itememoji");

                    b.Property<string>("Name")
                        .HasColumnType("text")
                        .HasColumnName("name");

                    b.Property<int?>("WaifuInfoId")
                        .HasColumnType("integer")
                        .HasColumnName("waifuinfoid");

                    b.HasKey("Id")
                        .HasName("pk_waifuitem");

                    b.HasIndex("WaifuInfoId")
                        .HasDatabaseName("ix_waifuitem_waifuinfoid");

                    b.ToTable("waifuitem", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int?>("NewId")
                        .HasColumnType("integer")
                        .HasColumnName("newid");

                    b.Property<int?>("OldId")
                        .HasColumnType("integer")
                        .HasColumnName("oldid");

                    b.Property<int>("UpdateType")
                        .HasColumnType("integer")
                        .HasColumnName("updatetype");

                    b.Property<int>("UserId")
                        .HasColumnType("integer")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_waifuupdates");

                    b.HasIndex("NewId")
                        .HasDatabaseName("ix_waifuupdates_newid");

                    b.HasIndex("OldId")
                        .HasDatabaseName("ix_waifuupdates_oldid");

                    b.HasIndex("UserId")
                        .HasDatabaseName("ix_waifuupdates_userid");

                    b.ToTable("waifuupdates", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Warning", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("Forgiven")
                        .HasColumnType("boolean")
                        .HasColumnName("forgiven");

                    b.Property<string>("ForgivenBy")
                        .HasColumnType("text")
                        .HasColumnName("forgivenby");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<string>("Moderator")
                        .HasColumnType("text")
                        .HasColumnName("moderator");

                    b.Property<string>("Reason")
                        .HasColumnType("text")
                        .HasColumnName("reason");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<long>("Weight")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("bigint")
                        .HasDefaultValue(1L)
                        .HasColumnName("weight");

                    b.HasKey("Id")
                        .HasName("pk_warnings");

                    b.HasIndex("DateAdded")
                        .HasDatabaseName("ix_warnings_dateadded");

                    b.HasIndex("GuildId")
                        .HasDatabaseName("ix_warnings_guildid");

                    b.HasIndex("UserId")
                        .HasDatabaseName("ix_warnings_userid");

                    b.ToTable("warnings", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.WarningPunishment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("Count")
                        .HasColumnType("integer")
                        .HasColumnName("count");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<decimal>("GuildId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("guildid");

                    b.Property<int>("Punishment")
                        .HasColumnType("integer")
                        .HasColumnName("punishment");

                    b.Property<decimal?>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.Property<int>("Time")
                        .HasColumnType("integer")
                        .HasColumnName("time");

                    b.HasKey("Id")
                        .HasName("pk_warningpunishment");

                    b.HasAlternateKey("GuildId", "Count")
                        .HasName("ak_warningpunishment_guildid_count");

                    b.ToTable("warningpunishment", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<int>("Amount")
                        .HasColumnType("integer")
                        .HasColumnName("amount");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("Level")
                        .HasColumnType("integer")
                        .HasColumnName("level");

                    b.Property<int>("XpSettingsId")
                        .HasColumnType("integer")
                        .HasColumnName("xpsettingsid");

                    b.HasKey("Id")
                        .HasName("pk_xpcurrencyreward");

                    b.HasIndex("XpSettingsId")
                        .HasDatabaseName("ix_xpcurrencyreward_xpsettingsid");

                    b.ToTable("xpcurrencyreward", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("Level")
                        .HasColumnType("integer")
                        .HasColumnName("level");

                    b.Property<bool>("Remove")
                        .HasColumnType("boolean")
                        .HasColumnName("remove");

                    b.Property<decimal>("RoleId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("roleid");

                    b.Property<int>("XpSettingsId")
                        .HasColumnType("integer")
                        .HasColumnName("xpsettingsid");

                    b.HasKey("Id")
                        .HasName("pk_xprolereward");

                    b.HasIndex("XpSettingsId", "Level")
                        .IsUnique()
                        .HasDatabaseName("ix_xprolereward_xpsettingsid_level");

                    b.ToTable("xprolereward", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("integer")
                        .HasColumnName("guildconfigid");

                    b.Property<bool>("ServerExcluded")
                        .HasColumnType("boolean")
                        .HasColumnName("serverexcluded");

                    b.HasKey("Id")
                        .HasName("pk_xpsettings");

                    b.HasIndex("GuildConfigId")
                        .IsUnique()
                        .HasDatabaseName("ix_xpsettings_guildconfigid");

                    b.ToTable("xpsettings", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpShopOwnedItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

                    NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id"));

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("timestamp without time zone")
                        .HasColumnName("dateadded");

                    b.Property<bool>("IsUsing")
                        .HasColumnType("boolean")
                        .HasColumnName("isusing");

                    b.Property<string>("ItemKey")
                        .IsRequired()
                        .HasColumnType("text")
                        .HasColumnName("itemkey");

                    b.Property<int>("ItemType")
                        .HasColumnType("integer")
                        .HasColumnName("itemtype");

                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.HasKey("Id")
                        .HasName("pk_xpshopowneditem");

                    b.HasIndex("UserId", "ItemType", "ItemKey")
                        .IsUnique()
                        .HasDatabaseName("ix_xpshopowneditem_userid_itemtype_itemkey");

                    b.ToTable("xpshopowneditem", (string)null);
                });

            modelBuilder.Entity("EllieBot.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("UserId", "Game")
                        .IsUnique()
                        .HasDatabaseName("ix_userbetstats_userid_game");

                    b.ToTable("userbetstats", (string)null);
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiAltSetting", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithOne("AntiAltSetting")
                        .HasForeignKey("EllieBot.Db.Models.AntiAltSetting", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_antialtsetting_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiRaidSetting", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithOne("AntiRaidSetting")
                        .HasForeignKey("EllieBot.Db.Models.AntiRaidSetting", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_antiraidsetting_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamIgnore", b =>
                {
                    b.HasOne("EllieBot.Db.Models.AntiSpamSetting", null)
                        .WithMany("IgnoredChannels")
                        .HasForeignKey("AntiSpamSettingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_antispamignore_antispamsetting_antispamsettingid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithOne("AntiSpamSetting")
                        .HasForeignKey("EllieBot.Db.Models.AntiSpamSetting", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_antispamsetting_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.AutoTranslateChannel", "Channel")
                        .WithMany("Users")
                        .HasForeignKey("ChannelId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_autotranslateusers_autotranslatechannels_channelid");

                    b.Navigation("Channel");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ClubApplicants", b =>
                {
                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Applicants")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubapplicants_clubs_clubid");

                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubapplicants_discorduser_userid");

                    b.Navigation("Club");

                    b.Navigation("User");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ClubBans", b =>
                {
                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Bans")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubbans_clubs_clubid");

                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubbans_discorduser_userid");

                    b.Navigation("Club");

                    b.Navigation("User");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
                {
                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Owner")
                        .WithOne()
                        .HasForeignKey("EllieBot.Db.Models.ClubInfo", "OwnerId")
                        .OnDelete(DeleteBehavior.SetNull)
                        .HasConstraintName("fk_clubs_discorduser_ownerid");

                    b.Navigation("Owner");
                });

            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("CommandAliases")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_commandalias_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("CommandCooldowns")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_commandcooldown_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("DelMsgOnCmdChannels")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_delmsgoncmdchannel_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.DiscordUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Members")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.NoAction)
                        .HasConstraintName("fk_discorduser_clubs_clubid");

                    b.Navigation("Club");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
                {
                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
                        .WithMany("ExclusionList")
                        .HasForeignKey("XpSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_excludeditem_xpsettings_xpsettingsid");

                    b.Navigation("XpSettings");
                });

            modelBuilder.Entity("EllieBot.Db.Models.FeedSub", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithMany("FeedSubs")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_feedsub_guildconfigs_guildconfigid");

                    b.Navigation("GuildConfig");
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterInvitesChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_filterchannelid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterLinksChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_filterlinkschannelid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterWordsChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_filterwordschannelid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilteredWords")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_filteredword_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FollowedStreams")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_followedstream_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithMany("GenerateCurrencyChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_gcchannelid_guildconfigs_guildconfigid");

                    b.Navigation("GuildConfig");
                });

            modelBuilder.Entity("EllieBot.Db.Models.GiveawayUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GiveawayModel", null)
                        .WithMany("Participants")
                        .HasForeignKey("GiveawayId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.IgnoredLogItem", b =>
                {
                    b.HasOne("EllieBot.Db.Models.LogSetting", "LogSetting")
                        .WithMany("LogIgnores")
                        .HasForeignKey("LogSettingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");

                    b.Navigation("LogSetting");
                });

            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("MutedUsers")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_muteduserid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("Permissions")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.PlaylistSong", b =>
                {
                    b.HasOne("EllieBot.Db.Models.MusicPlaylist", null)
                        .WithMany("Songs")
                        .HasForeignKey("MusicPlaylistId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
                {
                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
                        .WithMany("Roles")
                        .HasForeignKey("SarGroupId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_sar_sargroup_sargroupid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("ShopEntries")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_shopentry_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
                {
                    b.HasOne("EllieBot.Db.Models.ShopEntry", null)
                        .WithMany("Items")
                        .HasForeignKey("ShopEntryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_shopentryitem_shopentry_shopentryid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("SlowmodeIgnoredRoles")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_slowmodeignoredrole_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("SlowmodeIgnoredUsers")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_slowmodeignoreduser_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
                        .WithMany("Blacklist")
                        .HasForeignKey("StreamRoleSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~");

                    b.Navigation("StreamRoleSettings");
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithOne("StreamRole")
                        .HasForeignKey("EllieBot.Db.Models.StreamRoleSettings", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_streamrolesettings_guildconfigs_guildconfigid");

                    b.Navigation("GuildConfig");
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
                        .WithMany("Whitelist")
                        .HasForeignKey("StreamRoleSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~");

                    b.Navigation("StreamRoleSettings");
                });

            modelBuilder.Entity("EllieBot.Db.Models.TodoModel", b =>
                {
                    b.HasOne("EllieBot.Db.Models.ArchivedTodoListModel", null)
                        .WithMany("Items")
                        .HasForeignKey("ArchiveId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_todos_todosarchive_archiveid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("UnbanTimer")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_unbantimer_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("UnmuteTimers")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_unmutetimer_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("UnroleTimer")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_unroletimer_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("VcRoleInfos")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_vcroleinfo_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
                {
                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Affinity")
                        .WithMany()
                        .HasForeignKey("AffinityId")
                        .HasConstraintName("fk_waifuinfo_discorduser_affinityid");

                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Claimer")
                        .WithMany()
                        .HasForeignKey("ClaimerId")
                        .HasConstraintName("fk_waifuinfo_discorduser_claimerid");

                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Waifu")
                        .WithOne()
                        .HasForeignKey("EllieBot.Db.Models.WaifuInfo", "WaifuId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_waifuinfo_discorduser_waifuid");

                    b.Navigation("Affinity");

                    b.Navigation("Claimer");

                    b.Navigation("Waifu");
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuItem", b =>
                {
                    b.HasOne("EllieBot.Db.Models.WaifuInfo", "WaifuInfo")
                        .WithMany("Items")
                        .HasForeignKey("WaifuInfoId")
                        .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");

                    b.Navigation("WaifuInfo");
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuUpdate", b =>
                {
                    b.HasOne("EllieBot.Db.Models.DiscordUser", "New")
                        .WithMany()
                        .HasForeignKey("NewId")
                        .HasConstraintName("fk_waifuupdates_discorduser_newid");

                    b.HasOne("EllieBot.Db.Models.DiscordUser", "Old")
                        .WithMany()
                        .HasForeignKey("OldId")
                        .HasConstraintName("fk_waifuupdates_discorduser_oldid");

                    b.HasOne("EllieBot.Db.Models.DiscordUser", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_waifuupdates_discorduser_userid");

                    b.Navigation("New");

                    b.Navigation("Old");

                    b.Navigation("User");
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpCurrencyReward", b =>
                {
                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
                        .WithMany("CurrencyRewards")
                        .HasForeignKey("XpSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");

                    b.Navigation("XpSettings");
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpRoleReward", b =>
                {
                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
                        .WithMany("RoleRewards")
                        .HasForeignKey("XpSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");

                    b.Navigation("XpSettings");
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithOne("XpSettings")
                        .HasForeignKey("EllieBot.Db.Models.XpSettings", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_xpsettings_guildconfigs_guildconfigid");

                    b.Navigation("GuildConfig");
                });

            modelBuilder.Entity("EllieBot.Db.Models.AntiSpamSetting", b =>
                {
                    b.Navigation("IgnoredChannels");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ArchivedTodoListModel", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("EllieBot.Db.Models.AutoTranslateChannel", b =>
                {
                    b.Navigation("Users");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ClubInfo", b =>
                {
                    b.Navigation("Applicants");

                    b.Navigation("Bans");

                    b.Navigation("Members");
                });

            modelBuilder.Entity("EllieBot.Db.Models.GiveawayModel", b =>
                {
                    b.Navigation("Participants");
                });

            modelBuilder.Entity("EllieBot.Db.Models.GuildConfig", b =>
                {
                    b.Navigation("AntiAltSetting");

                    b.Navigation("AntiRaidSetting");

                    b.Navigation("AntiSpamSetting");

                    b.Navigation("CommandAliases");

                    b.Navigation("CommandCooldowns");

                    b.Navigation("DelMsgOnCmdChannels");

                    b.Navigation("FeedSubs");

                    b.Navigation("FilterInvitesChannelIds");

                    b.Navigation("FilterLinksChannelIds");

                    b.Navigation("FilterWordsChannelIds");

                    b.Navigation("FilteredWords");

                    b.Navigation("FollowedStreams");

                    b.Navigation("GenerateCurrencyChannelIds");

                    b.Navigation("MutedUsers");

                    b.Navigation("Permissions");

                    b.Navigation("ShopEntries");

                    b.Navigation("SlowmodeIgnoredRoles");

                    b.Navigation("SlowmodeIgnoredUsers");

                    b.Navigation("StreamRole");

                    b.Navigation("UnbanTimer");

                    b.Navigation("UnmuteTimers");

                    b.Navigation("UnroleTimer");

                    b.Navigation("VcRoleInfos");

                    b.Navigation("XpSettings");
                });

            modelBuilder.Entity("EllieBot.Db.Models.LogSetting", b =>
                {
                    b.Navigation("LogIgnores");
                });

            modelBuilder.Entity("EllieBot.Db.Models.MusicPlaylist", b =>
                {
                    b.Navigation("Songs");
                });

            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
                {
                    b.Navigation("Roles");
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleSettings", b =>
                {
                    b.Navigation("Blacklist");

                    b.Navigation("Whitelist");
                });

            modelBuilder.Entity("EllieBot.Db.Models.WaifuInfo", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("EllieBot.Db.Models.XpSettings", b =>
                {
                    b.Navigation("CurrencyRewards");

                    b.Navigation("ExclusionList");

                    b.Navigation("RoleRewards");
                });
#pragma warning restore 612, 618
        }
    }
}