using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 监测科目简要输出参数
/// </summary>
public class ExamCourseLiteOutput
{
    /// <summary>
    /// 主键
    /// </summary>
    [Required]
    public int Id { get; set; }
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 监测年级ID
    /// </summary>
    [Required]
    public int ExamGradeId { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    [Required]
    public short GradeId { get; set; }
    /// <summary>
    /// 科目ID
    /// </summary>
    [Required]
    public short CourseId { get; set; }
    /// <summary>
    /// 总分
    /// </summary>
    [Required]
    public decimal TotalScore { get; set; }

    /// <summary>
    /// 科目
    /// </summary>
    public CourseMiniOutput Course { get; set; }

    /// <summary>
    /// 成绩上报配置
    /// </summary>
    public ExamCourseScoreReportConfig ScoreReportConfig { get; set; }
    /// <summary>
    /// 分数段类型
    /// </summary>
    public ExamScoreRangeType ExamScoreRangeType { get; set; }
}


/// <summary>
/// 监测科目输出参数
/// </summary>
public class ExamCourseOutput : DEntityOutput
{
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 监测年级ID
    /// </summary>
    [Required]
    public int ExamGradeId { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    [Required]
    public short GradeId { get; set; }
    /// <summary>
    /// 科目ID
    /// </summary>
    [Required]
    public short CourseId { get; set; }
    /// <summary>
    /// 总分
    /// </summary>
    [Required]
    public decimal TotalScore { get; set; }
    /// <summary>
    /// 分数段类型
    /// </summary>
    public ExamScoreRangeType ExamScoreRangeType { get; set; }

    /// <summary>
    /// 科目
    /// </summary>
    public CourseLiteOutput Course { get; set; }
    /// <summary>
    /// 成绩上报配置
    /// </summary>
    public ExamCourseScoreReportConfig ScoreReportConfig { get; set; }
    /// <summary>
    /// 监测年级
    /// </summary>
    public ExamGradeOutput ExamGrade { get; set; }
}
