// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using NadekoBot.Services.Database;

namespace NadekoBot.Migrations
{
    [DbContext(typeof(NadekoContext))]
    [Migration("20210621042359_squash")]
    partial class squash
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "5.0.7");

            modelBuilder.Entity("NadekoBot.Db.Models.ClubApplicants", b =>
                {
                    b.Property<int>("ClubId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("ClubId", "UserId");

                    b.HasIndex("UserId");

                    b.ToTable("ClubApplicants");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ClubBans", b =>
                {
                    b.Property<int>("ClubId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("ClubId", "UserId");

                    b.HasIndex("UserId");

                    b.ToTable("ClubBans");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.ClubInfo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("Description")
                        .HasColumnType("TEXT");

                    b.Property<int>("Discrim")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ImageUrl")
                        .HasColumnType("TEXT");

                    b.Property<int>("MinimumLevelReq")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("TEXT");

                    b.Property<int>("OwnerId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Xp")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasAlternateKey("Name", "Discrim");

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

                    b.ToTable("Clubs");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.DiscordUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("AvatarId")
                        .HasColumnType("TEXT");

                    b.Property<int?>("ClubId")
                        .HasColumnType("INTEGER");

                    b.Property<long>("CurrencyAmount")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("Discriminator")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsClubAdmin")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastLevelUp")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue(new DateTime(2017, 9, 21, 20, 53, 13, 305, DateTimeKind.Local));

                    b.Property<DateTime>("LastXpGain")
                        .HasColumnType("TEXT");

                    b.Property<int>("NotifyOnLevelUp")
                        .HasColumnType("INTEGER");

                    b.Property<int>("TotalXp")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Username")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasAlternateKey("UserId");

                    b.HasIndex("ClubId");

                    b.HasIndex("CurrencyAmount");

                    b.HasIndex("TotalXp");

                    b.HasIndex("UserId");

                    b.ToTable("DiscordUser");
                });

            modelBuilder.Entity("NadekoBot.Db.Models.FollowedStream", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Message")
                        .HasColumnType("TEXT");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Username")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("FollowedStream");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.AntiAltSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Action")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ActionDurationMinutes")
                        .HasColumnType("INTEGER");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<TimeSpan>("MinAge")
                        .HasColumnType("TEXT");

                    b.Property<ulong?>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("AntiAltSetting");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.AntiRaidSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Action")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PunishDuration")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Seconds")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserThreshold")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("AntiRaidSetting");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.AntiSpamIgnore", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("AntiSpamSettingId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("AntiSpamSettingId");

                    b.ToTable("AntiSpamIgnore");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.AntiSpamSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Action")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MessageThreshold")
                        .HasColumnType("INTEGER");

                    b.Property<int>("MuteTime")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("AntiSpamSetting");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.AutoCommand", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ChannelName")
                        .HasColumnType("TEXT");

                    b.Property<string>("CommandText")
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong?>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("GuildName")
                        .HasColumnType("TEXT");

                    b.Property<int>("Interval")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("VoiceChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("VoiceChannelName")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("AutoCommands");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.BanTemplate", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("Id");

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

                    b.ToTable("BanTemplates");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.BlacklistEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("ItemId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Blacklist");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.CommandAlias", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Mapping")
                        .HasColumnType("TEXT");

                    b.Property<string>("Trigger")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("CommandAlias");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.CommandCooldown", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("CommandName")
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Seconds")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("CommandCooldown");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.CurrencyTransaction", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<long>("Amount")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("Reason")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("UserId");

                    b.ToTable("CurrencyTransactions");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.CustomReaction", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AllowTarget")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AutoDeleteTrigger")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ContainsAnywhere")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<bool>("DmResponse")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsRegex")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("OwnerOnly")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Reactions")
                        .HasColumnType("TEXT");

                    b.Property<string>("Response")
                        .HasColumnType("TEXT");

                    b.Property<string>("Trigger")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UseCount")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("CustomReactions");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.DelMsgOnCmdChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("State")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("DelMsgOnCmdChannel");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.DiscordPermOverride", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Command")
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong?>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("Perm")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("DiscordPermOverrides");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ExcludedItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("ItemId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("ItemType")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("XpSettingsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("XpSettingsId");

                    b.ToTable("ExcludedItem");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.FeedSub", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Url")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

                    b.ToTable("FeedSub");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.FilterChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("GuildConfigId1")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.HasIndex("GuildConfigId1");

                    b.ToTable("FilterChannelId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.FilterLinksChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("FilterLinksChannelId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.FilteredWord", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Word")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("FilteredWord");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.GCChannelId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("GCChannelId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.GroupName", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<int>("Number")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("GroupName");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.GuildConfig", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("AutoAssignRoleId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("AutoAssignRoleIds")
                        .HasColumnType("TEXT");

                    b.Property<bool>("AutoDcFromVc")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AutoDeleteByeMessages")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AutoDeleteByeMessagesTimer")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AutoDeleteGreetMessages")
                        .HasColumnType("INTEGER");

                    b.Property<int>("AutoDeleteGreetMessagesTimer")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AutoDeleteSelfAssignedRoleMessages")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ByeMessageChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ChannelByeMessageText")
                        .HasColumnType("TEXT");

                    b.Property<string>("ChannelGreetMessageText")
                        .HasColumnType("TEXT");

                    b.Property<bool>("CleverbotEnabled")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<float>("DefaultMusicVolume")
                        .HasColumnType("REAL");

                    b.Property<bool>("DeleteMessageOnCommand")
                        .HasColumnType("INTEGER");

                    b.Property<string>("DmGreetMessageText")
                        .HasColumnType("TEXT");

                    b.Property<bool>("ExclusiveSelfAssignedRoles")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("FilterInvites")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("FilterLinks")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("FilterWords")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("GameVoiceChannel")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("GreetMessageChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Locale")
                        .HasColumnType("TEXT");

                    b.Property<int?>("LogSettingId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("MuteRoleName")
                        .HasColumnType("TEXT");

                    b.Property<bool>("NotifyStreamOffline")
                        .HasColumnType("INTEGER");

                    b.Property<string>("PermissionRole")
                        .HasColumnType("TEXT");

                    b.Property<string>("Prefix")
                        .HasColumnType("TEXT");

                    b.Property<int?>("RootPermissionId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SendChannelByeMessage")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SendChannelGreetMessage")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("SendDmGreetMessage")
                        .HasColumnType("INTEGER");

                    b.Property<string>("TimeZoneId")
                        .HasColumnType("TEXT");

                    b.Property<bool>("VerboseErrors")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("VerbosePermissions")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("VoicePlusTextEnabled")
                        .HasColumnType("INTEGER");

                    b.Property<int>("WarnExpireAction")
                        .HasColumnType("INTEGER");

                    b.Property<int>("WarnExpireHours")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("WarningsInitialized")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.HasIndex("LogSettingId");

                    b.HasIndex("RootPermissionId");

                    b.HasIndex("WarnExpireHours");

                    b.ToTable("GuildConfigs");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredLogChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("LogSettingId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("LogSettingId");

                    b.ToTable("IgnoredLogChannels");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredVoicePresenceChannel", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("LogSettingId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("LogSettingId");

                    b.ToTable("IgnoredVoicePresenceCHannels");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.LogSetting", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ChannelCreated")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("ChannelCreatedId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ChannelDestroyed")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("ChannelDestroyedId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("ChannelUpdated")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("ChannelUpdatedId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsLogging")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("LogOtherId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("LogUserPresence")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("LogUserPresenceId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("LogVoicePresence")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("LogVoicePresenceId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("LogVoicePresenceTTSId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("MessageDeleted")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("MessageDeletedId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("MessageUpdated")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("MessageUpdatedId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("UserBanned")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("UserBannedId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("UserJoined")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("UserJoinedId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("UserLeft")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("UserLeftId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("UserMutedId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserPresenceChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("UserUnbanned")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("UserUnbannedId")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("UserUpdated")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("UserUpdatedId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("VoicePresenceChannelId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("LogSettings");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.MusicPlayerSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<bool>("AutoDisconnect")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("MusicChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PlayerRepeat")
                        .HasColumnType("INTEGER");

                    b.Property<int>("QualityPreset")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Volume")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(100);

                    b.HasKey("Id");

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

                    b.ToTable("MusicPlayerSettings");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.MusicPlaylist", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<string>("Author")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("AuthorId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("MusicPlaylists");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.MutedUserId", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("MutedUserId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.NsfwBlacklitedTag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Tag")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("NsfwBlacklitedTag");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("NextId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PrimaryTarget")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("PrimaryTargetId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SecondaryTarget")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SecondaryTargetName")
                        .HasColumnType("TEXT");

                    b.Property<bool>("State")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("NextId")
                        .IsUnique();

                    b.ToTable("Permission");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permissionv2", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Index")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("IsCustomCommand")
                        .HasColumnType("INTEGER");

                    b.Property<int>("PrimaryTarget")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("PrimaryTargetId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("SecondaryTarget")
                        .HasColumnType("INTEGER");

                    b.Property<string>("SecondaryTargetName")
                        .HasColumnType("TEXT");

                    b.Property<bool>("State")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("Permissionv2");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlantedCurrency", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<long>("Amount")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("MessageId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Password")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ChannelId");

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

                    b.ToTable("PlantedCurrency");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.PlaylistSong", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("MusicPlaylistId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Provider")
                        .HasColumnType("TEXT");

                    b.Property<int>("ProviderType")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Query")
                        .HasColumnType("TEXT");

                    b.Property<string>("Title")
                        .HasColumnType("TEXT");

                    b.Property<string>("Uri")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("MusicPlaylistId");

                    b.ToTable("PlaylistSong");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Poll", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Question")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

                    b.ToTable("Poll");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.PollAnswer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("Index")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("PollId")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("Id");

                    b.HasIndex("PollId");

                    b.ToTable("PollAnswer");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.PollVote", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("PollId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("VoteIndex")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("PollId");

                    b.ToTable("PollVote");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Quote", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("AuthorId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("AuthorName")
                        .IsRequired()
                        .HasColumnType("TEXT");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Keyword")
                        .IsRequired()
                        .HasColumnType("TEXT");

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

                    b.Property<ulong>("UseCount")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildId");

                    b.HasIndex("Keyword");

                    b.ToTable("Quotes");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ReactionRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("EmoteName")
                        .HasColumnType("TEXT");

                    b.Property<int?>("ReactionRoleMessageId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("ReactionRoleMessageId");

                    b.ToTable("ReactionRole");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ReactionRoleMessage", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Exclusive")
                        .HasColumnType("INTEGER");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Index")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("MessageId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("ReactionRoleMessage");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Reminder", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<bool>("IsPrivate")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Message")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("ServerId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("When")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("When");

                    b.ToTable("Reminders");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Repeater", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("ChannelId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

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

                    b.Property<ulong?>("LastMessageId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Message")
                        .HasColumnType("TEXT");

                    b.Property<bool>("NoRedundant")
                        .HasColumnType("INTEGER");

                    b.Property<TimeSpan?>("StartTimeOfDay")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.ToTable("Repeaters");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.RewardedUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AmountRewardedThisMonth")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<DateTime>("LastReward")
                        .HasColumnType("TEXT");

                    b.Property<string>("PatreonUserId")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("PatreonUserId")
                        .IsUnique();

                    b.ToTable("RewardedUsers");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.RotatingPlayingStatus", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("Status")
                        .HasColumnType("TEXT");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("RotatingStatus");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.SelfAssignedRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("Group")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(0);

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("LevelRequirement")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("SelfAssignableRoles");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ShopEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("AuthorId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Index")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<int>("Price")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("RoleName")
                        .HasColumnType("TEXT");

                    b.Property<int>("Type")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("ShopEntry");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ShopEntryItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("ShopEntryId")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("Id");

                    b.HasIndex("ShopEntryId");

                    b.ToTable("ShopEntryItem");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.SlowmodeIgnoredRole", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("SlowmodeIgnoredRole");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.SlowmodeIgnoredUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("SlowmodeIgnoredUser");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Stake", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<long>("Amount")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<string>("Source")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.ToTable("Stakes");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.StreamRoleBlacklistedUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("StreamRoleSettingsId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Username")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("StreamRoleSettingsId");

                    b.ToTable("StreamRoleBlacklistedUser");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.StreamRoleSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("AddRoleId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Enabled")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("FromRoleId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Keyword")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

                    b.ToTable("StreamRoleSettings");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.StreamRoleWhitelistedUser", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("StreamRoleSettingsId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Username")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

                    b.HasIndex("StreamRoleSettingsId");

                    b.ToTable("StreamRoleWhitelistedUser");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.UnbanTimer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("UnbanAt")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("UnbanTimer");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.UnmuteTimer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("UnmuteAt")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("UnmuteTimer");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.UnroleTimer", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("UnbanAt")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("UnroleTimer");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.UserXpStats", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("AwardedXp")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime>("LastLevelUp")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("TEXT")
                        .HasDefaultValue(new DateTime(2017, 9, 21, 20, 53, 13, 307, DateTimeKind.Local));

                    b.Property<int>("NotifyOnLevelUp")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Xp")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AwardedXp");

                    b.HasIndex("GuildId");

                    b.HasIndex("UserId");

                    b.HasIndex("Xp");

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

                    b.ToTable("UserXpStats");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.VcRoleInfo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("VoiceChannelId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("VcRoleInfo");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.WaifuInfo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int?>("AffinityId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("ClaimerId")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("Price")
                        .HasColumnType("INTEGER");

                    b.Property<int>("WaifuId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("AffinityId");

                    b.HasIndex("ClaimerId");

                    b.HasIndex("Price");

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.WaifuItem", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("Item")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ItemEmoji")
                        .HasColumnType("TEXT");

                    b.Property<string>("Name")
                        .HasColumnType("TEXT");

                    b.Property<int>("Price")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("WaifuInfoId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("WaifuInfoId");

                    b.ToTable("WaifuItem");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.WaifuUpdate", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("NewId")
                        .HasColumnType("INTEGER");

                    b.Property<int?>("OldId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UpdateType")
                        .HasColumnType("INTEGER");

                    b.Property<int>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("NewId");

                    b.HasIndex("OldId");

                    b.HasIndex("UserId");

                    b.ToTable("WaifuUpdates");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Warning", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Forgiven")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ForgivenBy")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("GuildId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Moderator")
                        .HasColumnType("TEXT");

                    b.Property<string>("Reason")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("UserId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("DateAdded");

                    b.HasIndex("GuildId");

                    b.HasIndex("UserId");

                    b.ToTable("Warnings");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.WarningPunishment", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Count")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int?>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Punishment")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("RoleId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Time")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

                    b.ToTable("WarningPunishment");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.XpCurrencyReward", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<int>("Amount")
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("Level")
                        .HasColumnType("INTEGER");

                    b.Property<int>("XpSettingsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

                    b.HasIndex("XpSettingsId");

                    b.ToTable("XpCurrencyReward");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.XpRoleReward", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("Level")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Remove")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("RoleId")
                        .HasColumnType("INTEGER");

                    b.Property<int>("XpSettingsId")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

                    b.ToTable("XpRoleReward");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.XpSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<DateTime?>("DateAdded")
                        .HasColumnType("TEXT");

                    b.Property<int>("GuildConfigId")
                        .HasColumnType("INTEGER");

                    b.Property<string>("NotifyMessage")
                        .HasColumnType("TEXT");

                    b.Property<bool>("ServerExcluded")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("XpRoleRewardExclusive")
                        .HasColumnType("INTEGER");

                    b.HasKey("Id");

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

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

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

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

                    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();

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

                    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.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("NadekoBot.Db.Models.DiscordUser", b =>
                {
                    b.HasOne("NadekoBot.Db.Models.ClubInfo", "Club")
                        .WithMany("Users")
                        .HasForeignKey("ClubId");

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.AntiAltSetting", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig", null)
                        .WithOne("AntiAltSetting")
                        .HasForeignKey("NadekoBot.Services.Database.Models.AntiAltSetting", "GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

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

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

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

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

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

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

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

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

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

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.FilterChannelId", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig", null)
                        .WithMany("FilterInvitesChannelIds")
                        .HasForeignKey("GuildConfigId");

                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig", null)
                        .WithMany("FilterWordsChannelIds")
                        .HasForeignKey("GuildConfigId1");
                });

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

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

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

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

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.GuildConfig", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.LogSetting", "LogSetting")
                        .WithMany()
                        .HasForeignKey("LogSettingId");

                    b.HasOne("NadekoBot.Services.Database.Models.Permission", "RootPermission")
                        .WithMany()
                        .HasForeignKey("RootPermissionId");

                    b.Navigation("LogSetting");

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredLogChannel", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.LogSetting", "LogSetting")
                        .WithMany("IgnoredChannels")
                        .HasForeignKey("LogSettingId");

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.IgnoredVoicePresenceChannel", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.LogSetting", "LogSetting")
                        .WithMany("IgnoredVoicePresenceChannelIds")
                        .HasForeignKey("LogSettingId");

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.NsfwBlacklitedTag", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig", null)
                        .WithMany("NsfwBlacklistedTags")
                        .HasForeignKey("GuildConfigId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.Permission", "Next")
                        .WithOne("Previous")
                        .HasForeignKey("NadekoBot.Services.Database.Models.Permission", "NextId");

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

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.PollAnswer", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.Poll", null)
                        .WithMany("Answers")
                        .HasForeignKey("PollId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.PollVote", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.Poll", null)
                        .WithMany("Votes")
                        .HasForeignKey("PollId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ReactionRole", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.ReactionRoleMessage", null)
                        .WithMany("ReactionRoles")
                        .HasForeignKey("ReactionRoleMessageId");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ReactionRoleMessage", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig", "GuildConfig")
                        .WithMany("ReactionRoleMessages")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

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

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

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.StreamRoleBlacklistedUser", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.StreamRoleSettings", null)
                        .WithMany("Blacklist")
                        .HasForeignKey("StreamRoleSettingsId");
                });

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.StreamRoleWhitelistedUser", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.StreamRoleSettings", null)
                        .WithMany("Whitelist")
                        .HasForeignKey("StreamRoleSettingsId");
                });

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

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

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

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

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

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

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

                    b.Navigation("Affinity");

                    b.Navigation("Claimer");

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.WaifuItem", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.WaifuInfo", null)
                        .WithMany("Items")
                        .HasForeignKey("WaifuInfoId");
                });

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

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

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

                    b.Navigation("New");

                    b.Navigation("Old");

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.WarningPunishment", b =>
                {
                    b.HasOne("NadekoBot.Services.Database.Models.GuildConfig", null)
                        .WithMany("WarnPunishments")
                        .HasForeignKey("GuildConfigId");
                });

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

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

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

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

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

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

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

                    b.Navigation("Bans");

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.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("FilteredWords");

                    b.Navigation("FilterInvitesChannelIds");

                    b.Navigation("FilterLinksChannelIds");

                    b.Navigation("FilterWordsChannelIds");

                    b.Navigation("FollowedStreams");

                    b.Navigation("GenerateCurrencyChannelIds");

                    b.Navigation("MutedUsers");

                    b.Navigation("NsfwBlacklistedTags");

                    b.Navigation("Permissions");

                    b.Navigation("ReactionRoleMessages");

                    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.Services.Database.Models.LogSetting", b =>
                {
                    b.Navigation("IgnoredChannels");

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

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Permission", b =>
                {
                    b.Navigation("Previous");
                });

            modelBuilder.Entity("NadekoBot.Services.Database.Models.Poll", b =>
                {
                    b.Navigation("Answers");

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

            modelBuilder.Entity("NadekoBot.Services.Database.Models.ReactionRoleMessage", b =>
                {
                    b.Navigation("ReactionRoles");
                });

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

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

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

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

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

                    b.Navigation("ExclusionList");

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