// using System; using Adapters.Driven.Persistence.Context; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; #nullable disable namespace Adapters.Driven.Persistence.Migrations { [DbContext(typeof(AppDbContext))] [Migration("20260109055746_AddStudentActivation")] partial class AddStudentActivation { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "10.0.1") .HasAnnotation("Relational:MaxIdentifierLength", 128); SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); modelBuilder.Entity("Domain.Entities.Enrollment", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("EnrolledAt") .HasColumnType("datetime2"); b.Property("StudentId") .HasColumnType("int"); b.Property("SubjectId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("SubjectId"); b.HasIndex("StudentId", "SubjectId") .IsUnique(); b.ToTable("Enrollments", (string)null); }); modelBuilder.Entity("Domain.Entities.Professor", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.ToTable("Professors", (string)null); b.HasData( new { Id = 1, Name = "Dr. García" }, new { Id = 2, Name = "Dra. Martínez" }, new { Id = 3, Name = "Dr. López" }, new { Id = 4, Name = "Dra. Rodríguez" }, new { Id = 5, Name = "Dr. Hernández" }); }); modelBuilder.Entity("Domain.Entities.Student", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("ActivationCodeHash") .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("ActivationExpiresAt") .HasColumnType("datetime2"); b.Property("Email") .IsRequired() .HasMaxLength(150) .HasColumnType("nvarchar(150)"); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.HasKey("Id"); b.HasIndex("Email") .IsUnique(); b.ToTable("Students", (string)null); }); modelBuilder.Entity("Domain.Entities.Subject", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("Credits") .ValueGeneratedOnAdd() .HasColumnType("int") .HasDefaultValue(3); b.Property("Name") .IsRequired() .HasMaxLength(100) .HasColumnType("nvarchar(100)"); b.Property("ProfessorId") .HasColumnType("int"); b.HasKey("Id"); b.HasIndex("ProfessorId"); b.ToTable("Subjects", (string)null); b.HasData( new { Id = 1, Credits = 3, Name = "Matemáticas I", ProfessorId = 1 }, new { Id = 2, Credits = 3, Name = "Matemáticas II", ProfessorId = 1 }, new { Id = 3, Credits = 3, Name = "Física I", ProfessorId = 2 }, new { Id = 4, Credits = 3, Name = "Física II", ProfessorId = 2 }, new { Id = 5, Credits = 3, Name = "Programación I", ProfessorId = 3 }, new { Id = 6, Credits = 3, Name = "Programación II", ProfessorId = 3 }, new { Id = 7, Credits = 3, Name = "Base de Datos I", ProfessorId = 4 }, new { Id = 8, Credits = 3, Name = "Base de Datos II", ProfessorId = 4 }, new { Id = 9, Credits = 3, Name = "Redes I", ProfessorId = 5 }, new { Id = 10, Credits = 3, Name = "Redes II", ProfessorId = 5 }); }); modelBuilder.Entity("Domain.Entities.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); b.Property("CreatedAt") .HasColumnType("datetime2"); b.Property("LastLoginAt") .HasColumnType("datetime2"); b.Property("PasswordHash") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("RecoveryCodeHash") .IsRequired() .HasMaxLength(256) .HasColumnType("nvarchar(256)"); b.Property("Role") .IsRequired() .HasMaxLength(20) .HasColumnType("nvarchar(20)"); b.Property("StudentId") .HasColumnType("int"); b.Property("Username") .IsRequired() .HasMaxLength(50) .HasColumnType("nvarchar(50)"); b.HasKey("Id"); b.HasIndex("StudentId"); b.HasIndex("Username") .IsUnique(); b.ToTable("Users", (string)null); }); modelBuilder.Entity("Domain.Entities.Enrollment", b => { b.HasOne("Domain.Entities.Student", "Student") .WithMany("Enrollments") .HasForeignKey("StudentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Domain.Entities.Subject", "Subject") .WithMany("Enrollments") .HasForeignKey("SubjectId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Student"); b.Navigation("Subject"); }); modelBuilder.Entity("Domain.Entities.Subject", b => { b.HasOne("Domain.Entities.Professor", "Professor") .WithMany("Subjects") .HasForeignKey("ProfessorId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Professor"); }); modelBuilder.Entity("Domain.Entities.User", b => { b.HasOne("Domain.Entities.Student", "Student") .WithMany() .HasForeignKey("StudentId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Student"); }); modelBuilder.Entity("Domain.Entities.Professor", b => { b.Navigation("Subjects"); }); modelBuilder.Entity("Domain.Entities.Student", b => { b.Navigation("Enrollments"); }); modelBuilder.Entity("Domain.Entities.Subject", b => { b.Navigation("Enrollments"); }); #pragma warning restore 612, 618 } } }