using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 监测年级输出参数
/// </summary>
public class ExamGradeOutput
{
    /// <summary>
    /// 主键
    /// </summary>
    [Required]
    public int Id { get; set; }
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    [Required]
    public short GradeId { get; set; }
    /// <summary>
    /// 学段
    /// </summary>
    [Required]
    public EducationStage EducationStage { get; set; }
    /// <summary>
    /// 学制
    /// </summary>
    [Required]
    public short EducationYears { get; set; }
    /// <summary>
    /// 年份（级）
    /// </summary>
    [Required]
    public short GradeBeginYear { get; set; }
    /// <summary>
    /// 年份（届）
    /// </summary>
    [Required]
    public short GradeEndYear { get; set; }
    /// <summary>
    /// 级名
    /// </summary>
    [Required]
    public string GradeBeginName { get { return $"{GradeBeginYear}级"; } }
    /// <summary>
    /// 届名
    /// </summary>
    [Required]
    public string GradeEndName { get { return $"{GradeEndYear}届"; } }

    /// <summary>
    /// 是否需要自编监测号
    /// </summary>
    [Required]
    public bool IsRequiredSelfExamNumber { get; set; }
    /// <summary>
    /// 自编监测号长度
    /// </summary>
    [Required]
    public short SelfExamNumberLength { get; set; }
    /// <summary>
    /// 是否需要抽样
    /// </summary>
    [Required]
    public bool IsRequiredSample { get; set; }
    /// <summary>
    /// 总分分数段类型
    /// </summary>
    public ExamScoreRangeType ExamScoreRangeType { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }

    /// <summary>
    /// 年级
    /// </summary>
    [Required]
    public GradeOutput Grade { get; set; }

    /// <summary>
    /// 监测科目列表
    /// </summary>
    public List<ExamCourseLiteOutput> ExamCourses { get; set; }
}
