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

#nullable disable

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("AntiSpamSettingId");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

                    b.HasIndex("GuildId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

                    b.Property<string>("ButtonId")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("TEXT");

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

                    b.Property<string>("Emote")
                        .IsRequired()
                        .HasMaxLength(100)
                        .HasColumnType("TEXT");

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

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

                    b.Property<string>("Label")
                        .IsRequired()
                        .HasMaxLength(50)
                        .HasColumnType("TEXT");

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

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

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

                    b.HasKey("Id");

                    b.HasAlternateKey("RoleId", "MessageId");

                    b.HasIndex("GuildId");

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

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

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

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

                    b.HasIndex("UserId");

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

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

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

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

                    b.HasIndex("UserId");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

                    b.Property<ulong?>("OtherId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValueSql("NULL");

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

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

                    b.HasKey("Id");

                    b.HasIndex("UserId");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasAlternateKey("UserId");

                    b.HasIndex("ClubId");

                    b.HasIndex("CurrencyAmount");

                    b.HasIndex("TotalXp");

                    b.HasIndex("UserId");

                    b.HasIndex("Username");

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("XpSettingsId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

                    b.Property<decimal>("Bet")
                        .HasColumnType("TEXT");

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

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

                    b.Property<decimal>("PaidOut")
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

                    b.Property<string>("ErrorColor")
                        .HasMaxLength(9)
                        .HasColumnType("TEXT");

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

                    b.Property<string>("OkColor")
                        .HasMaxLength(9)
                        .HasColumnType("TEXT");

                    b.Property<string>("PendingColor")
                        .HasMaxLength(9)
                        .HasColumnType("TEXT");

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

                    b.Property<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>("GuildId")
                        .HasColumnType("INTEGER");

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

                    b.HasIndex("WarnExpireHours");

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

            modelBuilder.Entity("EllieBot.Db.Models.HoneypotChannel", b =>
                {
                    b.Property<ulong>("GuildId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

                    b.HasKey("GuildId");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

                    b.Property<uint>("Color")
                        .HasColumnType("INTEGER");

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

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

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

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

                    b.HasKey("Id");

                    b.HasAlternateKey("Position");

                    b.HasIndex("OwnerId");

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

            modelBuilder.Entity("EllieBot.Db.Models.PatronUser", b =>
                {
                    b.Property<ulong>("UserId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

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

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

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

                    b.HasKey("UserId");

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("ChannelId");

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("MusicPlaylistId");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildId");

                    b.HasIndex("Keyword");

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

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

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

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

                    b.Property<string>("Emote")
                        .HasMaxLength(100)
                        .HasColumnType("TEXT");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildId");

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("When");

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

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

                    b.HasIndex("SarGroupId");

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("ShopEntryId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("StreamRoleSettingsId");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("StreamRoleSettingsId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("ArchiveId");

                    b.HasIndex("UserId");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("AwardedXp");

                    b.HasIndex("GuildId");

                    b.HasIndex("UserId");

                    b.HasIndex("Xp");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("GuildConfigId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("AffinityId");

                    b.HasIndex("ClaimerId");

                    b.HasIndex("Price");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("WaifuInfoId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("NewId");

                    b.HasIndex("OldId");

                    b.HasIndex("UserId");

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("DateAdded");

                    b.HasIndex("GuildId");

                    b.HasIndex("UserId");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("XpSettingsId");

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("EllieBot.Services.GreetSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

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

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

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

                    b.Property<bool>("IsEnabled")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(false);

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

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("EllieBot.Services.Rakeback", b =>
                {
                    b.Property<ulong>("UserId")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

                    b.Property<decimal>("Amount")
                        .HasColumnType("TEXT");

                    b.HasKey("UserId");

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

            modelBuilder.Entity("EllieBot.Services.UserBetStats", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

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

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

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

                    b.Property<decimal>("PaidOut")
                        .HasColumnType("TEXT");

                    b.Property<decimal>("TotalBet")
                        .HasColumnType("TEXT");

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

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

                    b.HasKey("Id");

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

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

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

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

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

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

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

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

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

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

                    b.Navigation("Club");

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

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

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

                    b.Navigation("Club");

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

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

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

            modelBuilder.Entity("EllieBot.Db.Models.CommandAlias", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("CommandAliases")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.CommandCooldown", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("CommandCooldowns")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.DelMsgOnCmdChannel", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("DelMsgOnCmdChannels")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

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

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

            modelBuilder.Entity("EllieBot.Db.Models.ExcludedItem", b =>
                {
                    b.HasOne("EllieBot.Db.Models.XpSettings", "XpSettings")
                        .WithMany("ExclusionList")
                        .HasForeignKey("XpSettingsId")
                        .OnDelete(DeleteBehavior.Cascade);

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

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

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

            modelBuilder.Entity("EllieBot.Db.Models.FilterChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterInvitesChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterLinksChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterLinksChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilterWordsChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilterWordsChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FilteredWord", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FilteredWords")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.FollowedStream", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("FollowedStreams")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.GCChannelId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", "GuildConfig")
                        .WithMany("GenerateCurrencyChannelIds")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);

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

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

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

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

            modelBuilder.Entity("EllieBot.Db.Models.MutedUserId", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("MutedUsers")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.Permissionv2", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("Permissions")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

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

            modelBuilder.Entity("EllieBot.Db.Models.Sar", b =>
                {
                    b.HasOne("EllieBot.Db.Models.SarGroup", null)
                        .WithMany("Roles")
                        .HasForeignKey("SarGroupId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntry", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("ShopEntries")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.ShopEntryItem", b =>
                {
                    b.HasOne("EllieBot.Db.Models.ShopEntry", null)
                        .WithMany("Items")
                        .HasForeignKey("ShopEntryId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredRole", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("SlowmodeIgnoredRoles")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.SlowmodeIgnoredUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("SlowmodeIgnoredUsers")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleBlacklistedUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
                        .WithMany("Blacklist")
                        .HasForeignKey("StreamRoleSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

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

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

            modelBuilder.Entity("EllieBot.Db.Models.StreamRoleWhitelistedUser", b =>
                {
                    b.HasOne("EllieBot.Db.Models.StreamRoleSettings", "StreamRoleSettings")
                        .WithMany("Whitelist")
                        .HasForeignKey("StreamRoleSettingsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

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

            modelBuilder.Entity("EllieBot.Db.Models.UnbanTimer", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("UnbanTimer")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnmuteTimer", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("UnmuteTimers")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.UnroleTimer", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("UnroleTimer")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

            modelBuilder.Entity("EllieBot.Db.Models.VcRoleInfo", b =>
                {
                    b.HasOne("EllieBot.Db.Models.GuildConfig", null)
                        .WithMany("VcRoleInfos")
                        .HasForeignKey("GuildConfigId")
                        .OnDelete(DeleteBehavior.Cascade);
                });

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

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

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

                    b.Navigation("Affinity");

                    b.Navigation("Claimer");

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

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

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

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

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

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

                    b.Navigation("New");

                    b.Navigation("Old");

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

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

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

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

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

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

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

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

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

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

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

                    b.Navigation("Bans");

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

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

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

                    b.Navigation("AntiRaidSetting");

                    b.Navigation("AntiSpamSetting");

                    b.Navigation("CommandAliases");

                    b.Navigation("CommandCooldowns");

                    b.Navigation("DelMsgOnCmdChannels");

                    b.Navigation("FeedSubs");

                    b.Navigation("FilterInvitesChannelIds");

                    b.Navigation("FilterLinksChannelIds");

                    b.Navigation("FilterWordsChannelIds");

                    b.Navigation("FilteredWords");

                    b.Navigation("FollowedStreams");

                    b.Navigation("GenerateCurrencyChannelIds");

                    b.Navigation("MutedUsers");

                    b.Navigation("Permissions");

                    b.Navigation("ShopEntries");

                    b.Navigation("SlowmodeIgnoredRoles");

                    b.Navigation("SlowmodeIgnoredUsers");

                    b.Navigation("StreamRole");

                    b.Navigation("UnbanTimer");

                    b.Navigation("UnmuteTimers");

                    b.Navigation("UnroleTimer");

                    b.Navigation("VcRoleInfos");

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

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

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

            modelBuilder.Entity("EllieBot.Db.Models.SarGroup", b =>
                {
                    b.Navigation("Roles");
                });

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

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

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

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

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

                    b.Navigation("ExclusionList");

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