// <auto-generated />
using Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;

#nullable disable

namespace Data.Migrations
{
    [DbContext(typeof(AppDbContext))]
    [Migration("20250827200441_StudentNameSplit")]
    partial class StudentNameSplit
    {
        /// <inheritdoc />
        protected override void BuildTargetModel(ModelBuilder modelBuilder)
        {
#pragma warning disable 612, 618
            modelBuilder.HasAnnotation("ProductVersion", "9.0.8");

            modelBuilder.Entity("Core.Entities.EventDefinition", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

                    b.HasIndex("Name");

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

            modelBuilder.Entity("Core.Entities.Student", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

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

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

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

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

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

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

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

                    b.HasKey("Id");

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

            modelBuilder.Entity("Core.Entities.StudentEventRanking", b =>
                {
                    b.Property<int>("EventDefinitionId")
                        .HasColumnType("INTEGER");

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

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

                    b.HasKey("EventDefinitionId", "StudentId");

                    b.HasIndex("StudentId");

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

            modelBuilder.Entity("Core.Entities.Team", b =>
                {
                    b.Property<int>("Id")
                        .ValueGeneratedOnAdd()
                        .HasColumnType("INTEGER");

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

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

                    b.HasKey("Id");

                    b.HasIndex("CaptainId");

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

            modelBuilder.Entity("StudentTeam", b =>
                {
                    b.Property<int>("StudentsId")
                        .HasColumnType("INTEGER");

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

                    b.HasKey("StudentsId", "TeamsId");

                    b.HasIndex("TeamsId");

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

            modelBuilder.Entity("Core.Entities.StudentEventRanking", b =>
                {
                    b.HasOne("Core.Entities.EventDefinition", "EventDefinition")
                        .WithMany()
                        .HasForeignKey("EventDefinitionId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Core.Entities.Student", "Student")
                        .WithMany("EventRankings")
                        .HasForeignKey("StudentId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.Navigation("EventDefinition");

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

            modelBuilder.Entity("Core.Entities.Team", b =>
                {
                    b.HasOne("Core.Entities.Student", "Captain")
                        .WithMany()
                        .HasForeignKey("CaptainId");

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

            modelBuilder.Entity("StudentTeam", b =>
                {
                    b.HasOne("Core.Entities.Student", null)
                        .WithMany()
                        .HasForeignKey("StudentsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();

                    b.HasOne("Core.Entities.Team", null)
                        .WithMany()
                        .HasForeignKey("TeamsId")
                        .OnDelete(DeleteBehavior.Cascade)
                        .IsRequired();
                });

            modelBuilder.Entity("Core.Entities.Student", b =>
                {
                    b.Navigation("EventRankings");
                });
#pragma warning restore 612, 618
        }
    }
}
