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

#nullable disable

namespace Backend.Migrations
{
    [DbContext(typeof(AwardsDbContext))]
    [Migration("20260629142744_SeedApplicationDefaults")]
    partial class SeedApplicationDefaults
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder
                .HasAnnotation("ProductVersion", "8.0.11")
                .HasAnnotation("Relational:MaxIdentifierLength", 63);

            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);

            modelBuilder.Entity("Backend.Domain.AdminAuditEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("ActionType")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("AdminTwitchUserId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("CreatedFromIp")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("EntityId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("EntityType")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("MetadataJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("Summary")
                        .IsRequired()
                        .HasMaxLength(240)
                        .HasColumnType("character varying(240)");

                    b.Property<string>("UserAgent")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Backend.Domain.AwardResult", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<int>("CandidateId")
                        .HasColumnType("integer");

                    b.Property<int>("CategoryId")
                        .HasColumnType("integer");

                    b.Property<string>("CategoryName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("CandidateId");

                    b.HasIndex("CategoryId");

                    b.HasIndex("SeasonId", "CategoryId")
                        .IsUnique();

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

            modelBuilder.Entity("Backend.Domain.Candidate", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("AcceptanceNote")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<string>("AcceptanceStatus")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasMaxLength(30)
                        .HasColumnType("character varying(30)")
                        .HasDefaultValue("open");

                    b.Property<int>("CategoryId")
                        .HasColumnType("integer");

                    b.Property<string>("ChannelSlug")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("ClipCompilationPlatform")
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<string>("ClipCompilationTitle")
                        .HasMaxLength(200)
                        .HasColumnType("character varying(200)");

                    b.Property<string>("ClipCompilationUrl")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<string>("ClipEmbedStatus")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasMaxLength(30)
                        .HasColumnType("character varying(30)")
                        .HasDefaultValue("unchecked");

                    b.Property<string>("DisplayName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("NominationTally")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasDefaultValue(0);

                    b.Property<string>("Platform")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<int?>("StreamerIdentityId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("CategoryId");

                    b.HasIndex("SeasonId");

                    b.HasIndex("StreamerIdentityId");

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

            modelBuilder.Entity("Backend.Domain.Category", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("GroupName")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<int>("MaxNomineesPerUser")
                        .HasColumnType("integer");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<string>("Slug")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("SortOrder")
                        .HasColumnType("integer");

                    b.Property<int?>("ViewerRangeMax")
                        .HasColumnType("integer");

                    b.Property<int?>("ViewerRangeMin")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("SeasonId", "Slug")
                        .IsUnique();

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

            modelBuilder.Entity("Backend.Domain.ClipSubmission", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<int?>("CandidateId")
                        .HasColumnType("integer");

                    b.Property<int?>("CategoryId")
                        .HasColumnType("integer");

                    b.Property<string>("ClipUrl")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("CreatedFromIp")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("Creator")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("Platform")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<string>("ReviewNote")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<DateTimeOffset?>("ReviewedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("ReviewedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)");

                    b.Property<string>("SubmittedByTwitchId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("Title")
                        .IsRequired()
                        .HasMaxLength(200)
                        .HasColumnType("character varying(200)");

                    b.HasKey("Id");

                    b.HasIndex("CandidateId");

                    b.HasIndex("SeasonId", "Status");

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

            modelBuilder.Entity("Backend.Domain.Nomination", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<int?>("AvgViewers")
                        .HasColumnType("integer");

                    b.Property<int?>("CandidateId")
                        .HasColumnType("integer");

                    b.Property<string>("CandidateText")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("CategoryGroupName")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)")
                        .HasDefaultValue("");

                    b.Property<int?>("CategoryId")
                        .HasColumnType("integer");

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<int?>("FollowersGained")
                        .HasColumnType("integer");

                    b.Property<int?>("HoursStreamed")
                        .HasColumnType("integer");

                    b.Property<int?>("HoursWatched")
                        .HasColumnType("integer");

                    b.Property<int?>("PeakViewers")
                        .HasColumnType("integer");

                    b.Property<string>("ResolvedChannel")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("ResolvedPlatform")
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<string>("ReviewNote")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<DateTimeOffset?>("ReviewedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("ReviewedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)");

                    b.Property<string>("StreamUrl")
                        .HasMaxLength(300)
                        .HasColumnType("character varying(300)");

                    b.Property<int?>("StreamerIdentityId")
                        .HasColumnType("integer");

                    b.Property<string>("SubmittedByTwitchId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int?>("SuggestedCategoryId")
                        .HasColumnType("integer");

                    b.Property<DateTimeOffset?>("TrackerCheckedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("TrackerStatus")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)")
                        .HasDefaultValue("pending");

                    b.Property<string>("TrackingFlagsJson")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("[]");

                    b.Property<string>("TrackingReviewNote")
                        .HasMaxLength(1000)
                        .HasColumnType("character varying(1000)");

                    b.Property<string>("TrackingReviewStatus")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasMaxLength(30)
                        .HasColumnType("character varying(30)")
                        .HasDefaultValue("clear");

                    b.Property<DateTimeOffset?>("TrackingReviewedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("TrackingReviewedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.HasKey("Id");

                    b.HasIndex("CandidateId");

                    b.HasIndex("CategoryId");

                    b.HasIndex("StreamerIdentityId");

                    b.HasIndex("SuggestedCategoryId");

                    b.HasIndex("SeasonId", "Status");

                    b.HasIndex("SeasonId", "CategoryGroupName", "Status");

                    b.HasIndex("SeasonId", "StreamerIdentityId", "CategoryGroupName");

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

            modelBuilder.Entity("Backend.Domain.RiskFlag", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("CreatedFromIp")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("MetadataJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("ReviewNote")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<DateTimeOffset?>("ReviewedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("ReviewedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int?>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<string>("Severity")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)");

                    b.Property<string>("Source")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)");

                    b.Property<string>("Summary")
                        .IsRequired()
                        .HasMaxLength(240)
                        .HasColumnType("character varying(240)");

                    b.Property<string>("TwitchUserId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("Type")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("UserAgent")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.HasKey("Id");

                    b.HasIndex("SeasonId");

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

            modelBuilder.Entity("Backend.Domain.Season", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("CurrentPhase")
                        .IsRequired()
                        .HasMaxLength(60)
                        .HasColumnType("character varying(60)");

                    b.Property<bool>("IsCommunityOnly")
                        .HasColumnType("boolean");

                    b.Property<bool>("IsCurrent")
                        .HasColumnType("boolean");

                    b.Property<bool>("IsDemo")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(false);

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(160)
                        .HasColumnType("character varying(160)");

                    b.Property<DateOnly>("NominationEndsAt")
                        .HasColumnType("date");

                    b.Property<DateOnly>("NominationStartsAt")
                        .HasColumnType("date");

                    b.Property<DateOnly>("ReviewEndsAt")
                        .HasColumnType("date");

                    b.Property<DateOnly>("ReviewStartsAt")
                        .HasColumnType("date");

                    b.Property<DateOnly>("ShowDate")
                        .HasColumnType("date");

                    b.Property<TimeOnly>("ShowStartsAt")
                        .HasColumnType("time without time zone");

                    b.Property<string>("SubcategoryTemplatesJson")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("[]");

                    b.Property<DateOnly>("VotingEndsAt")
                        .HasColumnType("date");

                    b.Property<DateOnly>("VotingStartsAt")
                        .HasColumnType("date");

                    b.Property<DateTimeOffset?>("WinnersPublishedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("WinnersPublishedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("WorkflowRulesJson")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("[]");

                    b.Property<int>("Year")
                        .HasColumnType("integer");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("Backend.Domain.ShowactApplication", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("ArtistName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("ContactDiscord")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("ContactEmail")
                        .IsRequired()
                        .HasMaxLength(180)
                        .HasColumnType("character varying(180)");

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("CreatedFromIp")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("character varying(1000)");

                    b.Property<string>("FieldResponsesJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("PerformanceType")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("PlatformUrl")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<string>("ReferenceUrl")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<string>("ReviewNote")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<DateTimeOffset?>("ReviewedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("ReviewedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasMaxLength(20)
                        .HasColumnType("character varying(20)");

                    b.Property<string>("TechnicalNotes")
                        .IsRequired()
                        .HasMaxLength(1000)
                        .HasColumnType("character varying(1000)");

                    b.Property<string>("UserAgent")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.HasKey("Id");

                    b.HasIndex("SeasonId", "Status");

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

            modelBuilder.Entity("Backend.Domain.SiteSettings", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("AwardsSectionDescription")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("AwardsSectionTitle")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<bool>("ClipAdminMenuVisible")
                        .HasColumnType("boolean");

                    b.Property<bool>("ClipReviewEnabled")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(true);

                    b.Property<string>("ClipSubmissionDisabledMessage")
                        .IsRequired()
                        .HasMaxLength(240)
                        .HasColumnType("character varying(240)");

                    b.Property<bool>("ClipSubmissionsEnabled")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(false);

                    b.Property<string>("ContactContent")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("ContactUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("DemoLoginDisplayName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("DemoLoginEmail")
                        .IsRequired()
                        .HasMaxLength(180)
                        .HasColumnType("character varying(180)");

                    b.Property<bool>("DemoLoginEnabled")
                        .HasColumnType("boolean");

                    b.Property<bool>("DemoLoginManagedByDatabase")
                        .HasColumnType("boolean");

                    b.Property<string>("DemoLoginPasswordHash")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("DemoLoginPasswordSalt")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("DemoLoginTwitchUserId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("FaqJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("HostDisplayName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("HostTagline")
                        .IsRequired()
                        .HasMaxLength(160)
                        .HasColumnType("character varying(160)");

                    b.Property<string>("ImprintContent")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("ImprintUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("MaintenanceMessage")
                        .IsRequired()
                        .HasMaxLength(600)
                        .HasColumnType("character varying(600)");

                    b.Property<bool>("MaintenanceModeEnabled")
                        .HasColumnType("boolean");

                    b.Property<string>("MaintenanceTitle")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("NewsletterUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("NominationLinkBlacklistJson")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("[]");

                    b.Property<string>("PrivacyEmail")
                        .IsRequired()
                        .HasMaxLength(160)
                        .HasColumnType("character varying(160)");

                    b.Property<string>("PrivacyPolicyContent")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<DateTimeOffset?>("PrivacyPolicyUpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("PrivacyPolicyUpdatedBy")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("RiskRulesJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<int>("SessionIdleTimeoutHours")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer")
                        .HasDefaultValue(3);

                    b.Property<string>("ShareDiscordUrl")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("ShareXUrl")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("ShowactApplicationDisabledMessage")
                        .IsRequired()
                        .HasMaxLength(240)
                        .HasColumnType("character varying(240)");

                    b.Property<DateOnly?>("ShowactApplicationEndsAt")
                        .HasColumnType("date");

                    b.Property<DateOnly?>("ShowactApplicationStartsAt")
                        .HasColumnType("date");

                    b.Property<bool>("ShowactApplicationsEnabled")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(false);

                    b.Property<string>("ShowactFormSchemaJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("ShowactsContent")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("");

                    b.Property<string>("ShowactsUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("SocialLinksJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("SponsorsContent")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("SponsorsUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<bool>("SponsorsVisible")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("boolean")
                        .HasDefaultValue(true);

                    b.Property<string>("StreamBannerCompletedButtonLabel")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("StreamBannerCompletedButtonUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("StreamBannerCompletedEyebrow")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("StreamBannerCompletedText")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("StreamBannerCompletedTitle")
                        .IsRequired()
                        .HasMaxLength(160)
                        .HasColumnType("character varying(160)");

                    b.Property<string>("StreamBannerEyebrow")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("StreamBannerLiveButtonLabel")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("StreamBannerLiveButtonUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("StreamBannerLockedButtonLabel")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("StreamBannerText")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("StreamBannerTitle")
                        .IsRequired()
                        .HasMaxLength(160)
                        .HasColumnType("character varying(160)");

                    b.Property<bool>("StreamBannerUseCompletedContent")
                        .HasColumnType("boolean");

                    b.Property<string>("SubcategoriesSectionDescription")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("SubcategoriesSectionTitle")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("TrackingReviewNotes")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("TrackingRulesJson")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("[]");

                    b.Property<bool>("TwitchAuthManagedByDatabase")
                        .HasColumnType("boolean");

                    b.Property<string>("TwitchClientId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("TwitchClientSecret")
                        .IsRequired()
                        .HasMaxLength(180)
                        .HasColumnType("character varying(180)");

                    b.Property<string>("TwitchRedirectUri")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("TwitchScope")
                        .IsRequired()
                        .HasMaxLength(300)
                        .HasColumnType("character varying(300)");

                    b.Property<string>("ViewerStatsProviderBaseUrl")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.Property<string>("WorkflowRulesJson")
                        .IsRequired()
                        .ValueGeneratedOnAdd()
                        .HasColumnType("text")
                        .HasDefaultValue("[]");

                    b.HasKey("Id");

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

            modelBuilder.Entity("Backend.Domain.Sponsor", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Description")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<bool>("IsVisible")
                        .HasColumnType("boolean");

                    b.Property<string>("LogoUrl")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.Property<string>("Name")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<int>("SortOrder")
                        .HasColumnType("integer");

                    b.Property<string>("Tier")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<DateTimeOffset?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("WebsiteUrl")
                        .IsRequired()
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.HasKey("Id");

                    b.HasIndex("SeasonId", "IsVisible", "SortOrder");

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

            modelBuilder.Entity("Backend.Domain.StreamerIdentity", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("DisplayName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<DateTimeOffset?>("LastResolvedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Login")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("NormalizedKey")
                        .IsRequired()
                        .HasMaxLength(180)
                        .HasColumnType("character varying(180)");

                    b.Property<string>("Platform")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<string>("ProfileUrl")
                        .HasMaxLength(500)
                        .HasColumnType("character varying(500)");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("Backend.Domain.TeamMember", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("BoundTwitchDisplayName")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("BoundTwitchUserId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("CreatedByTwitchId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("DisplayName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<bool>("IsActive")
                        .HasColumnType("boolean");

                    b.Property<DateTimeOffset?>("LastLoginAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Login")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<bool>("MustChangePassword")
                        .HasColumnType("boolean");

                    b.Property<string>("PasswordHash")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<DateTimeOffset?>("PasswordResetAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("PasswordSalt")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("Role")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<DateTimeOffset?>("TwitchBoundAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<DateTimeOffset?>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("UpdatedByTwitchId")
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.HasKey("Id");

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

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

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

            modelBuilder.Entity("Backend.Domain.TeamRolePermission", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<string>("PermissionsJson")
                        .IsRequired()
                        .HasColumnType("text");

                    b.Property<string>("Role")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<DateTimeOffset>("UpdatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("UpdatedByTwitchId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("Backend.Domain.UserSession", b =>
                {
                    b.Property<Guid>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("uuid");

                    b.Property<DateTimeOffset>("CreatedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("CreatedFromIp")
                        .IsRequired()
                        .HasMaxLength(80)
                        .HasColumnType("character varying(80)");

                    b.Property<string>("DisplayName")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<bool>("IsActive")
                        .HasColumnType("boolean");

                    b.Property<DateTimeOffset>("LastSeenAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("Role")
                        .IsRequired()
                        .HasMaxLength(40)
                        .HasColumnType("character varying(40)");

                    b.Property<string>("SessionToken")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("TwitchUserId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.Property<string>("UserAgent")
                        .IsRequired()
                        .HasMaxLength(400)
                        .HasColumnType("character varying(400)");

                    b.HasKey("Id");

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

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

            modelBuilder.Entity("Backend.Domain.VoteBallot", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<int>("SeasonId")
                        .HasColumnType("integer");

                    b.Property<string>("Status")
                        .IsRequired()
                        .HasMaxLength(30)
                        .HasColumnType("character varying(30)");

                    b.Property<DateTimeOffset>("SubmittedAt")
                        .HasColumnType("timestamp with time zone");

                    b.Property<string>("SubmittedByTwitchId")
                        .IsRequired()
                        .HasMaxLength(120)
                        .HasColumnType("character varying(120)");

                    b.HasKey("Id");

                    b.HasIndex("SeasonId", "SubmittedByTwitchId")
                        .IsUnique();

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

            modelBuilder.Entity("Backend.Domain.VoteEntry", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("integer");

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

                    b.Property<int>("BallotId")
                        .HasColumnType("integer");

                    b.Property<int>("CandidateId")
                        .HasColumnType("integer");

                    b.Property<int>("CategoryId")
                        .HasColumnType("integer");

                    b.HasKey("Id");

                    b.HasIndex("BallotId");

                    b.HasIndex("CandidateId");

                    b.HasIndex("CategoryId");

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

            modelBuilder.Entity("Backend.Domain.AwardResult", b =>
                {
                    b.HasOne("Backend.Domain.Candidate", "Candidate")
                        .WithMany()
                        .HasForeignKey("CandidateId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.Category", "Category")
                        .WithMany()
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany("Results")
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Candidate");

                    b.Navigation("Category");

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

            modelBuilder.Entity("Backend.Domain.Candidate", b =>
                {
                    b.HasOne("Backend.Domain.Category", "Category")
                        .WithMany("Candidates")
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany()
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.StreamerIdentity", "StreamerIdentity")
                        .WithMany("Candidates")
                        .HasForeignKey("StreamerIdentityId");

                    b.Navigation("Category");

                    b.Navigation("Season");

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

            modelBuilder.Entity("Backend.Domain.Category", b =>
                {
                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany("Categories")
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("Backend.Domain.ClipSubmission", b =>
                {
                    b.HasOne("Backend.Domain.Candidate", "Candidate")
                        .WithMany()
                        .HasForeignKey("CandidateId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Backend.Domain.Season", null)
                        .WithMany()
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("Backend.Domain.Nomination", b =>
                {
                    b.HasOne("Backend.Domain.Candidate", "Candidate")
                        .WithMany()
                        .HasForeignKey("CandidateId");

                    b.HasOne("Backend.Domain.Category", "Category")
                        .WithMany()
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany()
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.StreamerIdentity", "StreamerIdentity")
                        .WithMany("Nominations")
                        .HasForeignKey("StreamerIdentityId");

                    b.HasOne("Backend.Domain.Category", "SuggestedCategory")
                        .WithMany()
                        .HasForeignKey("SuggestedCategoryId")
                        .OnDelete(DeleteBehavior.SetNull);

                    b.Navigation("Candidate");

                    b.Navigation("Category");

                    b.Navigation("Season");

                    b.Navigation("StreamerIdentity");

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

            modelBuilder.Entity("Backend.Domain.RiskFlag", b =>
                {
                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany()
                        .HasForeignKey("SeasonId");

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

            modelBuilder.Entity("Backend.Domain.ShowactApplication", b =>
                {
                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany()
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("Backend.Domain.Sponsor", b =>
                {
                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany()
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("Backend.Domain.VoteBallot", b =>
                {
                    b.HasOne("Backend.Domain.Season", "Season")
                        .WithMany()
                        .HasForeignKey("SeasonId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

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

            modelBuilder.Entity("Backend.Domain.VoteEntry", b =>
                {
                    b.HasOne("Backend.Domain.VoteBallot", "Ballot")
                        .WithMany("Entries")
                        .HasForeignKey("BallotId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.Candidate", "Candidate")
                        .WithMany()
                        .HasForeignKey("CandidateId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Backend.Domain.Category", "Category")
                        .WithMany()
                        .HasForeignKey("CategoryId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("Ballot");

                    b.Navigation("Candidate");

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

            modelBuilder.Entity("Backend.Domain.Category", b =>
                {
                    b.Navigation("Candidates");
                });

            modelBuilder.Entity("Backend.Domain.Season", b =>
                {
                    b.Navigation("Categories");

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

            modelBuilder.Entity("Backend.Domain.StreamerIdentity", b =>
                {
                    b.Navigation("Candidates");

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

            modelBuilder.Entity("Backend.Domain.VoteBallot", b =>
                {
                    b.Navigation("Entries");
                });
#pragma warning restore 612, 618
        }
    }
}
