using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 向抽样方案中添加抽样学生
/// </summary>
public class AddExamSampleStudentInput
{
    /// <summary>
    /// 抽样方案ID
    /// </summary>
    [Required]
    public int ExamSampleId { get; set; }
    /// <summary>
    /// 监测样本学生ID
    /// </summary>
    [Required]
    public long ExamStudentId { get; set; }
    /// <summary>
    /// 监测号
    /// </summary>
    [Required, StringLength(20)]
    public string ExamNumber { get; set; } = "";
    /// <summary>
    /// 序号
    /// </summary>
    [Required]
    public int Sequence { get; set; } = 0;
    /// <summary>
    /// 监测抽样类型
    /// </summary>
    [Required]
    public ExamSampleType ExamSampleType { get; set; } = ExamSampleType.SCHOOL_EXAM;
    /// <summary>
    /// 是否为特殊学生
    /// </summary>
    [Required]
    public bool IsSpecialStudent { get; set; } = false;
    /// <summary>
    /// 前期总成绩
    /// </summary>
    [Required]
    public decimal PreTotalScore { get; set; } = 0;
}

/// <summary>
/// 分页查询抽样学生
/// </summary>
public class ExamSampleStudentPageInput : PageInputBase
{
    /// <summary>
    /// 监测抽样ID
    /// </summary>
    [Required]
    public int ExamSampleId { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    public short? GradeId { get; set; }
    /// <summary>
    /// 班级ID
    /// </summary>
    public short? ClassNumber { get; set; }
    /// <summary>
    /// 学生姓名
    /// </summary>
    public string Name { get; set; }
    /// <summary>
    /// 证件类型
    /// </summary>
    public CertificateType? CertificateType { get; set; }
    /// <summary>
    /// 证件号码
    /// </summary>
    public string IdNumber { get; set; }
    /// <summary>
    /// 监测号
    /// </summary>
    public string ExamNumber { get; set; }
    /// <summary>
    /// 校区ID
    /// </summary>
    public short? SysOrgBranchId { get; set; }
    /// <summary>
    /// 抽样类型
    /// </summary>
    public ExamSampleType? ExamSampleType { get; set;}
}
/// <summary>
/// 查询监测学生信息输入参数
/// </summary>
public class QueryExamSampleStudentInput
{
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 监测年级ID
    /// </summary>
    [Required]
    public int ExamGradeId { get; set; }
    /// <summary>
    /// 校区ID
    /// </summary>
    public short? SysOrgBranchId { get; set; }
    /// <summary>
    /// 班号
    /// </summary>
    [Required]
    public short ClassNumber { get; set; }
    /// <summary>
    /// 监测号
    /// </summary>
    [Required, StringLength(20)]
    public string ExamNumber { get; set; }
}