using YBEE.EQM.Core;

namespace YBEE.EQM.Application;

/// <summary>
/// 机构简要输入参数
/// </summary>
public class SysOrgLiteOutput
{
    /// <summary>
    /// 主键
    /// </summary>
    [Required]
    public short Id { get; set; }
    /// <summary>
    /// 父机构ID
    /// </summary>
    [Required]
    public short Pid { get; set; }
    /// <summary>
    /// 机构类型
    /// </summary>
    [Required]
    public OrgType OrgType { get; set; }
    /// <summary>
    /// 办学性质
    /// </summary>
    [Required]
    public OrgFundSource OrgFundSource { get; set; }
    /// <summary>
    /// 学段
    /// </summary>
    [Required]
    public EducationStage EducationStage { get; set; }
    /// <summary>
    /// 城乡类型
    /// </summary>
    [Required]
    public UrbanRuralType UrbanRuralType { get; set; }
    /// <summary>
    /// 所属学区ID（机构ID）
    /// </summary>
    public short? SchoolDistrictId { get; set; }
    /// <summary>
    /// 名称
    /// </summary>
    [Required]
    public string FullName { get; set; }
    /// <summary>
    /// 名称
    /// </summary>
    [Required]
    public string Name { get; set; }
    /// <summary>
    /// 简称
    /// </summary>
    [Required]
    public string ShortName { get; set; }
    /// <summary>
    /// 简称2
    /// </summary>
    [StringLength(50)]
    public string ShortName2 { get; set; }
    /// <summary>
    /// 编码
    /// </summary>
    [Required]
    public string Code { get; set; }
    /// <summary>
    /// 带前缀唯一代码
    /// </summary>
    [Required]
    public string UniqueCode { get; set; }
    /// <summary>
    /// TQES学校ID（兼容老系统）
    /// </summary>
    public int? TqesId { get; set; }
    /// <summary>
    /// TQES学校编码（兼容老系统）
    /// </summary>
    public string TqesCode { get; set; }
    /// <summary>
    /// 排序
    /// </summary>
    [Required]
    public int Sort { get; set; }
    /// <summary>
    /// 状态
    /// </summary>
    [Required]
    public CommonStatus Status { get; set; }
}

/// <summary>
/// 机构完整输出参数
/// </summary>
public class SysOrgOutput : SysOrgLiteOutput
{
    /// <summary>
    /// 父机构ID路径
    /// </summary>
    [Required]
    public string Pids { get; set; }
    /// <summary>
    /// 经度
    /// </summary>
    public decimal Longitude { get; set; }
    /// <summary>
    /// 纬度
    /// </summary>
    public decimal Latitude { get; set; }
    /// <summary>
    /// 地址
    /// </summary>
    public string Address { get; set; }
    /// <summary>
    /// 备注
    /// </summary>
    public string Remark { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    [Required]
    public DateTime CreateTime { get; set; }
    /// <summary>
    /// 更新时间
    /// </summary>
    public DateTime? UpdateTime { get; set; }
    /// <summary>
    /// 创建人ID
    /// </summary>
    [Required]
    public int CreateSysUserId { get; set; }
    /// <summary>
    /// 修改者Id
    /// </summary>
    public int? UpdateSysUserId { get; set; }

    /// <summary>
    /// 创建人
    /// </summary>
    public SysUserLiteOutput CreateSysUser { get; set; }
    /// <summary>
    /// 更新人
    /// </summary>
    public SysUserLiteOutput UpdateSysUser { get; set; }

    /// <summary>
    /// 所属学区
    /// </summary>
    public SysOrgLiteOutput SchoolDistrict { get; set; }
}
