using System; using Microsoft.EntityFrameworkCore.Metadata; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace TechHelper.Server.Migrations { /// public partial class init : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AlterDatabase() .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetRoles", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Name = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NormalizedName = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ConcurrencyStamp = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetRoles", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "exam_type", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), name = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_exam_type", x => x.id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "QuestionContexts", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_QuestionContexts", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "schools", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), school_name = table.Column(type: "varchar(50)", maxLength: 50, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), address = table.Column(type: "varchar(100)", maxLength: 100, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), create_time = table.Column(type: "datetime(6)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_schools", x => x.id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "subjects", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), name = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_subjects", x => x.id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "textbook", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Grade = table.Column(type: "tinyint unsigned", nullable: false), Title = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Publisher = table.Column(type: "tinyint unsigned", nullable: false), SubjectArea = table.Column(type: "tinyint unsigned", nullable: false) }, constraints: table => { table.PrimaryKey("PK_textbook", x => x.Id); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetRoleClaims", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), RoleId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), ClaimType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ClaimValue = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id); table.ForeignKey( name: "FK_AspNetRoleClaims_AspNetRoles_RoleId", column: x => x.RoleId, principalTable: "AspNetRoles", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "grades", columns: table => new { grade_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), school_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), grade_name = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), grade_level = table.Column(type: "tinyint unsigned", nullable: false) }, constraints: table => { table.PrimaryKey("PK_grades", x => x.grade_id); table.ForeignKey( name: "FK_grades_schools_school_id", column: x => x.school_id, principalTable: "schools", principalColumn: "id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUsers", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), RefreshToken = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), RefreshTokenExpiryTime = table.Column(type: "datetime(6)", nullable: true), HomeAddress = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), DisplayName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Role = table.Column(type: "int", nullable: true), TeachSubjectId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), deleted = table.Column(type: "tinyint(1)", nullable: false), UserName = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NormalizedUserName = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), Email = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), NormalizedEmail = table.Column(type: "varchar(256)", maxLength: 256, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), EmailConfirmed = table.Column(type: "tinyint(1)", nullable: false), PasswordHash = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), SecurityStamp = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ConcurrencyStamp = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PhoneNumber = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), PhoneNumberConfirmed = table.Column(type: "tinyint(1)", nullable: false), TwoFactorEnabled = table.Column(type: "tinyint(1)", nullable: false), LockoutEnd = table.Column(type: "datetime(6)", nullable: true), LockoutEnabled = table.Column(type: "tinyint(1)", nullable: false), AccessFailedCount = table.Column(type: "int", nullable: false) }, constraints: table => { table.PrimaryKey("PK_AspNetUsers", x => x.Id); table.ForeignKey( name: "FK_AspNetUsers_subjects_TeachSubjectId", column: x => x.TeachSubjectId, principalTable: "subjects", principalColumn: "id"); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "question_types", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), name = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), subject_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), score_rule = table.Column(type: "varchar(20)", maxLength: 20, nullable: false) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_question_types", x => x.id); table.ForeignKey( name: "FK_question_types_subjects_subject_id", column: x => x.subject_id, principalTable: "subjects", principalColumn: "id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "lesson", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Title = table.Column(type: "varchar(255)", maxLength: 255, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), TextbookID = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") }, constraints: table => { table.PrimaryKey("PK_lesson", x => x.Id); table.ForeignKey( name: "FK_lesson_textbook_TextbookID", column: x => x.TextbookID, principalTable: "textbook", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserClaims", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("MySql:ValueGenerationStrategy", MySqlValueGenerationStrategy.IdentityColumn), UserId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), ClaimType = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), ClaimValue = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetUserClaims", x => x.Id); table.ForeignKey( name: "FK_AspNetUserClaims_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserLogins", columns: table => new { LoginProvider = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ProviderKey = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), ProviderDisplayName = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), UserId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") }, constraints: table => { table.PrimaryKey("PK_AspNetUserLogins", x => new { x.LoginProvider, x.ProviderKey }); table.ForeignKey( name: "FK_AspNetUserLogins_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserRoles", columns: table => new { UserId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), RoleId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") }, constraints: table => { table.PrimaryKey("PK_AspNetUserRoles", x => new { x.UserId, x.RoleId }); table.ForeignKey( name: "FK_AspNetUserRoles_AspNetRoles_RoleId", column: x => x.RoleId, principalTable: "AspNetRoles", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_AspNetUserRoles_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "AspNetUserTokens", columns: table => new { UserId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), LoginProvider = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Name = table.Column(type: "varchar(255)", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), Value = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4") }, constraints: table => { table.PrimaryKey("PK_AspNetUserTokens", x => new { x.UserId, x.LoginProvider, x.Name }); table.ForeignKey( name: "FK_AspNetUserTokens_AspNetUsers_UserId", column: x => x.UserId, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "classes", columns: table => new { class_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), grade_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), index = table.Column(type: "tinyint unsigned", nullable: false), class_name = table.Column(type: "varchar(30)", maxLength: 30, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), head_teacher_id = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), created_at = table.Column(type: "datetime(6)", nullable: false), updated_at = table.Column(type: "datetime(6)", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_classes", x => x.class_id); table.ForeignKey( name: "FK_classes_AspNetUsers_head_teacher_id", column: x => x.head_teacher_id, principalTable: "AspNetUsers", principalColumn: "Id"); table.ForeignKey( name: "FK_classes_grades_grade_id", column: x => x.grade_id, principalTable: "grades", principalColumn: "grade_id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "key_point", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Key = table.Column(type: "varchar(255)", maxLength: 255, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), LessonID = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") }, constraints: table => { table.PrimaryKey("PK_key_point", x => x.Id); table.ForeignKey( name: "FK_key_point_lesson_LessonID", column: x => x.LessonID, principalTable: "lesson", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "lesson_question", columns: table => new { Id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), Question = table.Column(type: "longtext", maxLength: 65535, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), LessonID = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") }, constraints: table => { table.PrimaryKey("PK_lesson_question", x => x.Id); table.ForeignKey( name: "FK_lesson_question_lesson_LessonID", column: x => x.LessonID, principalTable: "lesson", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "class_user", columns: table => new { class_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), student_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), enrollment_date = table.Column(type: "datetime(6)", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_class_user", x => new { x.class_id, x.student_id }); table.ForeignKey( name: "FK_class_user_AspNetUsers_student_id", column: x => x.student_id, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_class_user_classes_class_id", column: x => x.class_id, principalTable: "classes", principalColumn: "class_id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "questions", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), title = table.Column(type: "longtext", maxLength: 65535, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), answer = table.Column(type: "longtext", maxLength: 65535, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), type = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), subject_area = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), key_point = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), lesson = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), options = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), created_at = table.Column(type: "datetime(6)", nullable: false), updated_at = table.Column(type: "datetime(6)", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_questions", x => x.id); table.ForeignKey( name: "FK_questions_key_point_key_point", column: x => x.key_point, principalTable: "key_point", principalColumn: "Id"); table.ForeignKey( name: "FK_questions_lesson_lesson", column: x => x.lesson, principalTable: "lesson", principalColumn: "Id"); table.ForeignKey( name: "FK_questions_question_types_type", column: x => x.type, principalTable: "question_types", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_questions_subjects_subject_area", column: x => x.subject_area, principalTable: "subjects", principalColumn: "id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "assignment_questions", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), title = table.Column(type: "varchar(1024)", maxLength: 1024, nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), question_id = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), description = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), question_number = table.Column(type: "tinyint unsigned", nullable: false), sequence = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), parent_question_group_id = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), QuestionTypeId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), created_at = table.Column(type: "datetime(6)", nullable: false), score = table.Column(type: "float", nullable: true), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_assignment_questions", x => x.id); table.ForeignKey( name: "FK_assignment_questions_QuestionContexts_description", column: x => x.description, principalTable: "QuestionContexts", principalColumn: "Id"); table.ForeignKey( name: "FK_assignment_questions_assignment_questions_parent_question_gr~", column: x => x.parent_question_group_id, principalTable: "assignment_questions", principalColumn: "id"); table.ForeignKey( name: "FK_assignment_questions_question_types_QuestionTypeId", column: x => x.QuestionTypeId, principalTable: "question_types", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_assignment_questions_questions_question_id", column: x => x.question_id, principalTable: "questions", principalColumn: "id"); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "assignments", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), title = table.Column(type: "varchar(255)", maxLength: 255, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), description = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), subject_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), exam_struct_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), exam_type_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), created_by = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), due_date = table.Column(type: "datetime(6)", nullable: false), total_points = table.Column(type: "tinyint unsigned", nullable: false), score = table.Column(type: "float", nullable: false), name = table.Column(type: "longtext", nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), created_at = table.Column(type: "datetime(6)", nullable: false), updated_at = table.Column(type: "datetime(6)", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_assignments", x => x.id); table.ForeignKey( name: "FK_assignments_AspNetUsers_created_by", column: x => x.created_by, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_assignments_assignment_questions_exam_struct_id", column: x => x.exam_struct_id, principalTable: "assignment_questions", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_assignments_exam_type_exam_type_id", column: x => x.exam_type_id, principalTable: "exam_type", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_assignments_subjects_subject_id", column: x => x.subject_id, principalTable: "subjects", principalColumn: "id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "assignment_attachments", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), assignment_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), file_path = table.Column(type: "varchar(255)", maxLength: 255, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), file_name = table.Column(type: "varchar(255)", maxLength: 255, nullable: false) .Annotation("MySql:CharSet", "utf8mb4"), uploaded_at = table.Column(type: "datetime(6)", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_assignment_attachments", x => x.id); table.ForeignKey( name: "FK_assignment_attachments_assignments_assignment_id", column: x => x.assignment_id, principalTable: "assignments", principalColumn: "id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "submissions", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), exam_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), student_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), graded_by = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), class_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), attempt_number = table.Column(type: "tinyint unsigned", nullable: false), submission_time = table.Column(type: "datetime(6)", nullable: false), overall_grade = table.Column(type: "float", nullable: false), overall_feedback = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), graded_at = table.Column(type: "datetime(6)", nullable: true), TotalQuesNum = table.Column(type: "tinyint unsigned", nullable: false), ErrorQuesNum = table.Column(type: "tinyint unsigned", nullable: false), TotalScore = table.Column(type: "tinyint unsigned", nullable: false), status = table.Column(type: "int", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_submissions", x => x.id); table.ForeignKey( name: "FK_submissions_AspNetUsers_graded_by", column: x => x.graded_by, principalTable: "AspNetUsers", principalColumn: "Id"); table.ForeignKey( name: "FK_submissions_AspNetUsers_student_id", column: x => x.student_id, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_submissions_assignments_exam_id", column: x => x.exam_id, principalTable: "assignments", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_submissions_classes_class_id", column: x => x.class_id, principalTable: "classes", principalColumn: "class_id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateTable( name: "submission_details", columns: table => new { id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), submission_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), student_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), assignment_question_id = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), student_answer = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), is_correct = table.Column(type: "tinyint(1)", nullable: true), points_awarded = table.Column(type: "float", nullable: true), teacher_feedback = table.Column(type: "longtext", nullable: true) .Annotation("MySql:CharSet", "utf8mb4"), created_at = table.Column(type: "datetime(6)", nullable: false), updated_at = table.Column(type: "datetime(6)", nullable: false), deleted = table.Column(type: "tinyint(1)", nullable: false) }, constraints: table => { table.PrimaryKey("PK_submission_details", x => x.id); table.ForeignKey( name: "FK_submission_details_AspNetUsers_student_id", column: x => x.student_id, principalTable: "AspNetUsers", principalColumn: "Id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_submission_details_assignment_questions_assignment_question_~", column: x => x.assignment_question_id, principalTable: "assignment_questions", principalColumn: "id", onDelete: ReferentialAction.Cascade); table.ForeignKey( name: "FK_submission_details_submissions_submission_id", column: x => x.submission_id, principalTable: "submissions", principalColumn: "id", onDelete: ReferentialAction.Cascade); }) .Annotation("MySql:CharSet", "utf8mb4"); migrationBuilder.CreateIndex( name: "IX_AspNetRoleClaims_RoleId", table: "AspNetRoleClaims", column: "RoleId"); migrationBuilder.CreateIndex( name: "RoleNameIndex", table: "AspNetRoles", column: "NormalizedName", unique: true); migrationBuilder.CreateIndex( name: "IX_AspNetUserClaims_UserId", table: "AspNetUserClaims", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_AspNetUserLogins_UserId", table: "AspNetUserLogins", column: "UserId"); migrationBuilder.CreateIndex( name: "IX_AspNetUserRoles_RoleId", table: "AspNetUserRoles", column: "RoleId"); migrationBuilder.CreateIndex( name: "EmailIndex", table: "AspNetUsers", column: "NormalizedEmail"); migrationBuilder.CreateIndex( name: "IX_AspNetUsers_TeachSubjectId", table: "AspNetUsers", column: "TeachSubjectId"); migrationBuilder.CreateIndex( name: "UserNameIndex", table: "AspNetUsers", column: "NormalizedUserName", unique: true); migrationBuilder.CreateIndex( name: "IX_assignment_attachments_assignment_id", table: "assignment_attachments", column: "assignment_id"); migrationBuilder.CreateIndex( name: "IX_assignment_questions_description", table: "assignment_questions", column: "description"); migrationBuilder.CreateIndex( name: "IX_assignment_questions_parent_question_group_id", table: "assignment_questions", column: "parent_question_group_id"); migrationBuilder.CreateIndex( name: "IX_assignment_questions_question_id", table: "assignment_questions", column: "question_id"); migrationBuilder.CreateIndex( name: "IX_assignment_questions_QuestionTypeId", table: "assignment_questions", column: "QuestionTypeId"); migrationBuilder.CreateIndex( name: "IX_assignments_created_by", table: "assignments", column: "created_by"); migrationBuilder.CreateIndex( name: "IX_assignments_exam_struct_id", table: "assignments", column: "exam_struct_id", unique: true); migrationBuilder.CreateIndex( name: "IX_assignments_exam_type_id", table: "assignments", column: "exam_type_id"); migrationBuilder.CreateIndex( name: "IX_assignments_subject_id", table: "assignments", column: "subject_id"); migrationBuilder.CreateIndex( name: "IX_class_user_student_id", table: "class_user", column: "student_id"); migrationBuilder.CreateIndex( name: "IX_classes_grade_id", table: "classes", column: "grade_id"); migrationBuilder.CreateIndex( name: "IX_classes_head_teacher_id", table: "classes", column: "head_teacher_id"); migrationBuilder.CreateIndex( name: "IX_grades_school_id", table: "grades", column: "school_id"); migrationBuilder.CreateIndex( name: "IX_key_point_LessonID", table: "key_point", column: "LessonID"); migrationBuilder.CreateIndex( name: "IX_lesson_TextbookID", table: "lesson", column: "TextbookID"); migrationBuilder.CreateIndex( name: "IX_lesson_question_LessonID", table: "lesson_question", column: "LessonID"); migrationBuilder.CreateIndex( name: "IX_question_types_subject_id", table: "question_types", column: "subject_id"); migrationBuilder.CreateIndex( name: "IX_questions_key_point", table: "questions", column: "key_point"); migrationBuilder.CreateIndex( name: "IX_questions_lesson", table: "questions", column: "lesson"); migrationBuilder.CreateIndex( name: "IX_questions_subject_area", table: "questions", column: "subject_area"); migrationBuilder.CreateIndex( name: "IX_questions_type", table: "questions", column: "type"); migrationBuilder.CreateIndex( name: "IX_submission_details_assignment_question_id", table: "submission_details", column: "assignment_question_id"); migrationBuilder.CreateIndex( name: "IX_submission_details_student_id", table: "submission_details", column: "student_id"); migrationBuilder.CreateIndex( name: "IX_submission_details_submission_id", table: "submission_details", column: "submission_id"); migrationBuilder.CreateIndex( name: "IX_submissions_class_id", table: "submissions", column: "class_id"); migrationBuilder.CreateIndex( name: "IX_submissions_exam_id", table: "submissions", column: "exam_id"); migrationBuilder.CreateIndex( name: "IX_submissions_graded_by", table: "submissions", column: "graded_by"); migrationBuilder.CreateIndex( name: "IX_submissions_student_id", table: "submissions", column: "student_id"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "AspNetRoleClaims"); migrationBuilder.DropTable( name: "AspNetUserClaims"); migrationBuilder.DropTable( name: "AspNetUserLogins"); migrationBuilder.DropTable( name: "AspNetUserRoles"); migrationBuilder.DropTable( name: "AspNetUserTokens"); migrationBuilder.DropTable( name: "assignment_attachments"); migrationBuilder.DropTable( name: "class_user"); migrationBuilder.DropTable( name: "lesson_question"); migrationBuilder.DropTable( name: "submission_details"); migrationBuilder.DropTable( name: "AspNetRoles"); migrationBuilder.DropTable( name: "submissions"); migrationBuilder.DropTable( name: "assignments"); migrationBuilder.DropTable( name: "classes"); migrationBuilder.DropTable( name: "assignment_questions"); migrationBuilder.DropTable( name: "exam_type"); migrationBuilder.DropTable( name: "AspNetUsers"); migrationBuilder.DropTable( name: "grades"); migrationBuilder.DropTable( name: "QuestionContexts"); migrationBuilder.DropTable( name: "questions"); migrationBuilder.DropTable( name: "schools"); migrationBuilder.DropTable( name: "key_point"); migrationBuilder.DropTable( name: "question_types"); migrationBuilder.DropTable( name: "lesson"); migrationBuilder.DropTable( name: "subjects"); migrationBuilder.DropTable( name: "textbook"); } } }