using Jiaowu.Api.Domain.Common; namespace Jiaowu.Api.Domain.Academic; public sealed class OtherExamBatch : EntityBase { public string? ExamCode { get; set; } public required string Name { get; set; } public string? Organizer { get; set; } public DateOnly ExamDate { get; set; } public OtherExamMetricKind MetricKind { get; set; } public decimal? MaxScore { get; set; } public string? LevelOptions { get; set; } public OtherExamBatchStatus Status { get; set; } = OtherExamBatchStatus.Draft; public int PublicationCount { get; set; } public DateTime? PublishedAt { get; set; } public ICollection Results { get; set; } = []; } public sealed class OtherExamResult : EntityBase { public Guid OtherExamBatchId { get; set; } public OtherExamBatch? OtherExamBatch { get; set; } public Guid StudentId { get; set; } public Student? Student { get; set; } public int AttemptNumber { get; set; } = 1; public decimal? Score { get; set; } public string? Level { get; set; } public bool? IsPassed { get; set; } public string? Notes { get; set; } } public enum OtherExamMetricKind { PassFail = 1, Level = 2, Score = 3 } public enum OtherExamBatchStatus { Draft = 1, Published = 2 }