//
using System;
using Jiaowu.Api.Infrastructure.Persistence;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace Jiaowu.Api.Infrastructure.Persistence.Migrations.MySql
{
[DbContext(typeof(AppDbContext))]
[Migration("20260808083506_OtherExamIdentityAndImport")]
partial class OtherExamIdentityAndImport
{
///
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "10.0.10")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.AcademicTerm", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AcademicYear")
.IsRequired()
.HasColumnType("longtext");
b.Property("ArchivedAt")
.HasColumnType("datetime(6)");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("EndDate")
.HasColumnType("date");
b.Property("IsArchived")
.HasColumnType("tinyint(1)");
b.Property("IsCurrent")
.HasColumnType("tinyint(1)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("Season")
.HasColumnType("int");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("StartDate")
.HasColumnType("date");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("IsArchived");
b.HasIndex("IsCurrent");
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("AcademicTerms");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.AdministrativeClass", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CounselorName")
.HasColumnType("longtext");
b.Property("CounselorUserId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Grade")
.HasColumnType("int");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("MajorId")
.HasColumnType("char(36)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("CounselorUserId");
b.HasIndex("MajorId");
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("AdministrativeClasses");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.AttendanceCheckInAttempt", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AccuracyMeters")
.HasColumnType("double");
b.Property("AttendanceSheetId")
.HasColumnType("char(36)");
b.Property("CheckInMethod")
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("DeviceIdentifierHash")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property("DevicePlatform")
.HasMaxLength(32)
.HasColumnType("varchar(32)");
b.Property("DistanceMeters")
.HasColumnType("double");
b.Property("FailureCode")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property("IpAddress")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property("IsSuccessful")
.HasColumnType("tinyint(1)");
b.Property("Latitude")
.HasPrecision(10, 7)
.HasColumnType("decimal(10,7)");
b.Property("Longitude")
.HasPrecision(10, 7)
.HasColumnType("decimal(10,7)");
b.Property("RiskFlags")
.HasMaxLength(300)
.HasColumnType("varchar(300)");
b.Property("StudentId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.Property("UserAgent")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.HasKey("Id");
b.HasIndex("StudentId");
b.HasIndex("DeviceIdentifierHash", "CreatedAt");
b.HasIndex("IpAddress", "CreatedAt");
b.HasIndex("AttendanceSheetId", "StudentId", "CreatedAt");
b.ToTable("AttendanceCheckInAttempts");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.AttendanceRecord", b =>
{
b.Property("AttendanceSheetId")
.HasColumnType("char(36)");
b.Property("StudentId")
.HasColumnType("char(36)");
b.Property("AppealReason")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("AppealReviewComment")
.HasMaxLength(300)
.HasColumnType("varchar(300)");
b.Property("AppealReviewedAt")
.HasColumnType("datetime(6)");
b.Property("AppealStatus")
.HasColumnType("int");
b.Property("AppealSubmittedAt")
.HasColumnType("datetime(6)");
b.Property("CheckInAccuracyMeters")
.HasColumnType("double");
b.Property("CheckInAt")
.HasColumnType("datetime(6)");
b.Property("CheckInDistanceMeters")
.HasColumnType("double");
b.Property("CheckInLatitude")
.HasPrecision(10, 7)
.HasColumnType("decimal(10,7)");
b.Property("CheckInLongitude")
.HasPrecision(10, 7)
.HasColumnType("decimal(10,7)");
b.Property("CheckedInMethod")
.HasColumnType("int");
b.Property("Notes")
.HasMaxLength(300)
.HasColumnType("varchar(300)");
b.Property("Status")
.HasColumnType("int");
b.HasKey("AttendanceSheetId", "StudentId");
b.HasIndex("AppealStatus");
b.HasIndex("StudentId");
b.ToTable("AttendanceRecords");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.AttendanceSheet", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AttendanceDate")
.HasColumnType("datetime(6)");
b.Property("CheckInEndsAt")
.HasColumnType("datetime(6)");
b.Property("CheckInMethod")
.HasColumnType("int");
b.Property("CheckInStartsAt")
.HasColumnType("datetime(6)");
b.Property("CheckInToken")
.HasMaxLength(64)
.HasColumnType("varchar(64)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("LocationRadiusMeters")
.HasColumnType("int");
b.Property("Name")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("varchar(120)");
b.Property("Notes")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("Status")
.HasColumnType("int");
b.Property("SubmittedAt")
.HasColumnType("datetime(6)");
b.Property("TargetLatitude")
.HasPrecision(10, 7)
.HasColumnType("decimal(10,7)");
b.Property("TargetLongitude")
.HasPrecision(10, 7)
.HasColumnType("decimal(10,7)");
b.Property("TeachingTaskId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CheckInToken")
.IsUnique();
b.HasIndex("TeachingTaskId", "AttendanceDate");
b.ToTable("AttendanceSheets");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.AutomaticScheduleJob", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ActiveSchedulePlanId")
.HasColumnType("char(36)");
b.Property("CompletedAt")
.HasColumnType("datetime(6)");
b.Property("CompletedTasks")
.HasColumnType("int");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("CreatedEntries")
.HasColumnType("int");
b.Property("ErrorMessage")
.HasMaxLength(2000)
.HasColumnType("varchar(2000)");
b.Property("MessagesJson")
.HasColumnType("longtext");
b.Property("ProcessedTasks")
.HasColumnType("int");
b.Property("RequestedByUserId")
.HasColumnType("char(36)");
b.Property("SchedulePlanId")
.HasColumnType("char(36)");
b.Property("StartedAt")
.HasColumnType("datetime(6)");
b.Property("Status")
.HasColumnType("int");
b.Property("TotalTasks")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("ActiveSchedulePlanId")
.IsUnique();
b.HasIndex("RequestedByUserId");
b.HasIndex("SchedulePlanId", "CreatedAt");
b.HasIndex("Status", "CreatedAt");
b.ToTable("AutomaticScheduleJobs");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.Building", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CampusId")
.HasColumnType("char(36)");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CampusId");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("Buildings");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.Campus", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Address")
.HasColumnType("longtext");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("Campuses");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.Classroom", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("BuildingId")
.HasColumnType("char(36)");
b.Property("Capacity")
.HasColumnType("int");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Equipment")
.HasColumnType("longtext");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("RoomType")
.IsRequired()
.HasColumnType("longtext");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("BuildingId");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("Classrooms");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.ClassroomReservation", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AcademicTermId")
.HasColumnType("char(36)");
b.Property("ApplicantCollegeId")
.HasColumnType("char(36)");
b.Property("ApplicantName")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("varchar(50)");
b.Property("ApplicantUserId")
.HasColumnType("char(36)");
b.Property("AttendeeCount")
.HasColumnType("int");
b.Property("CancelledAt")
.HasColumnType("datetime(6)");
b.Property("ClassroomId")
.HasColumnType("char(36)");
b.Property("ContactPhone")
.IsRequired()
.HasMaxLength(30)
.HasColumnType("varchar(30)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Notes")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("PeriodCount")
.HasColumnType("int");
b.Property("Purpose")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)");
b.Property("ReservationDate")
.HasColumnType("date");
b.Property("ReviewComment")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewedAt")
.HasColumnType("datetime(6)");
b.Property("ReviewedByUserId")
.HasColumnType("char(36)");
b.Property("StartPeriod")
.HasColumnType("int");
b.Property("Status")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("AcademicTermId");
b.HasIndex("ReviewedByUserId");
b.HasIndex("ApplicantCollegeId", "Status", "ReservationDate");
b.HasIndex("ApplicantUserId", "Status", "CreatedAt");
b.HasIndex("ClassroomId", "ReservationDate", "Status", "StartPeriod");
b.ToTable("ClassroomReservations");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.College", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CampusId")
.HasColumnType("char(36)");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("ShortName")
.HasColumnType("longtext");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CampusId");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("Colleges");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.Course", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AssessmentMethod")
.HasColumnType("int");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CollegeId")
.HasColumnType("char(36)");
b.Property("CourseCategoryId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Credits")
.HasPrecision(5, 2)
.HasColumnType("decimal(5,2)");
b.Property("Description")
.HasMaxLength(1000)
.HasColumnType("varchar(1000)");
b.Property("EnglishName")
.HasMaxLength(150)
.HasColumnType("varchar(150)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("LectureHours")
.HasColumnType("int");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("Nature")
.HasColumnType("int");
b.Property("PracticeHours")
.HasColumnType("int");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("TotalHours")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("CourseCategoryId");
b.HasIndex("CollegeId", "Nature");
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("Courses");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseAdjustment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("ApplicantUserId")
.HasColumnType("char(36)");
b.Property("CancelDate")
.HasColumnType("date");
b.Property("CancelWeek")
.HasColumnType("int");
b.Property("ClassroomId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("DayOfWeek")
.HasColumnType("int");
b.Property("PeriodCount")
.HasColumnType("int");
b.Property("Reason")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewComment")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewedAt")
.HasColumnType("datetime(6)");
b.Property("ReviewedByUserId")
.HasColumnType("char(36)");
b.Property("SourceClassroomId")
.HasColumnType("char(36)");
b.Property("SourceDate")
.HasColumnType("date");
b.Property("SourcePeriodCount")
.HasColumnType("int");
b.Property("SourceScheduleEntryId")
.HasColumnType("char(36)");
b.Property("SourceStartPeriod")
.HasColumnType("int");
b.Property("SourceWeek")
.HasColumnType("int");
b.Property("StartPeriod")
.HasColumnType("int");
b.Property("Status")
.HasColumnType("int");
b.Property("SubmittedAt")
.HasColumnType("datetime(6)");
b.Property("SubstituteTeacherId")
.HasColumnType("char(36)");
b.Property("TargetDate")
.HasColumnType("date");
b.Property("TeachingTaskId")
.HasColumnType("char(36)");
b.Property("Type")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("ApplicantUserId");
b.HasIndex("ClassroomId");
b.HasIndex("SubstituteTeacherId");
b.HasIndex("SourceScheduleEntryId", "SourceWeek");
b.HasIndex("Status", "CreatedAt");
b.HasIndex("TeachingTaskId", "Status");
b.ToTable("CourseAdjustments");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseCategory", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Code")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsEnabled")
.HasColumnType("tinyint(1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)");
b.Property("SortOrder")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("Code")
.IsUnique();
b.HasIndex("IsEnabled", "SortOrder");
b.ToTable("CourseCategories");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseEnrollment", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CourseSelectionOfferingId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("EnrolledAt")
.HasColumnType("datetime(6)");
b.Property("EnrollmentType")
.HasColumnType("int");
b.Property("Status")
.HasColumnType("int");
b.Property("StudentId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.Property("WaitlistedAt")
.HasColumnType("datetime(6)");
b.Property("WithdrawnAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("CourseSelectionOfferingId", "StudentId")
.IsUnique();
b.HasIndex("StudentId", "Status");
b.HasIndex("CourseSelectionOfferingId", "Status", "WaitlistedAt")
.HasDatabaseName("IX_CE_Offering_Status_WaitlistedAt");
b.ToTable("CourseEnrollments");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseExemption", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Reason")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewComment")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewedAt")
.HasColumnType("datetime(6)");
b.Property("ReviewedByUserId")
.HasColumnType("char(36)");
b.Property("Status")
.HasColumnType("int");
b.Property("StudentId")
.HasColumnType("char(36)");
b.Property("SubmittedAt")
.HasColumnType("datetime(6)");
b.Property("TeachingTaskId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("TeachingTaskId");
b.HasIndex("Status", "CreatedAt");
b.HasIndex("StudentId", "TeachingTaskId")
.IsUnique();
b.ToTable("CourseExemptions");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CoursePrerequisite", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CourseId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("PrerequisiteCourseId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("PrerequisiteCourseId");
b.HasIndex("CourseId", "PrerequisiteCourseId")
.IsUnique();
b.ToTable("CoursePrerequisites");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseSelectionOffering", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("Capacity")
.HasColumnType("int");
b.Property("CourseSelectionRoundId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("IsOpenToAll")
.HasColumnType("tinyint(1)");
b.Property("Notes")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("TeachingTaskId")
.HasColumnType("char(36)");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("TeachingTaskId");
b.HasIndex("CourseSelectionRoundId", "TeachingTaskId")
.IsUnique();
b.ToTable("CourseSelectionOfferings");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseSelectionRound", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("AcademicTermId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("EndsAt")
.HasColumnType("datetime(6)");
b.Property("MaxCourseCount")
.HasColumnType("int");
b.Property("MaxCredits")
.HasPrecision(6, 1)
.HasColumnType("decimal(6,1)");
b.Property("Name")
.IsRequired()
.HasMaxLength(120)
.HasColumnType("varchar(120)");
b.Property("Notes")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("StartsAt")
.HasColumnType("datetime(6)");
b.Property("Status")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.Property("WithdrawalEndsAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("AcademicTermId", "Status");
b.ToTable("CourseSelectionRounds");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseSelectionRoundGrade", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CourseSelectionRoundId")
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("Grade")
.HasColumnType("int");
b.Property("UpdatedAt")
.HasColumnType("datetime(6)");
b.HasKey("Id");
b.HasIndex("Grade");
b.HasIndex("CourseSelectionRoundId", "Grade")
.IsUnique();
b.ToTable("CourseSelectionRoundGrades");
});
modelBuilder.Entity("Jiaowu.Api.Domain.Academic.CourseSubstitution", b =>
{
b.Property("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)");
b.Property("CreatedAt")
.HasColumnType("datetime(6)");
b.Property("OriginalCourseId")
.HasColumnType("char(36)");
b.Property("Reason")
.IsRequired()
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewComment")
.HasMaxLength(500)
.HasColumnType("varchar(500)");
b.Property("ReviewedAt")
.HasColumnType("datetime(6)");
b.Property("ReviewedByUserId")
.HasColumnType("char(36)");
b.Property("Status")
.HasColumnType("int");
b.Property("StudentId")
.HasColumnType("char(36)");
b.Property