using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 学校班级简要输出参数
/// </summary>
public class SchoolClassLiteOutput
{
    /// <summary>
    /// 主键
    /// </summary>
    [Required]
    public long Id { get; set; }
    /// <summary>
    /// 学校ID
    /// </summary>
    [Required]
    public short SysOrgId { get; set; }
    /// <summary>
    /// 校区ID
    /// </summary>
    public short? SysOrgBranchId { get; set; }
    /// <summary>
    /// 入学年份（级）
    /// </summary>
    [Required]
    public short GradeBeginYear { get; set; }
    /// <summary>
    /// 毕业年份（级）
    /// </summary>
    [Required]
    public short GradeEndYear { get; set; }
    /// <summary>
    /// 学制
    /// </summary>
    [Required]
    public short EducationYears { get; set; }
    /// <summary>
    /// 学段
    /// </summary>
    [Required]
    public EducationStage EducationStage { get; set; }
    /// <summary>
    /// 班号
    /// </summary>
    [Required]
    public short ClassNumber { get; set; }
    /// <summary>
    /// 名称：入学年份+级+班号+班，如2025级1班
    /// </summary>
    [Required]
    public string Name { get; set; }
    /// <summary>
    /// 全称：学段名+入学年份+级+班号+班，如小学2025级1班
    /// </summary>
    [Required]
    public string FullName { get; set; }
    /// <summary>
    /// 简称：班号+班，如1班
    /// </summary>
    [Required]
    public string ShortName { get; set; }

    /// <summary>
    /// 校区
    /// </summary>
    public SysOrgLiteOutput SysOrgBranch { get; set; }
}

/// <summary>
/// 学校班级输出参数
/// </summary>
public class SchoolClassOutput : DEntityOutput<long>
{
    /// <summary>
    /// 学校ID
    /// </summary>
    [Required]
    public short SysOrgId { get; set; }
    /// <summary>
    /// 校区ID
    /// </summary>
    public short? SysOrgBranchId { get; set; }
    /// <summary>
    /// 入学年份（级）
    /// </summary>
    [Required]
    public short GradeBeginYear { get; set; }
    /// <summary>
    /// 毕业年份（级）
    /// </summary>
    [Required]
    public short GradeEndYear { get; set; }
    /// <summary>
    /// 学制
    /// </summary>
    [Required]
    public short EducationYears { get; set; }
    /// <summary>
    /// 学段
    /// </summary>
    [Required]
    public EducationStage EducationStage { get; set; }
    /// <summary>
    /// 班号
    /// </summary>
    [Required]
    public short ClassNumber { get; set; }
    /// <summary>
    /// 名称：入学年份+级+班号+班，如2025级1班
    /// </summary>
    [Required]
    public string Name { get; set; }
    /// <summary>
    /// 全称：学段名+入学年份+级+班号+班，如小学2025级1班
    /// </summary>
    [Required]
    public string FullName { get; set; }
    /// <summary>
    /// 简称：班号+班，如1班
    /// </summary>
    [Required]
    public string ShortName { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }

    /// <summary>
    /// 学校信息
    /// </summary>
    public SysOrgLiteOutput SysOrg { get; set; }
    /// <summary>
    /// 校区信息
    /// </summary>
    public SysOrgLiteOutput SysOrgBranch { get; set; }
}
