using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 监测方案输出参数
/// </summary>
public class ExamSampleOutput : DEntityOutput
{
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 序，同一监测从1开始计数
    /// </summary>
    [Required]
    public short Sequence { get; set; }
    /// <summary>
    /// 名称
    /// </summary>
    [Required]
    public string Name { get; set; }
    /// <summary>
    /// 全称
    /// </summary>
    [Required]
    public string FullName { get; set; }
    /// <summary>
    /// 简称
    /// </summary>
    [Required]
    public string ShortName { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }
    /// <summary>
    /// 状态
    /// </summary>
    [Required]
    public ExamSampleStatus Status { get; set; }

    /// <summary>
    /// 抽样配置
    /// </summary>
    [Required]
    public ExamSampleConfig Config { get; set; }
    /// <summary>
    /// 成绩引用监测计划ID
    /// </summary>
    public int? ExamScoreRefExamPlanId { get; set; }

    /// <summary>
    /// 是否已固定监测抽样方案
    /// </summary>
    [Required]
    public bool IsFixedExamSample { get; set; }
    /// <summary>
    /// 学段
    /// </summary>
    [Required]
    public EducationStage EducationStage { get; set; }


    /// <summary>
    /// 是否选中使用的方案
    /// </summary>
    [Required]
    public bool IsSelected { get; set; }
    /// <summary>
    /// 选中使用时间
    /// </summary>
    public DateTime? SelectedTime { get; set; }
    /// <summary>
    /// 选中使用操作用户ID
    /// </summary>
    public int? SelectedSysUserId { get; set; }
    /// <summary>
    /// 选中使用操作用户
    /// </summary>
    public SysUserLiteOutput SelectedSysUser { get; set; }

    /// <summary>
    /// 成绩引用监测计划
    /// </summary>
    public ExamPlanLiteOutput ExamScoreRefExamPlan { get; set; }
}

/// <summary>
/// 带监测计划的抽样方案输出参数
/// </summary>
public class ExamSamplePlanOutput : ExamSampleOutput
{
    public ExamPlanOutput ExamPlan { get; set; }
}

/// <summary>
/// 抽样数量统计输出参数
/// </summary>
public class ExamSampleCountOutput
{
    /// <summary>
    /// 类型ID
    /// </summary>
    public int TypeId { get;set; }
    /// <summary>
    /// 类型名称
    /// </summary>
    public string TypeName { get; set; }
    /// <summary>
    /// 机构ID
    /// </summary>
    public short SysOrgId { get; set; }
    /// <summary>
    /// 机构代码
    /// </summary>
    public string SysOrgCode { get; set; }
    /// <summary>
    /// 机构名称
    /// </summary>
    public string SysOrgName { get; set; }
    /// <summary>
    /// 机构全称
    /// </summary>
    public string SysOrgFullName { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    public short GradeId { get; set; }
    /// <summary>
    /// 年级名称
    /// </summary>
    public string GradeName { get; set; }
    /// <summary>
    /// 班级ID
    /// </summary>
    public long SchoolClassId { get; set; }
    /// <summary>
    /// 班级号
    /// </summary>
    public short ClassNumber { get; set; }
    /// <summary>
    /// 学生总数
    /// </summary>
    public int TotalStudentCount { get; set; }
    /// <summary>
    /// 区测学生数
    /// </summary>
    public int CenterStudentCount { get; set; }
    /// <summary>
    /// 校测学生数
    /// </summary>
    public int SchoolStudentCount { get; set; }
}