// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; using iknow_api.Data; #nullable disable namespace iknow_api.Migrations { [DbContext(typeof(AppDbContext))] partial class AppDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "9.0.10") .HasAnnotation("Relational:MaxIdentifierLength", 63); NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); modelBuilder.Entity("iknow_api.Models.ContactInfo", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Address") .HasColumnType("text"); b.Property("City") .HasColumnType("text"); b.Property("MicrosoftEmail") .HasColumnType("text"); b.Property("Municipality") .HasColumnType("text"); b.Property("PhoneNumber") .HasColumnType("text"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("ContactInfo"); }); modelBuilder.Entity("iknow_api.Models.DependencySubject", b => { b.Property("SubjectId") .HasColumnType("integer"); b.Property("DependencyId") .HasColumnType("integer"); b.HasKey("SubjectId", "DependencyId"); b.HasIndex("DependencyId"); b.ToTable("DependencySubjects"); }); modelBuilder.Entity("iknow_api.Models.Documents", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Body") .HasColumnType("text"); b.Property("Cost") .HasColumnType("integer"); b.Property("Name") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Documents"); }); modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("MajorId") .HasColumnType("integer"); b.Property("QuotaType") .HasColumnType("integer"); b.Property("Type") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("integer"); b.Property("Year") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("MajorId"); b.HasIndex("UserId"); b.ToTable("EnrolledSemesters"); }); modelBuilder.Entity("iknow_api.Models.EnrollmentInfo", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("MajorId") .HasColumnType("integer"); b.Property("StudyStatus") .HasColumnType("text"); b.Property("StudyType") .HasColumnType("text"); b.Property("UserId") .HasColumnType("integer"); b.Property("enrollmentYear") .HasColumnType("integer"); b.Property("quota") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("MajorId"); b.HasIndex("UserId") .IsUnique(); b.ToTable("EnrollmentInfo"); }); modelBuilder.Entity("iknow_api.Models.HighSchool", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("GPA") .HasColumnType("real"); b.Property("HighSchoolType") .HasColumnType("integer"); b.Property("StudyLanguage") .HasColumnType("text"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId") .IsUnique(); b.ToTable("HighSchool"); }); modelBuilder.Entity("iknow_api.Models.Major", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Name") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Majors"); b.HasData( new { Id = 1, Name = "PIT" }, new { Id = 2, Name = "SIIS" }, new { Id = 3, Name = "SEIS" }, new { Id = 4, Name = "KN" }); }); modelBuilder.Entity("iknow_api.Models.MajorSubjects", b => { b.Property("MajorId") .HasColumnType("integer"); b.Property("SubjectId") .HasColumnType("integer"); b.Property("Accreditation") .HasColumnType("integer"); b.Property("MandatorySemester") .HasColumnType("integer"); b.HasKey("MajorId", "SubjectId"); b.HasIndex("SubjectId"); b.ToTable("MajorSubjects"); }); modelBuilder.Entity("iknow_api.Models.PassedSubject", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("DatePassed") .HasColumnType("timestamp with time zone"); b.Property("Grade") .HasColumnType("integer"); b.Property("SemesterSubjectId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("SemesterSubjectId") .IsUnique(); b.ToTable("PassedSubjects"); }); modelBuilder.Entity("iknow_api.Models.Payment", b => { b.Property("UserId") .HasColumnType("integer"); b.Property("EnrollmentInfoId") .HasColumnType("integer"); b.Property("Id") .HasColumnType("integer"); b.HasKey("UserId", "EnrollmentInfoId"); b.HasIndex("EnrollmentInfoId"); b.ToTable("Payment"); }); modelBuilder.Entity("iknow_api.Models.RefreshToken", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("ExpiresAt") .HasColumnType("timestamp with time zone"); b.Property("IsValid") .HasColumnType("boolean"); b.Property("Token") .HasColumnType("text"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("RefreshToken"); }); modelBuilder.Entity("iknow_api.Models.SemesterSubject", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("EnrolledSemesterId") .HasColumnType("integer"); b.Property("ProfessorId") .HasColumnType("integer"); b.Property("SubjectId") .HasColumnType("integer"); b.Property("UserId") .HasColumnType("integer"); b.HasKey("Id"); b.HasIndex("EnrolledSemesterId"); b.HasIndex("ProfessorId"); b.HasIndex("SubjectId"); b.HasIndex("UserId"); b.ToTable("SemesterSubject"); }); modelBuilder.Entity("iknow_api.Models.Subject", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("AwardedCredits") .HasColumnType("integer"); b.Property("Code") .HasColumnType("text"); b.Property("DependencyCredit") .HasColumnType("integer"); b.Property("Name") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("Subjects"); }); modelBuilder.Entity("iknow_api.Models.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("integer"); NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property("Id")); b.Property("Bday") .HasColumnType("timestamp with time zone"); b.Property("Citizenship") .HasColumnType("text"); b.Property("CreatedAt") .HasColumnType("timestamp with time zone"); b.Property("EMBG") .HasColumnType("text"); b.Property("Email") .HasColumnType("text"); b.Property("Gender") .HasColumnType("text"); b.Property("Index") .HasColumnType("text"); b.Property("MiddleName") .HasColumnType("text"); b.Property("Name") .HasColumnType("text"); b.Property("Nationality") .HasColumnType("text"); b.Property("PasswordHash") .HasColumnType("text"); b.Property("Role") .HasColumnType("integer"); b.Property("Surname") .HasColumnType("text"); b.HasKey("Id"); b.ToTable("User"); }); modelBuilder.Entity("iknow_api.Models.UserDocuments", b => { b.Property("UserId") .HasColumnType("integer"); b.Property("DocumentId") .HasColumnType("integer"); b.HasKey("UserId", "DocumentId"); b.HasIndex("DocumentId"); b.ToTable("UserDocuments"); }); modelBuilder.Entity("iknow_api.Models.ContactInfo", b => { b.HasOne("iknow_api.Models.User", "User") .WithOne("ContactInfo") .HasForeignKey("iknow_api.Models.ContactInfo", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.DependencySubject", b => { b.HasOne("iknow_api.Models.Subject", "Dependency") .WithMany("Dependents") .HasForeignKey("DependencyId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("iknow_api.Models.Subject", "Subject") .WithMany("Dependencies") .HasForeignKey("SubjectId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Dependency"); b.Navigation("Subject"); }); modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b => { b.HasOne("iknow_api.Models.Major", "Major") .WithMany() .HasForeignKey("MajorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("iknow_api.Models.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Major"); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.EnrollmentInfo", b => { b.HasOne("iknow_api.Models.Major", "Major") .WithMany() .HasForeignKey("MajorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("iknow_api.Models.User", "User") .WithOne("EnrollmentInfo") .HasForeignKey("iknow_api.Models.EnrollmentInfo", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Major"); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.HighSchool", b => { b.HasOne("iknow_api.Models.User", "User") .WithOne("HighSchool") .HasForeignKey("iknow_api.Models.HighSchool", "UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.MajorSubjects", b => { b.HasOne("iknow_api.Models.Major", "Majors") .WithMany("Subjects") .HasForeignKey("MajorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("iknow_api.Models.Subject", "Subjects") .WithMany("Majors") .HasForeignKey("SubjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Majors"); b.Navigation("Subjects"); }); modelBuilder.Entity("iknow_api.Models.PassedSubject", b => { b.HasOne("iknow_api.Models.SemesterSubject", "SemesterSubject") .WithOne("PassedSubject") .HasForeignKey("iknow_api.Models.PassedSubject", "SemesterSubjectId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("SemesterSubject"); }); modelBuilder.Entity("iknow_api.Models.Payment", b => { b.HasOne("iknow_api.Models.EnrolledSemesters", "EnrolledSemesters") .WithMany("Users") .HasForeignKey("EnrollmentInfoId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("iknow_api.Models.User", "User") .WithMany("EnrolledSemesters") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("EnrolledSemesters"); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.RefreshToken", b => { b.HasOne("iknow_api.Models.User", "User") .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.SemesterSubject", b => { b.HasOne("iknow_api.Models.EnrolledSemesters", "EnrolledSemester") .WithMany("SemesterSubjects") .HasForeignKey("EnrolledSemesterId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("iknow_api.Models.User", "Professor") .WithMany("TeachingSubjects") .HasForeignKey("ProfessorId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("iknow_api.Models.Subject", "Subject") .WithMany("SemesterSubjects") .HasForeignKey("SubjectId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("iknow_api.Models.User", "User") .WithMany("EnrolledSemesterUserSubjects") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("EnrolledSemester"); b.Navigation("Professor"); b.Navigation("Subject"); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.UserDocuments", b => { b.HasOne("iknow_api.Models.Documents", "Documents") .WithMany("User") .HasForeignKey("DocumentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("iknow_api.Models.User", "User") .WithMany("Documents") .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Documents"); b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.Documents", b => { b.Navigation("User"); }); modelBuilder.Entity("iknow_api.Models.EnrolledSemesters", b => { b.Navigation("SemesterSubjects"); b.Navigation("Users"); }); modelBuilder.Entity("iknow_api.Models.Major", b => { b.Navigation("Subjects"); }); modelBuilder.Entity("iknow_api.Models.SemesterSubject", b => { b.Navigation("PassedSubject"); }); modelBuilder.Entity("iknow_api.Models.Subject", b => { b.Navigation("Dependencies"); b.Navigation("Dependents"); b.Navigation("Majors"); b.Navigation("SemesterSubjects"); }); modelBuilder.Entity("iknow_api.Models.User", b => { b.Navigation("ContactInfo"); b.Navigation("Documents"); b.Navigation("EnrolledSemesterUserSubjects"); b.Navigation("EnrolledSemesters"); b.Navigation("EnrollmentInfo"); b.Navigation("HighSchool"); b.Navigation("TeachingSubjects"); }); #pragma warning restore 612, 618 } } }