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

#nullable disable

namespace NadekoBot.Migrations.PostgreSql
{
    [DbContext(typeof(PostgreSqlContext))]
    [Migration("20240502233202_v5")]
    partial class v5
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.4")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.Db.Models.DiscordUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

            modelBuilder.Entity("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.Db.Models.GroupName", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

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

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

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

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

                    b.Property<int>("Number")
                        .HasColumnType("integer")
                        .HasColumnName("number");

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

                    b.HasIndex("GuildConfigId", "Number")
                        .IsUnique()
                        .HasDatabaseName("ix_groupname_guildconfigid_number");

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

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

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

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

                    b.Property<int>("AutoDeleteByeMessagesTimer")
                        .HasColumnType("integer")
                        .HasColumnName("autodeletebyemessagestimer");

                    b.Property<int>("AutoDeleteGreetMessagesTimer")
                        .HasColumnType("integer")
                        .HasColumnName("autodeletegreetmessagestimer");

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

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

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

                    b.Property<int>("BoostMessageDeleteAfter")
                        .HasColumnType("integer")
                        .HasColumnName("boostmessagedeleteafter");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    b.Property<bool>("NotifyStreamOffline")
                        .HasColumnType("boolean")
                        .HasColumnName("notifystreamoffline");

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

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

                    b.Property<bool>("SendBoostMessage")
                        .HasColumnType("boolean")
                        .HasColumnName("sendboostmessage");

                    b.Property<bool>("SendChannelByeMessage")
                        .HasColumnType("boolean")
                        .HasColumnName("sendchannelbyemessage");

                    b.Property<bool>("SendChannelGreetMessage")
                        .HasColumnType("boolean")
                        .HasColumnName("sendchannelgreetmessage");

                    b.Property<bool>("SendDmGreetMessage")
                        .HasColumnType("boolean")
                        .HasColumnName("senddmgreetmessage");

                    b.Property<bool>("StickyRoles")
                        .HasColumnType("boolean")
                        .HasColumnName("stickyroles");

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

                    b.Property<bool>("VerboseErrors")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(true)
                        .HasColumnName("verboseerrors");

                    b.Property<bool>("VerbosePermissions")
                        .HasColumnType("boolean")
                        .HasColumnName("verbosepermissions");

                    b.Property<int>("WarnExpireAction")
                        .HasColumnType("integer")
                        .HasColumnName("warnexpireaction");

                    b.Property<int>("WarnExpireHours")
                        .HasColumnType("integer")
                        .HasColumnName("warnexpirehours");

                    b.Property<bool>("WarningsInitialized")
                        .HasColumnType("boolean")
                        .HasColumnName("warningsinitialized");

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

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

                    b.HasIndex("WarnExpireHours")
                        .HasDatabaseName("ix_guildconfigs_warnexpirehours");

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

            modelBuilder.Entity("NadekoBot.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("NadekoBot.Db.Models.IgnoredVoicePresenceChannel", 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?>("LogSettingId")
                        .HasColumnType("integer")
                        .HasColumnName("logsettingid");

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

                    b.HasIndex("LogSettingId")
                        .HasDatabaseName("ix_ignoredvoicepresencechannels_logsettingid");

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

            modelBuilder.Entity("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.Db.Models.NadekoExpression", 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("NadekoBot.Db.Models.PatronQuota", b =>
                {
                    b.Property<decimal>("UserId")
                        .HasColumnType("numeric(20,0)")
                        .HasColumnName("userid");

                    b.Property<int>("FeatureType")
                        .HasColumnType("integer")
                        .HasColumnName("featuretype");

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

                    b.Property<long>("DailyCount")
                        .HasColumnType("bigint")
                        .HasColumnName("dailycount");

                    b.Property<long>("HourlyCount")
                        .HasColumnType("bigint")
                        .HasColumnName("hourlycount");

                    b.Property<long>("MonthlyCount")
                        .HasColumnType("bigint")
                        .HasColumnName("monthlycount");

                    b.HasKey("UserId", "FeatureType", "Feature")
                        .HasName("pk_patronquotas");

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

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

            modelBuilder.Entity("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.Db.Models.SelfAssignedRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

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

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

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

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

                    b.Property<int>("LevelRequirement")
                        .HasColumnType("integer")
                        .HasColumnName("levelrequirement");

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

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

                    b.HasIndex("GuildId", "RoleId")
                        .IsUnique()
                        .HasDatabaseName("ix_selfassignableroles_guildid_roleid");

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

            modelBuilder.Entity("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.Db.Models.WarningPunishment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasColumnName("id");

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

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

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

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

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

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

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

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

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

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

            modelBuilder.Entity("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.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("NadekoBot.Db.Models.AntiAltSetting", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithOne("AntiAltSetting")
                        .HasForeignKey("NadekoBot.Db.Models.AntiAltSetting", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_antialtsetting_guildconfigs_guildconfigid");
                });

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

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

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

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

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

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

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

            modelBuilder.Entity("NadekoBot.Db.Models.ClubApplicants", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Applicants")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubapplicants_clubs_clubid");

                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubapplicants_discorduser_userid");

                    b.Navigation("Club");

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

            modelBuilder.Entity("NadekoBot.Db.Models.ClubBans", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Bans")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubbans_clubs_clubid");

                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "User")
                        .WithMany()
                        .HasForeignKey("UserId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_clubbans_discorduser_userid");

                    b.Navigation("Club");

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

            modelBuilder.Entity("NadekoBot.Db.Models.ClubInfo", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "Owner")
                        .WithOne()
                        .HasForeignKey("NadekoBot.Db.Models.ClubInfo", "OwnerId")
                        .OnDelete(DeleteBehavior.SetNull)
                        .HasConstraintName("fk_clubs_discorduser_ownerid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.CommandAlias", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("CommandAliases")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_commandalias_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.CommandCooldown", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("CommandCooldowns")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_commandcooldown_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.DelMsgOnCmdChannel", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("DelMsgOnCmdChannels")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_delmsgoncmdchannel_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.DiscordUser", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Members")
                        .HasForeignKey("ClubId")
                        .OnDelete(DeleteBehavior.NoAction)
                        .HasConstraintName("fk_discorduser_clubs_clubid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.ExcludedItem", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.XpSettings", null)
                        .WithMany("ExclusionList")
                        .HasForeignKey("XpSettingsId")
                        .HasConstraintName("fk_excludeditem_xpsettings_xpsettingsid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.FeedSub", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithMany("FeedSubs")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_feedsub_guildconfigs_guildconfigid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.FilterChannelId", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterInvitesChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_filterchannelid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.FilterLinksChannelId", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterLinksChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_filterlinkschannelid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.FilterWordsChannelId", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterWordsChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_filterwordschannelid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.FilteredWord", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("FilteredWords")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_filteredword_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.FollowedStream", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("FollowedStreams")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_followedstream_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.GCChannelId", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithMany("GenerateCurrencyChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_gcchannelid_guildconfigs_guildconfigid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayUser", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GiveawayModel", null)
                        .WithMany("Participants")
                        .HasForeignKey("GiveawayId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_giveawayuser_giveawaymodel_giveawayid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.GroupName", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithMany("SelfAssignableRoleGroupNames")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_groupname_guildconfigs_guildconfigid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.IgnoredLogItem", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.LogSetting", "LogSetting")
                        .WithMany("LogIgnores")
                        .HasForeignKey("LogSettingId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_ignoredlogchannels_logsettings_logsettingid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.IgnoredVoicePresenceChannel", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.LogSetting", "LogSetting")
                        .WithMany()
                        .HasForeignKey("LogSettingId")
                        .HasConstraintName("fk_ignoredvoicepresencechannels_logsettings_logsettingid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.MutedUserId", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("MutedUsers")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_muteduserid_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.Permissionv2", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("Permissions")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_permissions_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.PlaylistSong", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.MusicPlaylist", null)
                        .WithMany("Songs")
                        .HasForeignKey("MusicPlaylistId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_playlistsong_musicplaylists_musicplaylistid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ShopEntry", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("ShopEntries")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_shopentry_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ShopEntryItem", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.ShopEntry", null)
                        .WithMany("Items")
                        .HasForeignKey("ShopEntryId")
                        .HasConstraintName("fk_shopentryitem_shopentry_shopentryid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.SlowmodeIgnoredRole", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("SlowmodeIgnoredRoles")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_slowmodeignoredrole_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.SlowmodeIgnoredUser", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("SlowmodeIgnoredUsers")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_slowmodeignoreduser_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.StreamRoleBlacklistedUser", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.StreamRoleSettings", null)
                        .WithMany("Blacklist")
                        .HasForeignKey("StreamRoleSettingsId")
                        .HasConstraintName("fk_streamroleblacklisteduser_streamrolesettings_streamrolesett~");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.StreamRoleSettings", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithOne("StreamRole")
                        .HasForeignKey("NadekoBot.Db.Models.StreamRoleSettings", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_streamrolesettings_guildconfigs_guildconfigid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.StreamRoleWhitelistedUser", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.StreamRoleSettings", null)
                        .WithMany("Whitelist")
                        .HasForeignKey("StreamRoleSettingsId")
                        .HasConstraintName("fk_streamrolewhitelisteduser_streamrolesettings_streamrolesett~");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.TodoModel", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.ArchivedTodoListModel", null)
                        .WithMany("Items")
                        .HasForeignKey("ArchiveId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .HasConstraintName("fk_todos_todosarchive_archiveid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.UnbanTimer", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("UnbanTimer")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_unbantimer_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.UnmuteTimer", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("UnmuteTimers")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_unmutetimer_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.UnroleTimer", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("UnroleTimer")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_unroletimer_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.VcRoleInfo", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("VcRoleInfos")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_vcroleinfo_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.WaifuInfo", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "Affinity")
                        .WithMany()
                        .HasForeignKey("AffinityId")
                        .HasConstraintName("fk_waifuinfo_discorduser_affinityid");

                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "Claimer")
                        .WithMany()
                        .HasForeignKey("ClaimerId")
                        .HasConstraintName("fk_waifuinfo_discorduser_claimerid");

                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "Waifu")
                        .WithOne()
                        .HasForeignKey("NadekoBot.Db.Models.WaifuInfo", "WaifuId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_waifuinfo_discorduser_waifuid");

                    b.Navigation("Affinity");

                    b.Navigation("Claimer");

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

            modelBuilder.Entity("NadekoBot.Db.Models.WaifuItem", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.WaifuInfo", "WaifuInfo")
                        .WithMany("Items")
                        .HasForeignKey("WaifuInfoId")
                        .HasConstraintName("fk_waifuitem_waifuinfo_waifuinfoid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.WaifuUpdate", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "New")
                        .WithMany()
                        .HasForeignKey("NewId")
                        .HasConstraintName("fk_waifuupdates_discorduser_newid");

                    b.HasOne("NadekoBot.Db.Models.DiscordUser", "Old")
                        .WithMany()
                        .HasForeignKey("OldId")
                        .HasConstraintName("fk_waifuupdates_discorduser_oldid");

                    b.HasOne("NadekoBot.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("NadekoBot.Db.Models.WarningPunishment", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", null)
                        .WithMany("WarnPunishments")
                        .HasForeignKey("GuildConfigId")
                        .HasConstraintName("fk_warningpunishment_guildconfigs_guildconfigid");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.XpCurrencyReward", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.XpSettings", "XpSettings")
                        .WithMany("CurrencyRewards")
                        .HasForeignKey("XpSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_xpcurrencyreward_xpsettings_xpsettingsid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.XpRoleReward", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.XpSettings", "XpSettings")
                        .WithMany("RoleRewards")
                        .HasForeignKey("XpSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_xprolereward_xpsettings_xpsettingsid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.XpSettings", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithOne("XpSettings")
                        .HasForeignKey("NadekoBot.Db.Models.XpSettings", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired()
                        .HasConstraintName("fk_xpsettings_guildconfigs_guildconfigid");

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

            modelBuilder.Entity("NadekoBot.Db.Models.AntiSpamSetting", b =>
                {
                    b.Navigation("IgnoredChannels");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ArchivedTodoListModel", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.AutoTranslateChannel", b =>
                {
                    b.Navigation("Users");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ClubInfo", b =>
                {
                    b.Navigation("Applicants");

                    b.Navigation("Bans");

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

            modelBuilder.Entity("NadekoBot.Db.Models.GiveawayModel", b =>
                {
                    b.Navigation("Participants");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.GuildConfig", b =>
                {
                    b.Navigation("AntiAltSetting");

                    b.Navigation("AntiRaidSetting");

                    b.Navigation("AntiSpamSetting");

                    b.Navigation("CommandAliases");

                    b.Navigation("CommandCooldowns");

                    b.Navigation("DelMsgOnCmdChannels");

                    b.Navigation("FeedSubs");

                    b.Navigation("FilterInvitesChannelIds");

                    b.Navigation("FilterLinksChannelIds");

                    b.Navigation("FilterWordsChannelIds");

                    b.Navigation("FilteredWords");

                    b.Navigation("FollowedStreams");

                    b.Navigation("GenerateCurrencyChannelIds");

                    b.Navigation("MutedUsers");

                    b.Navigation("Permissions");

                    b.Navigation("SelfAssignableRoleGroupNames");

                    b.Navigation("ShopEntries");

                    b.Navigation("SlowmodeIgnoredRoles");

                    b.Navigation("SlowmodeIgnoredUsers");

                    b.Navigation("StreamRole");

                    b.Navigation("UnbanTimer");

                    b.Navigation("UnmuteTimers");

                    b.Navigation("UnroleTimer");

                    b.Navigation("VcRoleInfos");

                    b.Navigation("WarnPunishments");

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

            modelBuilder.Entity("NadekoBot.Db.Models.LogSetting", b =>
                {
                    b.Navigation("LogIgnores");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.MusicPlaylist", b =>
                {
                    b.Navigation("Songs");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ShopEntry", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.StreamRoleSettings", b =>
                {
                    b.Navigation("Blacklist");

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

            modelBuilder.Entity("NadekoBot.Db.Models.WaifuInfo", b =>
                {
                    b.Navigation("Items");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.XpSettings", b =>
                {
                    b.Navigation("CurrencyRewards");

                    b.Navigation("ExclusionList");

                    b.Navigation("RoleRewards");
                });
#pragma warning restore 612, 618
        }
    }
}
