// using System; using Backend.Data; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; #nullable disable namespace Backend.Migrations { [DbContext(typeof(AwardsDbContext))] partial class AwardsDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "8.0.11") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("Backend.Domain.AwardResult", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CandidateId") .HasColumnType("integer"); b.Property("CategoryName") .IsRequired() .HasMaxLength(120) .HasColumnType("character varying(120)"); b.Property("SeasonId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("CandidateId"); b.HasIndex("SeasonId"); b.ToTable("Results"); b.HasData( new { Id = 1, CandidateId = 8, CategoryName = "VTuber des Jahres", SeasonId = 2 }, new { Id = 2, CandidateId = 9, CategoryName = "Bestes Live Event", SeasonId = 2 }, new { Id = 3, CandidateId = 10, CategoryName = "Clip des Jahres", SeasonId = 2 }, new { Id = 4, CandidateId = 11, CategoryName = "VTuber des Jahres", SeasonId = 3 }, new { Id = 5, CandidateId = 12, CategoryName = "Clip des Jahres", SeasonId = 3 }, new { Id = 6, CandidateId = 13, CategoryName = "VTuber des Jahres", SeasonId = 4 }); }); modelBuilder.Entity("Backend.Domain.Candidate", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CategoryId") .HasColumnType("integer"); b.Property("ChannelSlug") .IsRequired() .HasMaxLength(120) .HasColumnType("character varying(120)"); b.Property("DisplayName") .IsRequired() .HasMaxLength(120) .HasColumnType("character varying(120)"); b.Property("Platform") .IsRequired() .HasMaxLength(40) .HasColumnType("character varying(40)"); b.Property("SeasonId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("CategoryId"); b.HasIndex("SeasonId"); b.ToTable("Candidates"); b.HasData( new { Id = 1, CategoryId = 1, ChannelSlug = "@hoshimimiyu", DisplayName = "Hoshimi Miyu", Platform = "Twitch", SeasonId = 1 }, new { Id = 2, CategoryId = 1, ChannelSlug = "@kurainu", DisplayName = "Kurainu", Platform = "Twitch", SeasonId = 1 }, new { Id = 3, CategoryId = 1, ChannelSlug = "@shiroch", DisplayName = "Shiro Ch.", Platform = "Twitch", SeasonId = 1 }, new { Id = 4, CategoryId = 2, ChannelSlug = "@kurainu", DisplayName = "Kurainu 3D Live", Platform = "Twitch", SeasonId = 1 }, new { Id = 5, CategoryId = 2, ChannelSlug = "@aoisakura", DisplayName = "Aoi Sakura Showcase", Platform = "YouTube", SeasonId = 1 }, new { Id = 6, CategoryId = 3, ChannelSlug = "@pyonkichikingdom", DisplayName = "Pyonkichi Kingdom", Platform = "Twitch", SeasonId = 1 }, new { Id = 7, CategoryId = 4, ChannelSlug = "@moonrelay", DisplayName = "Moonrelay", Platform = "Twitch", SeasonId = 1 }, new { Id = 8, CategoryId = 5, ChannelSlug = "@hoshimimiyu", DisplayName = "Hoshimi Miyu", Platform = "Twitch", SeasonId = 2 }, new { Id = 9, CategoryId = 6, ChannelSlug = "@kurainu", DisplayName = "Kurainu 3D Live", Platform = "Twitch", SeasonId = 2 }, new { Id = 10, CategoryId = 7, ChannelSlug = "@pyonkichikingdom", DisplayName = "Pyonkichi Kingdom", Platform = "Twitch", SeasonId = 2 }, new { Id = 11, CategoryId = 8, ChannelSlug = "@aoisakura", DisplayName = "Aoi Sakura", Platform = "YouTube", SeasonId = 3 }, new { Id = 12, CategoryId = 9, ChannelSlug = "@starbyte", DisplayName = "Starbyte", Platform = "Twitch", SeasonId = 3 }, new { Id = 13, CategoryId = 10, ChannelSlug = "@tenshivox", DisplayName = "Tenshi Vox", Platform = "Twitch", SeasonId = 4 }); }); modelBuilder.Entity("Backend.Domain.Category", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Description") .IsRequired() .HasMaxLength(400) .HasColumnType("character varying(400)"); b.Property("GroupName") .IsRequired() .HasMaxLength(80) .HasColumnType("character varying(80)"); b.Property("MaxNomineesPerUser") .HasColumnType("integer"); b.Property("Name") .IsRequired() .HasMaxLength(120) .HasColumnType("character varying(120)"); b.Property("SeasonId") .HasColumnType("integer"); b.Property("Slug") .IsRequired() .HasColumnType("text"); b.Property("SortOrder") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("SeasonId", "Slug") .IsUnique(); b.ToTable("Categories"); b.HasData( new { Id = 1, Description = "Die groesste Auszeichnung des Jahres.", GroupName = "Main Awards", MaxNomineesPerUser = 3, Name = "VTuber des Jahres", SeasonId = 1, Slug = "vtuber-des-jahres", SortOrder = 1 }, new { Id = 2, Description = "Events, Konzerte und 3D-Shows.", GroupName = "Performance", MaxNomineesPerUser = 3, Name = "Bestes Live Event", SeasonId = 1, Slug = "bestes-live-event", SortOrder = 2 }, new { Id = 3, Description = "Der lustigste oder emotionalste Clip des Jahres.", GroupName = "Clips & Highlights", MaxNomineesPerUser = 3, Name = "Clip des Jahres", SeasonId = 1, Slug = "clip-des-jahres", SortOrder = 3 }, new { Id = 4, Description = "Die aktivste und freundlichste Community.", GroupName = "Main Awards", MaxNomineesPerUser = 3, Name = "Beste Community", SeasonId = 1, Slug = "beste-community", SortOrder = 4 }, new { Id = 5, Description = "Archivkategorie 2025.", GroupName = "Main Awards", MaxNomineesPerUser = 3, Name = "VTuber des Jahres", SeasonId = 2, Slug = "vtuber-des-jahres", SortOrder = 1 }, new { Id = 6, Description = "Archivkategorie 2025.", GroupName = "Performance", MaxNomineesPerUser = 3, Name = "Bestes Live Event", SeasonId = 2, Slug = "bestes-live-event", SortOrder = 2 }, new { Id = 7, Description = "Archivkategorie 2025.", GroupName = "Clips & Highlights", MaxNomineesPerUser = 3, Name = "Clip des Jahres", SeasonId = 2, Slug = "clip-des-jahres", SortOrder = 3 }, new { Id = 8, Description = "Archivkategorie 2024.", GroupName = "Main Awards", MaxNomineesPerUser = 3, Name = "VTuber des Jahres", SeasonId = 3, Slug = "vtuber-des-jahres", SortOrder = 1 }, new { Id = 9, Description = "Archivkategorie 2024.", GroupName = "Clips & Highlights", MaxNomineesPerUser = 3, Name = "Clip des Jahres", SeasonId = 3, Slug = "clip-des-jahres", SortOrder = 2 }, new { Id = 10, Description = "Archivkategorie 2023.", GroupName = "Main Awards", MaxNomineesPerUser = 3, Name = "VTuber des Jahres", SeasonId = 4, Slug = "vtuber-des-jahres", SortOrder = 1 }); }); modelBuilder.Entity("Backend.Domain.Nomination", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CandidateId") .HasColumnType("integer"); b.Property("CandidateText") .HasMaxLength(120) .HasColumnType("character varying(120)"); b.Property("CategoryId") .HasColumnType("integer"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("SeasonId") .HasColumnType("integer"); b.Property("SubmittedByTwitchId") .IsRequired() .HasMaxLength(120) .HasColumnType("character varying(120)"); b.HasKey("Id"); b.HasIndex("CandidateId"); b.HasIndex("CategoryId"); b.HasIndex("SeasonId"); b.ToTable("Nominations"); b.HasData( new { Id = 1, CandidateText = "Hoshimi Miyu", CategoryId = 1, CreatedAt = new DateTimeOffset(new DateTime(2026, 6, 10, 13, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), SeasonId = 1, SubmittedByTwitchId = "twitch_hoshi" }, new { Id = 2, CandidateText = "Kurainu 3D Live", CategoryId = 2, CreatedAt = new DateTimeOffset(new DateTime(2026, 6, 10, 14, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), SeasonId = 1, SubmittedByTwitchId = "twitch_kurainu" }); }); modelBuilder.Entity("Backend.Domain.Season", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("CurrentPhase") .IsRequired() .HasMaxLength(60) .HasColumnType("character varying(60)"); b.Property("IsCommunityOnly") .HasColumnType("boolean"); b.Property("IsCurrent") .HasColumnType("boolean"); b.Property("Name") .IsRequired() .HasMaxLength(160) .HasColumnType("character varying(160)"); b.Property("NominationEndsAt") .HasColumnType("date"); b.Property("NominationStartsAt") .HasColumnType("date"); b.Property("ReviewEndsAt") .HasColumnType("date"); b.Property("ReviewStartsAt") .HasColumnType("date"); b.Property("ShowDate") .HasColumnType("date"); b.Property("VotingEndsAt") .HasColumnType("date"); b.Property("VotingStartsAt") .HasColumnType("date"); b.Property("Year") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("Year") .IsUnique(); b.ToTable("Seasons"); b.HasData( new { Id = 1, CurrentPhase = "Community Voting", IsCommunityOnly = true, IsCurrent = true, Name = "VTuber Star Awards 2026", NominationEndsAt = new DateOnly(2026, 5, 31), NominationStartsAt = new DateOnly(2026, 5, 1), ReviewEndsAt = new DateOnly(2026, 7, 10), ReviewStartsAt = new DateOnly(2026, 7, 1), ShowDate = new DateOnly(2026, 7, 20), VotingEndsAt = new DateOnly(2026, 6, 30), VotingStartsAt = new DateOnly(2026, 6, 1), Year = 2026 }, new { Id = 2, CurrentPhase = "Archived", IsCommunityOnly = true, IsCurrent = false, Name = "VTuber Star Awards 2025", NominationEndsAt = new DateOnly(2025, 5, 31), NominationStartsAt = new DateOnly(2025, 5, 1), ReviewEndsAt = new DateOnly(2025, 7, 10), ReviewStartsAt = new DateOnly(2025, 7, 1), ShowDate = new DateOnly(2025, 7, 20), VotingEndsAt = new DateOnly(2025, 6, 30), VotingStartsAt = new DateOnly(2025, 6, 1), Year = 2025 }, new { Id = 3, CurrentPhase = "Archived", IsCommunityOnly = true, IsCurrent = false, Name = "VTuber Star Awards 2024", NominationEndsAt = new DateOnly(2024, 5, 31), NominationStartsAt = new DateOnly(2024, 5, 1), ReviewEndsAt = new DateOnly(2024, 7, 10), ReviewStartsAt = new DateOnly(2024, 7, 1), ShowDate = new DateOnly(2024, 7, 20), VotingEndsAt = new DateOnly(2024, 6, 30), VotingStartsAt = new DateOnly(2024, 6, 1), Year = 2024 }, new { Id = 4, CurrentPhase = "Archived", IsCommunityOnly = true, IsCurrent = false, Name = "VTuber Star Awards 2023", NominationEndsAt = new DateOnly(2023, 5, 31), NominationStartsAt = new DateOnly(2023, 5, 1), ReviewEndsAt = new DateOnly(2023, 7, 10), ReviewStartsAt = new DateOnly(2023, 7, 1), ShowDate = new DateOnly(2023, 7, 20), VotingEndsAt = new DateOnly(2023, 6, 30), VotingStartsAt = new DateOnly(2023, 6, 1), Year = 2023 }); }); modelBuilder.Entity("Backend.Domain.VoteBallot", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("SeasonId") .HasColumnType("integer"); b.Property("Status") .IsRequired() .HasMaxLength(30) .HasColumnType("character varying(30)"); b.Property("SubmittedAt") .HasColumnType("timestamp with time zone"); b.Property("SubmittedByTwitchId") .IsRequired() .HasMaxLength(120) .HasColumnType("character varying(120)"); b.HasKey("Id"); b.HasIndex("SeasonId"); b.ToTable("VoteBallots"); b.HasData( new { Id = 1, SeasonId = 1, Status = "submitted", SubmittedAt = new DateTimeOffset(new DateTime(2026, 6, 11, 12, 0, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), SubmittedByTwitchId = "twitch_vote_1" }, new { Id = 2, SeasonId = 1, Status = "submitted", SubmittedAt = new DateTimeOffset(new DateTime(2026, 6, 11, 12, 5, 0, 0, DateTimeKind.Unspecified), new TimeSpan(0, 0, 0, 0, 0)), SubmittedByTwitchId = "twitch_vote_2" }); }); modelBuilder.Entity("Backend.Domain.VoteEntry", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("BallotId") .HasColumnType("integer"); b.Property("CandidateId") .HasColumnType("integer"); b.Property("CategoryId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("BallotId"); b.HasIndex("CandidateId"); b.HasIndex("CategoryId"); b.ToTable("VoteEntries"); b.HasData( new { Id = 1, BallotId = 1, CandidateId = 1, CategoryId = 1 }, new { Id = 2, BallotId = 1, CandidateId = 4, CategoryId = 2 }, new { Id = 3, BallotId = 2, CandidateId = 2, CategoryId = 1 }, new { Id = 4, BallotId = 2, CandidateId = 6, CategoryId = 3 }); }); modelBuilder.Entity("Backend.Domain.AwardResult", b => { b.HasOne("Backend.Domain.Candidate", "Candidate") .WithMany() .HasForeignKey("CandidateId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Backend.Domain.Season", "Season") .WithMany("Results") .HasForeignKey("SeasonId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Candidate"); 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.Navigation("Category"); b.Navigation("Season"); }); 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.Nomination", b => { b.HasOne("Backend.Domain.Candidate", "Candidate") .WithMany() .HasForeignKey("CandidateId"); b.HasOne("Backend.Domain.Category", "Category") .WithMany() .HasForeignKey("CategoryId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Backend.Domain.Season", "Season") .WithMany() .HasForeignKey("SeasonId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Candidate"); b.Navigation("Category"); 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.VoteBallot", b => { b.Navigation("Entries"); }); #pragma warning restore 612, 618 } } }