// using System; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using TechHelper.Context; #nullable disable namespace TechHelper.Server.Migrations { [DbContext(typeof(ApplicationContext))] [Migration("20250901080732_question_qt_update_2")] partial class question_qt_update_2 { /// protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder .HasAnnotation("ProductVersion", "8.0.16") .HasAnnotation("Relational:MaxIdentifierLength", 64); MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); modelBuilder.Entity("Entities.Contracts.Assignment", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("CreatedAt") .HasColumnType("datetime(6)") .HasColumnName("created_at"); b.Property("CreatorId") .HasColumnType("char(36)") .HasColumnName("created_by"); b.Property("Description") .IsRequired() .HasColumnType("longtext") .HasColumnName("description"); b.Property("DueDate") .HasColumnType("datetime(6)") .HasColumnName("due_date"); b.Property("ExamStructId") .HasColumnType("char(36)") .HasColumnName("exam_struct_id"); b.Property("ExamType") .HasColumnType("tinyint unsigned"); b.Property("IsDeleted") .HasColumnType("tinyint(1)") .HasColumnName("deleted"); b.Property("Name") .IsRequired() .HasColumnType("longtext"); b.Property("Score") .HasColumnType("float") .HasColumnName("score"); b.Property("SubjectArea") .HasColumnType("tinyint unsigned") .HasColumnName("subject_area"); b.Property("Title") .IsRequired() .HasMaxLength(255) .HasColumnType("varchar(255)") .HasColumnName("title"); b.Property("TotalQuestions") .HasColumnType("tinyint unsigned") .HasColumnName("total_points"); b.Property("UpdatedAt") .HasColumnType("datetime(6)") .HasColumnName("updated_at"); b.Property("UserId") .HasColumnType("char(36)"); b.HasKey("Id"); b.HasIndex("CreatorId"); b.HasIndex("ExamStructId") .IsUnique(); b.HasIndex("UserId"); b.ToTable("assignments", (string)null); }); modelBuilder.Entity("Entities.Contracts.AssignmentAttachment", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("AssignmentId") .HasColumnType("char(36)") .HasColumnName("assignment_id"); b.Property("FileName") .IsRequired() .HasMaxLength(255) .HasColumnType("varchar(255)") .HasColumnName("file_name"); b.Property("FilePath") .IsRequired() .HasMaxLength(255) .HasColumnType("varchar(255)") .HasColumnName("file_path"); b.Property("IsDeleted") .HasColumnType("tinyint(1)") .HasColumnName("deleted"); b.Property("UploadedAt") .HasColumnType("datetime(6)") .HasColumnName("uploaded_at"); b.HasKey("Id"); b.HasIndex("AssignmentId"); b.ToTable("assignment_attachments"); }); modelBuilder.Entity("Entities.Contracts.AssignmentClass", b => { b.Property("AssignmentId") .HasColumnType("char(36)") .HasColumnName("assignment_id") .HasColumnOrder(0); b.Property("ClassId") .HasColumnType("char(36)") .HasColumnName("class_id") .HasColumnOrder(1); b.Property("AssignedAt") .HasColumnType("datetime(6)") .HasColumnName("assigned_at"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.HasKey("AssignmentId", "ClassId"); b.HasIndex("ClassId"); b.ToTable("assignment_class", (string)null); }); modelBuilder.Entity("Entities.Contracts.AssignmentQuestion", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("AssignmentId") .HasColumnType("char(36)"); b.Property("CreatedAt") .HasColumnType("datetime(6)") .HasColumnName("created_at"); b.Property("Index") .HasColumnType("tinyint unsigned") .HasColumnName("question_number"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.Property("ParentAssignmentQuestionId") .HasColumnType("char(36)") .HasColumnName("parent_question_group_id"); b.Property("QuestionContextId") .HasColumnType("char(36)") .HasColumnName("description"); b.Property("QuestionId") .HasColumnType("char(36)") .HasColumnName("question_id"); b.Property("Score") .HasColumnType("float") .HasColumnName("score"); b.Property("Sequence") .IsRequired() .HasColumnType("longtext") .HasColumnName("sequence"); b.Property("StructType") .HasColumnType("tinyint unsigned") .HasColumnName("group_state"); b.Property("Title") .HasMaxLength(1024) .HasColumnType("varchar(1024)") .HasColumnName("title"); b.Property("Type") .HasColumnType("tinyint unsigned"); b.HasKey("Id"); b.HasIndex("AssignmentId"); b.HasIndex("ParentAssignmentQuestionId"); b.HasIndex("QuestionContextId"); b.HasIndex("QuestionId"); b.ToTable("assignment_questions", (string)null); }); modelBuilder.Entity("Entities.Contracts.Class", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime(6)") .HasColumnName("created_at"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedAt")); b.Property("Description") .HasColumnType("longtext") .HasColumnName("description"); b.Property("Grade") .HasColumnType("tinyint unsigned") .HasColumnName("grade"); b.Property("HeadTeacherId") .HasColumnType("char(36)") .HasColumnName("head_teacher_id"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.Property("Number") .HasColumnType("tinyint unsigned") .HasColumnName("class"); b.Property("UpdatedAt") .ValueGeneratedOnAddOrUpdate() .HasColumnType("datetime(6)") .HasColumnName("updated_at"); MySqlPropertyBuilderExtensions.UseMySqlComputedColumn(b.Property("UpdatedAt")); b.HasKey("Id"); b.HasIndex("HeadTeacherId"); b.ToTable("classes", (string)null); }); modelBuilder.Entity("Entities.Contracts.ClassStudent", b => { b.Property("ClassId") .HasColumnType("char(36)") .HasColumnName("class_id") .HasColumnOrder(0); b.Property("StudentId") .HasColumnType("char(36)") .HasColumnName("student_id") .HasColumnOrder(1); b.Property("EnrollmentDate") .HasColumnType("datetime(6)") .HasColumnName("enrollment_date"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.HasKey("ClassId", "StudentId"); b.HasIndex("StudentId"); b.ToTable("class_student", (string)null); }); modelBuilder.Entity("Entities.Contracts.ClassTeacher", b => { b.Property("ClassId") .HasColumnType("char(36)") .HasColumnName("class_id"); b.Property("TeacherId") .HasColumnType("char(36)") .HasColumnName("teacher_id"); b.Property("SubjectTaught") .HasColumnType("tinyint unsigned") .HasColumnName("subject_taught"); b.HasKey("ClassId", "TeacherId"); b.HasIndex("TeacherId"); b.ToTable("class_teachers", (string)null); }); modelBuilder.Entity("Entities.Contracts.Global", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("Area") .HasColumnType("tinyint unsigned"); b.Property("Info") .IsRequired() .HasColumnType("longtext"); b.HasKey("Id"); b.ToTable("global"); }); modelBuilder.Entity("Entities.Contracts.KeyPoint", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("Key") .IsRequired() .HasMaxLength(255) .HasColumnType("varchar(255)"); b.Property("LessonID") .HasColumnType("char(36)"); b.HasKey("Id"); b.HasIndex("LessonID"); b.ToTable("key_point"); }); modelBuilder.Entity("Entities.Contracts.Lesson", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("Description") .IsRequired() .HasColumnType("longtext"); b.Property("TextbookID") .HasColumnType("char(36)"); b.Property("Title") .IsRequired() .HasMaxLength(255) .HasColumnType("varchar(255)"); b.HasKey("Id"); b.HasIndex("TextbookID"); b.ToTable("lesson"); }); modelBuilder.Entity("Entities.Contracts.LessonQuestion", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("LessonID") .HasColumnType("char(36)"); b.Property("Question") .IsRequired() .HasMaxLength(65535) .HasColumnType("longtext"); b.HasKey("Id"); b.HasIndex("LessonID"); b.ToTable("lesson_question"); }); modelBuilder.Entity("Entities.Contracts.Question", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("Answer") .HasMaxLength(65535) .HasColumnType("longtext") .HasColumnName("correct_answer"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime(6)") .HasColumnName("created_at"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedAt")); b.Property("CreatorId") .HasColumnType("char(36)") .HasColumnName("created_by"); b.Property("DifficultyLevel") .HasMaxLength(10) .HasColumnType("tinyint unsigned") .HasColumnName("difficulty_level"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.Property("KeyPointId") .HasColumnType("char(36)") .HasColumnName("key_point"); b.Property("LessonId") .HasColumnType("char(36)") .HasColumnName("lesson"); b.Property("Options") .HasColumnType("longtext") .HasColumnName("options"); b.Property("QType") .IsRequired() .HasColumnType("longtext"); b.Property("SubjectArea") .HasMaxLength(100) .HasColumnType("tinyint unsigned") .HasColumnName("subject_area"); b.Property("Title") .IsRequired() .HasMaxLength(65535) .HasColumnType("longtext") .HasColumnName("question_text"); b.Property("Type") .HasMaxLength(20) .HasColumnType("tinyint unsigned") .HasColumnName("question_type"); b.Property("UpdatedAt") .IsConcurrencyToken() .ValueGeneratedOnAddOrUpdate() .HasColumnType("datetime(6)") .HasColumnName("updated_at"); b.HasKey("Id"); b.HasIndex("CreatorId"); b.HasIndex("KeyPointId"); b.HasIndex("LessonId"); b.HasIndex("Title") .HasAnnotation("MySql:IndexPrefixLength", new[] { 20 }); b.ToTable("questions", (string)null); }); modelBuilder.Entity("Entities.Contracts.QuestionContext", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("Description") .IsRequired() .HasColumnType("longtext"); b.HasKey("Id"); b.ToTable("QuestionContexts"); }); modelBuilder.Entity("Entities.Contracts.Submission", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("AssignmentId") .HasColumnType("char(36)") .HasColumnName("assignment_id"); b.Property("AttemptNumber") .HasColumnType("tinyint unsigned") .HasColumnName("attempt_number"); b.Property("ErrorQuesNum") .HasColumnType("tinyint unsigned"); b.Property("GradedAt") .HasColumnType("datetime(6)") .HasColumnName("graded_at"); b.Property("GraderId") .HasColumnType("char(36)") .HasColumnName("graded_by"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.Property("OverallFeedback") .HasColumnType("longtext") .HasColumnName("overall_feedback"); b.Property("OverallGrade") .HasPrecision(5, 2) .HasColumnType("float") .HasColumnName("overall_grade"); b.Property("Status") .HasMaxLength(15) .HasColumnType("int") .HasColumnName("status"); b.Property("StudentId") .HasColumnType("char(36)") .HasColumnName("student_id"); b.Property("SubmissionTime") .HasColumnType("datetime(6)") .HasColumnName("submission_time"); b.Property("TotalQuesNum") .HasColumnType("tinyint unsigned"); b.Property("TotalScore") .HasColumnType("tinyint unsigned"); b.HasKey("Id"); b.HasIndex("AssignmentId"); b.HasIndex("GraderId"); b.HasIndex("StudentId"); b.ToTable("submissions", (string)null); }); modelBuilder.Entity("Entities.Contracts.SubmissionDetail", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)") .HasColumnName("id"); b.Property("AssignmentQuestionId") .HasColumnType("char(36)") .HasColumnName("assignment_question_id"); b.Property("CreatedAt") .ValueGeneratedOnAdd() .HasColumnType("datetime(6)") .HasColumnName("created_at"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("CreatedAt")); b.Property("IsCorrect") .HasColumnType("tinyint(1)") .HasColumnName("is_correct"); b.Property("IsDeleted") .ValueGeneratedOnAdd() .HasColumnType("tinyint(1)") .HasDefaultValue(false) .HasColumnName("deleted"); b.Property("PointsAwarded") .HasPrecision(5, 2) .HasColumnType("float") .HasColumnName("points_awarded"); b.Property("Status") .HasColumnType("int") .HasColumnName("status"); b.Property("StudentAnswer") .HasColumnType("longtext") .HasColumnName("student_answer"); b.Property("StudentId") .HasColumnType("char(36)") .HasColumnName("student_id"); b.Property("SubmissionId") .HasColumnType("char(36)") .HasColumnName("submission_id"); b.Property("TeacherFeedback") .HasColumnType("longtext") .HasColumnName("teacher_feedback"); b.Property("UpdatedAt") .IsConcurrencyToken() .ValueGeneratedOnAddOrUpdate() .HasColumnType("datetime(6)") .HasColumnName("updated_at"); b.HasKey("Id"); b.HasIndex("AssignmentQuestionId"); b.HasIndex("StudentId"); b.HasIndex("SubmissionId"); b.ToTable("submission_details", (string)null); }); modelBuilder.Entity("Entities.Contracts.Textbook", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("Grade") .HasColumnType("tinyint unsigned"); b.Property("Publisher") .HasColumnType("tinyint unsigned"); b.Property("SubjectArea") .HasColumnType("tinyint unsigned"); b.Property("Title") .IsRequired() .HasColumnType("longtext"); b.HasKey("Id"); b.ToTable("textbook"); }); modelBuilder.Entity("Entities.Contracts.User", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("AccessFailedCount") .HasColumnType("int"); b.Property("Address") .HasColumnType("longtext"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("longtext"); b.Property("DisplayName") .HasColumnType("longtext"); b.Property("Email") .HasMaxLength(256) .HasColumnType("varchar(256)"); b.Property("EmailConfirmed") .HasColumnType("tinyint(1)"); b.Property("IsDeleted") .HasColumnType("tinyint(1)") .HasColumnName("deleted"); b.Property("LockoutEnabled") .HasColumnType("tinyint(1)"); b.Property("LockoutEnd") .HasColumnType("datetime(6)"); b.Property("NormalizedEmail") .HasMaxLength(256) .HasColumnType("varchar(256)"); b.Property("NormalizedUserName") .HasMaxLength(256) .HasColumnType("varchar(256)"); b.Property("PasswordHash") .HasColumnType("longtext"); b.Property("PhoneNumber") .HasColumnType("longtext"); b.Property("PhoneNumberConfirmed") .HasColumnType("tinyint(1)"); b.Property("RefreshToken") .HasColumnType("longtext"); b.Property("RefreshTokenExpiryTime") .HasColumnType("datetime(6)"); b.Property("SecurityStamp") .HasColumnType("longtext"); b.Property("TwoFactorEnabled") .HasColumnType("tinyint(1)"); b.Property("UserName") .HasMaxLength(256) .HasColumnType("varchar(256)"); b.HasKey("Id"); b.HasIndex("NormalizedEmail") .HasDatabaseName("EmailIndex"); b.HasIndex("NormalizedUserName") .IsUnique() .HasDatabaseName("UserNameIndex"); b.ToTable("AspNetUsers", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("char(36)"); b.Property("ConcurrencyStamp") .IsConcurrencyToken() .HasColumnType("longtext"); b.Property("Name") .HasMaxLength(256) .HasColumnType("varchar(256)"); b.Property("NormalizedName") .HasMaxLength(256) .HasColumnType("varchar(256)"); b.HasKey("Id"); b.HasIndex("NormalizedName") .IsUnique() .HasDatabaseName("RoleNameIndex"); b.ToTable("AspNetRoles", (string)null); b.HasData( new { Id = new Guid("5c7a7971-2610-4bce-9e41-0caffd5a5558"), Name = "Student", NormalizedName = "STUDENT" }, new { Id = new Guid("49854839-b861-4d42-bdbe-96b1a66c25ef"), Name = "Teacher", NormalizedName = "TEACHER" }, new { Id = new Guid("83ff7de8-edc9-47f8-8de8-22f892ca6bb5"), Name = "Administrator", NormalizedName = "ADMINISTRATOR" }); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("ClaimType") .HasColumnType("longtext"); b.Property("ClaimValue") .HasColumnType("longtext"); b.Property("RoleId") .HasColumnType("char(36)"); b.HasKey("Id"); b.HasIndex("RoleId"); b.ToTable("AspNetRoleClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("int"); MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); b.Property("ClaimType") .HasColumnType("longtext"); b.Property("ClaimValue") .HasColumnType("longtext"); b.Property("UserId") .HasColumnType("char(36)"); b.HasKey("Id"); b.HasIndex("UserId"); b.ToTable("AspNetUserClaims", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.Property("LoginProvider") .HasColumnType("varchar(255)"); b.Property("ProviderKey") .HasColumnType("varchar(255)"); b.Property("ProviderDisplayName") .HasColumnType("longtext"); b.Property("UserId") .HasColumnType("char(36)"); b.HasKey("LoginProvider", "ProviderKey"); b.HasIndex("UserId"); b.ToTable("AspNetUserLogins", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.Property("UserId") .HasColumnType("char(36)"); b.Property("RoleId") .HasColumnType("char(36)"); b.HasKey("UserId", "RoleId"); b.HasIndex("RoleId"); b.ToTable("AspNetUserRoles", (string)null); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.Property("UserId") .HasColumnType("char(36)"); b.Property("LoginProvider") .HasColumnType("varchar(255)"); b.Property("Name") .HasColumnType("varchar(255)"); b.Property("Value") .HasColumnType("longtext"); b.HasKey("UserId", "LoginProvider", "Name"); b.ToTable("AspNetUserTokens", (string)null); }); modelBuilder.Entity("Entities.Contracts.Assignment", b => { b.HasOne("Entities.Contracts.User", "Creator") .WithMany() .HasForeignKey("CreatorId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.AssignmentQuestion", "ExamStruct") .WithOne() .HasForeignKey("Entities.Contracts.Assignment", "ExamStructId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.User", null) .WithMany("CreatedAssignments") .HasForeignKey("UserId"); b.Navigation("Creator"); b.Navigation("ExamStruct"); }); modelBuilder.Entity("Entities.Contracts.AssignmentAttachment", b => { b.HasOne("Entities.Contracts.Assignment", "Assignment") .WithMany("AssignmentAttachments") .HasForeignKey("AssignmentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Assignment"); }); modelBuilder.Entity("Entities.Contracts.AssignmentClass", b => { b.HasOne("Entities.Contracts.Assignment", "Assignment") .WithMany("AssignmentClasses") .HasForeignKey("AssignmentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.Class", "Class") .WithMany("AssignmentClasses") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Assignment"); b.Navigation("Class"); }); modelBuilder.Entity("Entities.Contracts.AssignmentQuestion", b => { b.HasOne("Entities.Contracts.Assignment", "Assignment") .WithMany() .HasForeignKey("AssignmentId"); b.HasOne("Entities.Contracts.AssignmentQuestion", "ParentAssignmentQuestion") .WithMany("ChildrenAssignmentQuestion") .HasForeignKey("ParentAssignmentQuestionId") .OnDelete(DeleteBehavior.Cascade); b.HasOne("Entities.Contracts.QuestionContext", "QuestionContext") .WithMany("Questions") .HasForeignKey("QuestionContextId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Entities.Contracts.Question", "Question") .WithMany("AssignmentQuestions") .HasForeignKey("QuestionId") .OnDelete(DeleteBehavior.Cascade); b.Navigation("Assignment"); b.Navigation("ParentAssignmentQuestion"); b.Navigation("Question"); b.Navigation("QuestionContext"); }); modelBuilder.Entity("Entities.Contracts.Class", b => { b.HasOne("Entities.Contracts.User", "HeadTeacher") .WithMany() .HasForeignKey("HeadTeacherId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("HeadTeacher"); }); modelBuilder.Entity("Entities.Contracts.ClassStudent", b => { b.HasOne("Entities.Contracts.Class", "Class") .WithMany("ClassStudents") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.User", "Student") .WithMany("EnrolledClassesLink") .HasForeignKey("StudentId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.Navigation("Class"); b.Navigation("Student"); }); modelBuilder.Entity("Entities.Contracts.ClassTeacher", b => { b.HasOne("Entities.Contracts.Class", "Class") .WithMany("ClassTeachers") .HasForeignKey("ClassId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.User", "Teacher") .WithMany("TaughtClassesLink") .HasForeignKey("TeacherId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Class"); b.Navigation("Teacher"); }); modelBuilder.Entity("Entities.Contracts.KeyPoint", b => { b.HasOne("Entities.Contracts.Lesson", "Lesson") .WithMany("KeyPoints") .HasForeignKey("LessonID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Lesson"); }); modelBuilder.Entity("Entities.Contracts.Lesson", b => { b.HasOne("Entities.Contracts.Textbook", "Textbook") .WithMany("Lessons") .HasForeignKey("TextbookID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Textbook"); }); modelBuilder.Entity("Entities.Contracts.LessonQuestion", b => { b.HasOne("Entities.Contracts.Lesson", "Lesson") .WithMany("LessonQuestions") .HasForeignKey("LessonID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Lesson"); }); modelBuilder.Entity("Entities.Contracts.Question", b => { b.HasOne("Entities.Contracts.User", "Creator") .WithMany("CreatedQuestions") .HasForeignKey("CreatorId") .OnDelete(DeleteBehavior.Restrict) .IsRequired(); b.HasOne("Entities.Contracts.KeyPoint", "KeyPoint") .WithMany("Questions") .HasForeignKey("KeyPointId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Entities.Contracts.Lesson", "Lesson") .WithMany("Questions") .HasForeignKey("LessonId") .OnDelete(DeleteBehavior.SetNull); b.Navigation("Creator"); b.Navigation("KeyPoint"); b.Navigation("Lesson"); }); modelBuilder.Entity("Entities.Contracts.Submission", b => { b.HasOne("Entities.Contracts.Assignment", "Assignment") .WithMany("Submissions") .HasForeignKey("AssignmentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.User", "Grader") .WithMany("GradedSubmissions") .HasForeignKey("GraderId") .OnDelete(DeleteBehavior.SetNull); b.HasOne("Entities.Contracts.User", "Student") .WithMany("SubmissionsAsStudent") .HasForeignKey("StudentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("Assignment"); b.Navigation("Grader"); b.Navigation("Student"); }); modelBuilder.Entity("Entities.Contracts.SubmissionDetail", b => { b.HasOne("Entities.Contracts.AssignmentQuestion", "AssignmentQuestion") .WithMany("SubmissionDetails") .HasForeignKey("AssignmentQuestionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.User", "Student") .WithMany("SubmissionDetails") .HasForeignKey("StudentId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.Submission", "Submission") .WithMany("SubmissionDetails") .HasForeignKey("SubmissionId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.Navigation("AssignmentQuestion"); b.Navigation("Student"); b.Navigation("Submission"); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => { b.HasOne("Entities.Contracts.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => { b.HasOne("Entities.Contracts.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => { b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null) .WithMany() .HasForeignKey("RoleId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); b.HasOne("Entities.Contracts.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => { b.HasOne("Entities.Contracts.User", null) .WithMany() .HasForeignKey("UserId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); }); modelBuilder.Entity("Entities.Contracts.Assignment", b => { b.Navigation("AssignmentAttachments"); b.Navigation("AssignmentClasses"); b.Navigation("Submissions"); }); modelBuilder.Entity("Entities.Contracts.AssignmentQuestion", b => { b.Navigation("ChildrenAssignmentQuestion"); b.Navigation("SubmissionDetails"); }); modelBuilder.Entity("Entities.Contracts.Class", b => { b.Navigation("AssignmentClasses"); b.Navigation("ClassStudents"); b.Navigation("ClassTeachers"); }); modelBuilder.Entity("Entities.Contracts.KeyPoint", b => { b.Navigation("Questions"); }); modelBuilder.Entity("Entities.Contracts.Lesson", b => { b.Navigation("KeyPoints"); b.Navigation("LessonQuestions"); b.Navigation("Questions"); }); modelBuilder.Entity("Entities.Contracts.Question", b => { b.Navigation("AssignmentQuestions"); }); modelBuilder.Entity("Entities.Contracts.QuestionContext", b => { b.Navigation("Questions"); }); modelBuilder.Entity("Entities.Contracts.Submission", b => { b.Navigation("SubmissionDetails"); }); modelBuilder.Entity("Entities.Contracts.Textbook", b => { b.Navigation("Lessons"); }); modelBuilder.Entity("Entities.Contracts.User", b => { b.Navigation("CreatedAssignments"); b.Navigation("CreatedQuestions"); b.Navigation("EnrolledClassesLink"); b.Navigation("GradedSubmissions"); b.Navigation("SubmissionDetails"); b.Navigation("SubmissionsAsStudent"); b.Navigation("TaughtClassesLink"); }); #pragma warning restore 612, 618 } } }