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

#nullable disable

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    b.Property<string>("Bucket")
                        .HasColumnType("TEXT")
                        .HasColumnName("bucket");

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

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

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

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

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

                    b.HasIndex("Category", "Bucket", "Key")
                        .IsUnique()
                        .HasDatabaseName("stats_category_bucket_key");

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

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

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

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

                    b.HasIndex("String")
                        .HasDatabaseName("suspicious_string_string");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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