using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 监测教师任教科目输出参数
/// </summary>
public class ExamTeacherCourseOutput
{
    /// <summary>
    /// 主键
    /// </summary>
    [Required]
    public int Id { get; set; }
    /// <summary>
    /// 监测计划ID
    /// </summary>
    [Required]
    public int ExamPlanId { get; set; }
    /// <summary>
    /// 机构ID
    /// </summary>
    [Required]
    public short SysOrgId { get; set; }
    /// <summary>
    /// 校区ID
    /// </summary>
    public short? SysOrgBranchId { get; set; }

    /// <summary>
    /// 姓名
    /// </summary>
    [Required]
    public string Name { get; set; }
    /// <summary>
    /// 证件类型
    /// </summary>
    [Required]
    public CertificateType CertificateType { get; set; }
    /// <summary>
    /// 证件号码
    /// </summary>
    public string IdNumber { get; set; }
    /// <summary>
    /// 监测年级ID
    /// </summary>
    [Required]
    public short ExamGradeId { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    [Required]
    public short GradeId { get; set; }
    /// <summary>
    /// 班级ID
    /// </summary>
    [Required]
    public long SchoolClassId { get; set; }
    /// <summary>
    /// 班号
    /// </summary>
    [Required]
    public short ClassNumber { get; set; }
    /// <summary>
    /// 科目ID
    /// </summary>
    [Required]
    public short CourseId { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }

    /// <summary>
    /// 班级
    /// </summary>
    public SchoolClassLiteOutput SchoolClass { get; set; }
    /// <summary>
    /// 机构
    /// </summary>
    public SysOrgLiteOutput SysOrg { get; set; }
    /// <summary>
    /// 校区
    /// </summary>
    public SysOrgLiteOutput SysOrgBranch { get; set; }
    /// <summary>
    /// 监测年级
    /// </summary>
    public ExamGradeOutput ExamGrade { get; set; }
    /// <summary>
    /// 科目
    /// </summary>
    public CourseOutput Course { get; set; }
}

/// <summary>
/// 批量导入监测教师任教科目输入参数
/// </summary>
public class UploadExamTeacherCourseOutput : UploadExamDataBase
{
    /// <summary>
    /// 姓名
    /// </summary>
    [Required]
    public string Name { get; set; }
    /// <summary>
    /// 证件类型
    /// </summary>
    [Required]
    public CertificateType CertificateType { get; set; }
    /// <summary>
    /// 证件类型名称
    /// </summary>
    public string CertificateTypeName { get; set; } = "";
    /// <summary>
    /// 证件号码
    /// </summary>
    public string IdNumber { get; set; } = "";
    /// <summary>
    /// 科目ID
    /// </summary>
    public short? CourseId { get; set; }
    /// <summary>
    /// 科目名称
    /// </summary>
    public string CourseName { get; set; } = "";
    /// <summary>
    /// 监测年级ID
    /// </summary>
    public int? ExamGradeId { get; set; }
    /// <summary>
    /// 年级ID
    /// </summary>
    public short? GradeId { get; set; }
    /// <summary>
    /// 班级号
    /// </summary>
    public short? ClassNumber { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }
}