考试计划草稿、场次配置与正式发布。 教学班、考试时间、考场、监考教师关联。 自动校验考场容量。 阻止考场、监考教师和学生考试时间冲突。 管理员查看考生名单。 教师查看个人监考安排。 学生查看已发布考试日程。 SQLite 增量升级和 MySQL 正式迁移。
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using Jiaowu.Api.Domain.Common;
|
|
|
|
namespace Jiaowu.Api.Domain.Academic;
|
|
|
|
public sealed class ExamPlan : EntityBase
|
|
{
|
|
public Guid AcademicTermId { get; set; }
|
|
public AcademicTerm? AcademicTerm { get; set; }
|
|
public required string Name { get; set; }
|
|
public ExamPlanStatus Status { get; set; } = ExamPlanStatus.Draft;
|
|
public string? Notes { get; set; }
|
|
public DateTime? PublishedAt { get; set; }
|
|
public ICollection<ExamSession> Sessions { get; set; } = [];
|
|
}
|
|
|
|
public sealed class ExamSession : EntityBase
|
|
{
|
|
public Guid ExamPlanId { get; set; }
|
|
public ExamPlan? ExamPlan { get; set; }
|
|
public Guid TeachingTaskId { get; set; }
|
|
public TeachingTask? TeachingTask { get; set; }
|
|
public Guid ClassroomId { get; set; }
|
|
public Classroom? Classroom { get; set; }
|
|
public DateTime StartsAt { get; set; }
|
|
public DateTime EndsAt { get; set; }
|
|
public string? Notes { get; set; }
|
|
public ICollection<ExamSessionInvigilator> Invigilators { get; set; } = [];
|
|
}
|
|
|
|
public sealed class ExamSessionInvigilator
|
|
{
|
|
public Guid ExamSessionId { get; set; }
|
|
public ExamSession? ExamSession { get; set; }
|
|
public Guid TeacherId { get; set; }
|
|
public Teacher? Teacher { get; set; }
|
|
}
|
|
|
|
public enum ExamPlanStatus
|
|
{
|
|
Draft = 1,
|
|
Published = 2,
|
|
Archived = 3
|
|
}
|