using System.ComponentModel.DataAnnotations;
using YD_Event.Core.Enum;
using MiniExcelLibs.Attributes;
namespace YD_Event.Application.Event.Dtos;
///
/// 成绩查询输入
///
public class ScoreQueryInput : Pagination
{
///
/// 赛事ID
///
public long EventId { get; set; }
///
/// 项目ID
///
public long? ProjectId { get; set; }
///
/// 赛事项目组别ID (优先使用)
///
public long? EventProjectGroupId { get; set; }
///
/// 组别名称 (备用,当没有EventProjectGroupId时使用)
///
public string? GroupName { get; set; }
///
/// 姓名
///
public string? Name { get; set; }
///
/// 单位名称
///
public string? UnitName { get; set; }
///
/// 性别
///
public Gender? Gender { get; set; }
}
///
/// 成绩列表输出
///
public class ScoreListOutput
{
///
/// 报名人员ID
///
public long Id { get; set; }
///
/// 姓名
///
public string Name { get; set; }
///
/// 成绩
///
public string Score { get; set; }
///
/// 单位名称
///
public string UnitName { get; set; }
///
/// 名次(数字)
///
public int Rank { get; set; }
///
/// 名次(汉字)
///
public string RankText { get; set; }
///
/// 性别
///
public int Gender { get; set; }
///
/// 成绩ID
///
public long ResultId { get; set; }
///
/// 证书ID
///
public long CertificateId { get; set; }
}
///
/// 教练/领队查询输入
///
public class CoachLeaderQueryInput : Pagination
{
///
/// 赛事ID
///
public long EventId { get; set; }
///
/// 人员类型 (2-教练, 3-领队)
///
public PersonType PersonType { get; set; }
///
/// 姓名
///
public string? Name { get; set; }
///
/// 电话
///
public string? Mobile { get; set; }
///
/// 性别
///
public Gender? Gender { get; set; }
}
///
/// 教练/领队列表输出
///
public class CoachLeaderListOutput
{
///
/// 报名人员ID
///
public long Id { get; set; }
///
/// 姓名
///
public string Name { get; set; }
///
/// 年龄
///
public int? Age { get; set; }
///
/// 性别
///
public string Gender { get; set; }
///
/// 出生日期
///
public DateTime? BirthDate { get; set; }
///
/// 身份证号
///
public string IdCardNumber { get; set; }
///
/// 电话
///
public string Mobile { get; set; }
///
/// 证书ID
///
public long CertificateId { get; set; }
}
///
/// 发放证书输入
///
public class IssueCertificateInput
{
///
/// 人员ID列表
///
public List PersonIds { get; set; }
///
/// 赛事ID
///
public long EventId { get; set; }
///
/// 证书ID(必选)
///
[Required(ErrorMessage = "请选择证书")]
public long CertificateId { get; set; }
///
/// 页面类型:1-运动员页面,2-教练页面,3-领队页面
/// 用于明确区分不同角色页面的证书生成逻辑
///
public int PageType { get; set; }
}
///
/// 发放证书结果
///
public class IssueCertificateResult
{
///
/// 成功数量
///
public int SuccessCount { get; set; }
///
/// 失败数量
///
public int FailCount { get; set; }
///
/// 失败详情
///
public List FailDetails { get; set; } = new List();
}
///
/// 成绩导入DTO
///
public class ScoreImportDto
{
///
/// 赛事地址
///
[ExcelColumnName("赛事地址")]
public string EventAddress { get; set; }
///
/// 项目名称
///
[ExcelColumnName("项目")]
public string ProjectName { get; set; }
///
/// 组别名称
///
[ExcelColumnName("组别")]
public string GroupName { get; set; }
///
/// 姓名
///
[ExcelColumnName("姓名")]
public string Name { get; set; }
///
/// 联系方式
///
[ExcelColumnName("联系方式")]
public string Contact { get; set; }
///
/// 单位名称
///
[ExcelColumnName("单位")]
public string UnitName { get; set; }
///
/// 成绩
///
[ExcelColumnName("成绩")]
public string Score { get; set; }
///
/// 名次(数字)
///
[ExcelColumnName("名次(数字)")]
public int Rank { get; set; }
///
/// 名次(汉字)
///
[ExcelColumnName("名次(汉字)")]
public string RankText { get; set; }
}
///
/// 证书导出DTO
///
public class CertificateExportDto
{
///
/// 证书编号
///
[ExcelColumnName("证书编号")]
public string CertificateNo { get; set; }
///
/// 姓名
///
[ExcelColumnName("姓名")]
public string ParticipantName { get; set; }
///
/// 项目名称
///
[ExcelColumnName("项目")]
public string ProjectName { get; set; }
///
/// 组别名称
///
[ExcelColumnName("组别")]
public string GroupName { get; set; }
///
/// 单位名称
///
[ExcelColumnName("单位")]
public string UnitName { get; set; }
///
/// 成绩
///
[ExcelColumnName("成绩")]
public string Score { get; set; }
///
/// 名次
///
[ExcelColumnName("名次")]
public int Rank { get; set; }
///
/// 证书类型
///
[ExcelColumnName("证书类型")]
public string CertificateType { get; set; }
///
/// 发放时间
///
[ExcelColumnName("发放时间")]
public DateTime? IssuedTime { get; set; }
}