using System.Collections.Generic;

namespace YBEE.EQM.Core;

/// <summary>
/// 监测抽样配置
/// </summary>
public class ExamSampleConfig
{
    /// <summary>
    /// 抽样百分比
    /// </summary>
    public double Percent { get; set; } = 0;
    /// <summary>
    /// 开启年级只有一个班控制
    /// </summary>
    public bool IsEnabledOnlyOneClassStudentMin { get; set; } = false;
    /// <summary>
    /// 年级只有一个班时最少学生数
    /// </summary>
    public int OnlyOneClassStudentMin { get; set; } = 0;
    /// <summary>
    /// 开启年级多于一个班控制
    /// </summary>
    public bool IsEnabledGradeNoSampleStudentMin { get; set; } = false;
    /// <summary>
    /// 年级多于一个班时未抽样最少学生数
    /// </summary>
    public int GradeNoSampleStudentMin { get; set; } = 0;
    /// <summary>
    /// 开启班级最少学生数控制
    /// </summary>
    public bool IsEnabledClassStudentMin { get; set; } = false;
    /// <summary>
    /// 班级抽样最少学生数
    /// </summary>
    public int ClassStudentMin { get; set; } = 0;
    /// <summary>
    /// 是否排除特殊学生
    /// </summary>
    public bool IsExcludeSpecialStudent { get; set; } = true;
    /// <summary>
    /// 是否年级内随机排序
    /// </summary>
    public bool IsGradeSeatNumberRandom { get; set; } = false;
    /// <summary>
    /// 排除特殊学生必须是审核通过的，否则只要提交上报的就算
    /// </summary>
    public bool SpecialStudentMustApproved { get; set; } = false;

    /// <summary>
    /// 起始抽样位置
    /// </summary>
    public int StartPosition { get; set; } = 1;
    /// <summary>
    /// 抽样间距，抽样的两个学生之间隔多少人
    /// </summary>
    public int Interval { get; set; } = 2;

    /// <summary>
    /// 是否随机抽样
    /// </summary>
    public bool IsRandomSampling { get; set; } = false;

    /// <summary>
    /// 全抽班级ID列表
    /// </summary>
    public List<long> SampleAllSchoolClassIds { get; set; } = [];
    /// <summary>
    /// 排除不抽样学校ID列表
    /// </summary>
    public List<short> ExcludeSysOrgIds { get; set; } = [];
}
