教学任务:学期开课、授课教师、唯一主讲、合班、容量与周次校验、发布及结课。 SQLite 开发库已自动升级,无需删除原数据库。 新增对应 MySQL EF Core 迁移。 Vue 已编译进 wwwroot,仍可只运行 ASP.NET Core 单服务。 桌面端及 390px 窄屏页面验证通过,无前端控制台错误。
53 lines
1.5 KiB
C#
53 lines
1.5 KiB
C#
using Jiaowu.Api.Domain.Common;
|
|
|
|
namespace Jiaowu.Api.Domain.Academic;
|
|
|
|
public sealed class CurriculumPlan : EntityBase
|
|
{
|
|
public Guid MajorId { get; set; }
|
|
public Major? Major { get; set; }
|
|
public required string Name { get; set; }
|
|
public required string Version { get; set; }
|
|
public int EffectiveGrade { get; set; }
|
|
public decimal TotalCredits { get; set; }
|
|
public CurriculumPlanStatus Status { get; set; } = CurriculumPlanStatus.Draft;
|
|
public string? Description { get; set; }
|
|
public DateTime? PublishedAt { get; set; }
|
|
public ICollection<CurriculumModule> Modules { get; set; } = [];
|
|
}
|
|
|
|
public sealed class CurriculumModule : EntityBase
|
|
{
|
|
public Guid CurriculumPlanId { get; set; }
|
|
public CurriculumPlan? CurriculumPlan { get; set; }
|
|
public required string Code { get; set; }
|
|
public required string Name { get; set; }
|
|
public decimal RequiredCredits { get; set; }
|
|
public int SortOrder { get; set; }
|
|
public ICollection<CurriculumCourse> Courses { get; set; } = [];
|
|
}
|
|
|
|
public sealed class CurriculumCourse : EntityBase
|
|
{
|
|
public Guid CurriculumModuleId { get; set; }
|
|
public CurriculumModule? CurriculumModule { get; set; }
|
|
public Guid CourseId { get; set; }
|
|
public Course? Course { get; set; }
|
|
public int RecommendedSemester { get; set; }
|
|
public CurriculumCourseType Type { get; set; }
|
|
public string? Notes { get; set; }
|
|
}
|
|
|
|
public enum CurriculumPlanStatus
|
|
{
|
|
Draft = 1,
|
|
Published = 2,
|
|
Archived = 3
|
|
}
|
|
|
|
public enum CurriculumCourseType
|
|
{
|
|
Required = 1,
|
|
Elective = 2
|
|
}
|