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

namespace CompatBot.Database.Migrations
{
    [DbContext(typeof(BotDb))]
    [Migration("20191129183704_AddForcedNickname")]
    partial class AddForcedNickname
    {
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "3.0.0");

            modelBuilder.Entity("CompatBot.Database.BotState", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Key")
                        .HasColumnName("key")
                        .HasColumnType("TEXT");

                    b.Property<string>("Value")
                        .HasColumnName("value")
                        .HasColumnType("TEXT");

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

                    b.HasIndex("Key")
                        .IsUnique()
                        .HasName("bot_state_key");

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

            modelBuilder.Entity("CompatBot.Database.DisabledCommand", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

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

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

                    b.HasIndex("Command")
                        .IsUnique()
                        .HasName("disabled_command_command");

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

            modelBuilder.Entity("CompatBot.Database.Doggo", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

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

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

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

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

            modelBuilder.Entity("CompatBot.Database.EventSchedule", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<long>("End")
                        .HasColumnName("end")
                        .HasColumnType("INTEGER");

                    b.Property<string>("EventName")
                        .HasColumnName("event_name")
                        .HasColumnType("TEXT");

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

                    b.Property<long>("Start")
                        .HasColumnName("start")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Year")
                        .HasColumnName("year")
                        .HasColumnType("INTEGER");

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

                    b.HasIndex("Year", "EventName")
                        .HasName("event_schedule_year_event_name");

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

            modelBuilder.Entity("CompatBot.Database.Explanation", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<byte[]>("Attachment")
                        .HasColumnName("attachment")
                        .HasColumnType("BLOB")
                        .HasMaxLength(7340032);

                    b.Property<string>("AttachmentFilename")
                        .HasColumnName("attachment_filename")
                        .HasColumnType("TEXT");

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

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

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

                    b.HasIndex("Keyword")
                        .IsUnique()
                        .HasName("explanation_keyword");

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

            modelBuilder.Entity("CompatBot.Database.ForcedNickname", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

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

                    b.Property<string>("Nickname")
                        .IsRequired()
                        .HasColumnName("nickname")
                        .HasColumnType("TEXT");

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

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

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

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

            modelBuilder.Entity("CompatBot.Database.Kot", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

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

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

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

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

            modelBuilder.Entity("CompatBot.Database.Moderator", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("DiscordId")
                        .HasColumnName("discord_id")
                        .HasColumnType("INTEGER");

                    b.Property<bool>("Sudoer")
                        .HasColumnName("sudoer")
                        .HasColumnType("INTEGER");

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

                    b.HasIndex("DiscordId")
                        .IsUnique()
                        .HasName("moderator_discord_id");

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

            modelBuilder.Entity("CompatBot.Database.Piracystring", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<int>("Actions")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("actions")
                        .HasColumnType("INTEGER")
                        .HasDefaultValue(11);

                    b.Property<byte>("Context")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("context")
                        .HasColumnType("INTEGER")
                        .HasDefaultValue((byte)3);

                    b.Property<string>("CustomMessage")
                        .HasColumnName("custom_message")
                        .HasColumnType("TEXT");

                    b.Property<bool>("Disabled")
                        .HasColumnName("disabled")
                        .HasColumnType("INTEGER");

                    b.Property<string>("ExplainTerm")
                        .HasColumnName("explain_term")
                        .HasColumnType("TEXT");

                    b.Property<string>("String")
                        .IsRequired()
                        .HasColumnName("string")
                        .HasColumnType("varchar(255)");

                    b.Property<string>("ValidatingRegex")
                        .HasColumnName("validating_regex")
                        .HasColumnType("TEXT");

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

                    b.HasIndex("String")
                        .HasName("piracystring_string");

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

            modelBuilder.Entity("CompatBot.Database.Stats", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Category")
                        .IsRequired()
                        .HasColumnName("category")
                        .HasColumnType("TEXT");

                    b.Property<long>("ExpirationTimestamp")
                        .HasColumnName("expiration_timestamp")
                        .HasColumnType("INTEGER");

                    b.Property<string>("Key")
                        .IsRequired()
                        .HasColumnName("key")
                        .HasColumnType("TEXT");

                    b.Property<int>("Value")
                        .HasColumnName("value")
                        .HasColumnType("INTEGER");

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

                    b.HasIndex("Category", "Key")
                        .IsUnique()
                        .HasName("stats_category_key");

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

            modelBuilder.Entity("CompatBot.Database.Warning", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

                    b.Property<ulong>("DiscordId")
                        .HasColumnName("discord_id")
                        .HasColumnType("INTEGER");

                    b.Property<string>("FullReason")
                        .IsRequired()
                        .HasColumnName("full_reason")
                        .HasColumnType("TEXT");

                    b.Property<ulong>("IssuerId")
                        .HasColumnName("issuer_id")
                        .HasColumnType("INTEGER");

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

                    b.Property<bool>("Retracted")
                        .HasColumnName("retracted")
                        .HasColumnType("INTEGER");

                    b.Property<ulong?>("RetractedBy")
                        .HasColumnName("retracted_by")
                        .HasColumnType("INTEGER");

                    b.Property<string>("RetractionReason")
                        .HasColumnName("retraction_reason")
                        .HasColumnType("TEXT");

                    b.Property<long?>("RetractionTimestamp")
                        .HasColumnName("retraction_timestamp")
                        .HasColumnType("INTEGER");

                    b.Property<long?>("Timestamp")
                        .HasColumnName("timestamp")
                        .HasColumnType("INTEGER");

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

                    b.HasIndex("DiscordId")
                        .HasName("warning_discord_id");

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

            modelBuilder.Entity("CompatBot.Database.WhitelistedInvite", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnName("id")
                        .HasColumnType("INTEGER");

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

                    b.Property<string>("InviteCode")
                        .HasColumnName("invite_code")
                        .HasColumnType("TEXT");

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

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

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

                    b.ToTable("whitelisted_invites");
                });
#pragma warning restore 612, 618
        }
    }
}
