using System.ComponentModel.DataAnnotations;
using YD_Event.Core.Enum;
using YD_Event.Application.Common.Excel;
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 (0 表示没有 EventRegistrationPerson 记录,只有 TeamMember 记录)
///
public long Id { get; set; }
///
/// 用户ID (对应 AppUser.Id)
///
public long UserId { get; set; }
///
/// 姓名
///
public string Name { get; set; }
///
/// 年龄
///
public int? Age { get; set; }
///
/// 性别
///
public int Gender { get; set; }
///
/// 出生日期
///
public DateTime? BirthDate { get; set; }
///
/// 身份证号
///
public string? IdCardNumber { get; set; }
///
/// 身份证正面图片URL
///
public string? IdCardImageUrl { get; set; }
///
/// 身份证背面图片URL
///
public string? IdCardBackImageUrl { 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
{
///
/// 报名ID(唯一标识符)
///
[ExcelHeader("报名ID")]
public long? RegistrationItemId { get; set; }
///
/// 赛事地址
///
[ExcelHeader("赛事地址")]
public string EventAddress { get; set; }
///
/// 项目名称
///
[ExcelHeader("项目")]
public string ProjectName { get; set; }
///
/// 组别名称
///
[ExcelHeader("组别")]
public string GroupName { get; set; }
///
/// 姓名
///
[ExcelHeader("姓名")]
public string Name { get; set; }
///
/// 联系方式
///
[ExcelHeader("联系方式")]
public string Contact { get; set; }
///
/// 单位名称
///
[ExcelHeader("单位")]
public string UnitName { get; set; }
///
/// 成绩
///
[ExcelHeader("成绩")]
public string Score { get; set; }
///
/// 名次(数字)
///
[ExcelHeader("名次(数字)")]
public int Rank { get; set; }
///
/// 名次(汉字)
///
[ExcelHeader("名次(汉字)")]
public string RankText { get; set; }
}