962 lines
21 KiB
C#
962 lines
21 KiB
C#
namespace YD_Event.Application.Event.Dtos;
|
||
|
||
/// <summary>
|
||
/// 赛事记录分页查询输入
|
||
/// </summary>
|
||
public class EventRecordPageInput : Pagination
|
||
{
|
||
/// <summary>
|
||
/// 普通用户ID
|
||
/// </summary>
|
||
public long? AppUserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 系统用户ID
|
||
/// </summary>
|
||
public long? SysUserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 商户ID
|
||
/// </summary>
|
||
public long? MerchantId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事名称
|
||
/// </summary>
|
||
public string? EventName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 支付状态
|
||
/// </summary>
|
||
public int? PaymentStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 开始时间
|
||
/// </summary>
|
||
public DateTime? StartTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结束时间
|
||
/// </summary>
|
||
public DateTime? EndTime { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 赛事记录输出
|
||
/// </summary>
|
||
public class EventRecordOutput
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事名称
|
||
/// </summary>
|
||
public string EventName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事类型
|
||
/// </summary>
|
||
public string EventType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 比赛开始时间
|
||
/// </summary>
|
||
public DateTime StartTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 比赛结束时间
|
||
/// </summary>
|
||
public DateTime EndTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 支付状态
|
||
/// </summary>
|
||
public int PaymentStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事ID
|
||
/// </summary>
|
||
public long EventId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 联系人姓名
|
||
/// </summary>
|
||
public string ContactName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 联系人电话
|
||
/// </summary>
|
||
public string ContactPhone { get; set; }
|
||
|
||
/// <summary>
|
||
/// 团队名称
|
||
/// </summary>
|
||
public string TeamName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书列表(二级列表)
|
||
/// </summary>
|
||
public List<EventCertificateItemOutput> Items { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 该赛事的所有报名记录ID列表
|
||
/// </summary>
|
||
public List<long> RegistrationIds { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 赛事创建时间(用于排序)
|
||
/// </summary>
|
||
public DateTime EventCreatedTime { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 证书项输出(二级列表)
|
||
/// </summary>
|
||
public class EventCertificateItemOutput
|
||
{
|
||
/// <summary>
|
||
/// 证书ID
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 参赛人员姓名
|
||
/// </summary>
|
||
public string ParticipantName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 角色(运动员/教练/领队)
|
||
/// </summary>
|
||
public string Role { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书URL(直接点击查看)
|
||
/// </summary>
|
||
public string CertificateUrl { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书编号
|
||
/// </summary>
|
||
public string CertificateNo { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书类型
|
||
/// </summary>
|
||
public int CertificateType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 颁发时间
|
||
/// </summary>
|
||
public DateTime IssuedTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩
|
||
/// </summary>
|
||
public string? Score { get; set; }
|
||
|
||
/// <summary>
|
||
/// 名次
|
||
/// </summary>
|
||
public int? Rank { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 报名项目输出
|
||
/// </summary>
|
||
public class EventRegistrationItemOutput
|
||
{
|
||
/// <summary>
|
||
/// 报名项目ID
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型名称
|
||
/// </summary>
|
||
public string ProjectTypeName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 报名人数
|
||
/// </summary>
|
||
public int PersonCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩
|
||
/// </summary>
|
||
public string? Score { get; set; }
|
||
|
||
/// <summary>
|
||
/// 名次
|
||
/// </summary>
|
||
public string? Rank { get; set; }
|
||
|
||
/// <summary>
|
||
/// 队员姓名列表(逗号分隔)
|
||
/// </summary>
|
||
public string? MemberNames { get; set; }
|
||
|
||
/// <summary>
|
||
/// 队员ID列表
|
||
/// </summary>
|
||
public List<long>? MemberIds { get; set; }
|
||
|
||
/// <summary>
|
||
/// 队员详细信息列表
|
||
/// </summary>
|
||
public List<MemberInfo>? Members { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否为个人项目
|
||
/// </summary>
|
||
public bool IsIndividualProject { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型枚举值
|
||
/// </summary>
|
||
public int ProjectType { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 队员信息
|
||
/// </summary>
|
||
public class MemberInfo
|
||
{
|
||
/// <summary>
|
||
/// 队员ID
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 姓名
|
||
/// </summary>
|
||
public string Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 人员类型:1-运动员,2-教练,3-领队
|
||
/// </summary>
|
||
public int PersonType { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 证书信息输出
|
||
/// </summary>
|
||
public class CertificateOutput
|
||
{
|
||
/// <summary>
|
||
/// 证书ID
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书名称
|
||
/// </summary>
|
||
public string Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 获奖等级
|
||
/// </summary>
|
||
public string AwardLevel { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书类型
|
||
/// </summary>
|
||
public string CertificateType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 图片URL
|
||
/// </summary>
|
||
public string ImageUrl { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 证书列表项输出
|
||
/// </summary>
|
||
public class CertificateListItemDTO
|
||
{
|
||
/// <summary>
|
||
/// 证书ID
|
||
/// </summary>
|
||
public long CertificateId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书URL
|
||
/// </summary>
|
||
public string CertificateUrl { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书编号
|
||
/// </summary>
|
||
public string CertificateNo { get; set; }
|
||
|
||
/// <summary>
|
||
/// 参赛人员姓名
|
||
/// </summary>
|
||
public string ParticipantName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 报名项目ID
|
||
/// </summary>
|
||
public long RegistrationItemId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 角色(运动员/教练/领队)
|
||
/// </summary>
|
||
public string Role { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书类型
|
||
/// </summary>
|
||
public int CertificateType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 颁发时间
|
||
/// </summary>
|
||
public DateTime IssuedTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成绩
|
||
/// </summary>
|
||
public string? Score { get; set; }
|
||
|
||
/// <summary>
|
||
/// 名次
|
||
/// </summary>
|
||
public int? Rank { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名预览输入
|
||
/// </summary>
|
||
public class CancelPreviewInput
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
public long RegistrationId { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名预览输出
|
||
/// </summary>
|
||
public class CancelPreviewOutput
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
public long RegistrationId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事名称
|
||
/// </summary>
|
||
public string EventName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 团队名称
|
||
/// </summary>
|
||
public string TeamName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 收费模式(0-免费,1-定价(赛事),2-单价(赛事),3-单价(项目))
|
||
/// </summary>
|
||
public int ChargeMode { get; set; }
|
||
|
||
/// <summary>
|
||
/// 实际支付金额
|
||
/// </summary>
|
||
public decimal ActualPaidAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 可退款金额(全部取消时)
|
||
/// </summary>
|
||
public decimal RefundableAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 历史已退款金额
|
||
/// </summary>
|
||
public decimal RefundedAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 当前选择的退款金额(动态计算)
|
||
/// </summary>
|
||
public decimal CurrentRefundAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 退款规则列表
|
||
/// </summary>
|
||
public List<RefundRuleDto> RefundRules { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 当前适用的退款规则描述
|
||
/// </summary>
|
||
public string? ApplicableRefundRule { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目列表(包含组别和团队信息)
|
||
/// </summary>
|
||
public List<CancelPreviewProjectDetailDto> ProjectDetails { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 项目列表(保持兼容旧版)
|
||
/// </summary>
|
||
public List<CancelPreviewProjectDto> Projects { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 队员列表(保持兼容旧版)
|
||
/// </summary>
|
||
public List<CancelPreviewMemberDto> Members { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 支付方式(1-线下 2-线上)
|
||
/// </summary>
|
||
public int PaymentMethod { get; set; }
|
||
|
||
/// <summary>
|
||
/// 支付状态(0-未支付 1-已支付 2-支付中 3-退款中 4-已取消)
|
||
/// </summary>
|
||
public int PaymentStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否需要填写收款人信息(线下支付且已支付时需要)
|
||
/// </summary>
|
||
public bool NeedPayeeInfo { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名项目详情DTO(包含组别和团队信息)
|
||
/// </summary>
|
||
public class CancelPreviewProjectDetailDto
|
||
{
|
||
/// <summary>
|
||
/// 项目ID
|
||
/// </summary>
|
||
public long ProjectId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型(个人/团队)
|
||
/// </summary>
|
||
public string ProjectType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 人数
|
||
/// </summary>
|
||
public int PersonCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 单价
|
||
/// </summary>
|
||
public decimal UnitPrice { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组别列表
|
||
/// </summary>
|
||
public List<CancelPreviewGroupDto> Groups { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名组别DTO
|
||
/// </summary>
|
||
public class CancelPreviewGroupDto
|
||
{
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 报名项目ID
|
||
/// </summary>
|
||
public long RegistrationItemId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型名称
|
||
/// </summary>
|
||
public string ProjectTypeName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 人数
|
||
/// </summary>
|
||
public int PersonCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 该报名项目的单价
|
||
/// </summary>
|
||
public decimal UnitPrice { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出生日期起始日期(年龄限制)
|
||
/// </summary>
|
||
public DateTime? BirthDateStart { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出生日期结束日期(年龄限制)
|
||
/// </summary>
|
||
public DateTime? BirthDateEnd { get; set; }
|
||
|
||
/// <summary>
|
||
/// 性别要求
|
||
/// </summary>
|
||
public Gender? GenderRequirement { get; set; }
|
||
|
||
/// <summary>
|
||
/// 团队列表(个人项目只有一个"无团队"条目)
|
||
/// </summary>
|
||
public List<CancelPreviewTeamDto> Teams { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名团队DTO
|
||
/// </summary>
|
||
public class CancelPreviewTeamDto
|
||
{
|
||
/// <summary>
|
||
/// 团队名称
|
||
/// </summary>
|
||
public string TeamName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 团队索引(用于标识不同的团队)
|
||
/// </summary>
|
||
public int TeamIndex { get; set; }
|
||
|
||
/// <summary>
|
||
/// 所属的报名项目ID
|
||
/// </summary>
|
||
public long RegistrationItemId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 队员列表
|
||
/// </summary>
|
||
public List<CancelPreviewMemberDto> Members { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 退款规则DTO
|
||
/// </summary>
|
||
public class RefundRuleDto
|
||
{
|
||
/// <summary>
|
||
/// 距离比赛开始天数(起)
|
||
/// </summary>
|
||
public int DayStart { get; set; }
|
||
|
||
/// <summary>
|
||
/// 距离比赛开始天数(止)
|
||
/// </summary>
|
||
public int DayEnd { get; set; }
|
||
|
||
/// <summary>
|
||
/// 扣除比例(%)
|
||
/// </summary>
|
||
public decimal DeductPercentage { get; set; }
|
||
|
||
/// <summary>
|
||
/// 退款备注
|
||
/// </summary>
|
||
public string? Remark { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名项目DTO
|
||
/// </summary>
|
||
public class CancelPreviewProjectDto
|
||
{
|
||
/// <summary>
|
||
/// 项目ID
|
||
/// </summary>
|
||
public long ProjectId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型(个人/团队)
|
||
/// </summary>
|
||
public string ProjectType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 人数
|
||
/// </summary>
|
||
public int PersonCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 单价
|
||
/// </summary>
|
||
public decimal UnitPrice { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名队员DTO
|
||
/// </summary>
|
||
public class CancelPreviewMemberDto
|
||
{
|
||
/// <summary>
|
||
/// 队员ID
|
||
/// </summary>
|
||
public long MemberId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 姓名
|
||
/// </summary>
|
||
public string Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否为队长
|
||
/// </summary>
|
||
public bool IsLeader { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名执行输入
|
||
/// </summary>
|
||
public class CancelExecuteInput
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
public long RegistrationId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 取消类型(0-全部取消,1-部分取消)
|
||
/// </summary>
|
||
public int CancelType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 取消原因
|
||
/// </summary>
|
||
public string CancelReason { get; set; }
|
||
|
||
/// <summary>
|
||
/// 要取消的队员ID列表(部分取消时使用)
|
||
/// </summary>
|
||
public List<long>? PersonIds { get; set; }
|
||
|
||
/// <summary>
|
||
/// 要取消的团队列表(团队项目部分取消时使用)
|
||
/// 每个元素格式: {RegistrationItemId}_{TeamIndex}
|
||
/// </summary>
|
||
public List<string>? CancelTeams { get; set; }
|
||
|
||
/// <summary>
|
||
/// 当前计算的退款金额
|
||
/// </summary>
|
||
public decimal CalculatedRefundAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 收款人姓名(线下支付且已支付时必填)
|
||
/// </summary>
|
||
public string? PayeeName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 收款人开户行(线下支付且已支付时必填)
|
||
/// </summary>
|
||
public string? PayeeBankName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 收款人银行卡号(线下支付且已支付时必填)
|
||
/// </summary>
|
||
public string? PayeeBankAccount { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 取消报名执行输出
|
||
/// </summary>
|
||
public class CancelExecuteOutput
|
||
{
|
||
/// <summary>
|
||
/// 是否成功
|
||
/// </summary>
|
||
public bool Success { get; set; }
|
||
|
||
/// <summary>
|
||
/// 消息
|
||
/// </summary>
|
||
public string Message { get; set; }
|
||
|
||
/// <summary>
|
||
/// 退款金额
|
||
/// </summary>
|
||
public decimal RefundAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 退款单号
|
||
/// </summary>
|
||
public string? RefundNo { get; set; }
|
||
|
||
/// <summary>
|
||
/// 取消时间
|
||
/// </summary>
|
||
public DateTime CancelTime { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 计算退款金额请求
|
||
/// </summary>
|
||
public class CalculateRefundAmountInput
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
public long RegistrationId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 取消类型(0-全部取消,1-部分取消)
|
||
/// </summary>
|
||
public int CancelType { get; set; }
|
||
|
||
/// <summary>
|
||
/// 要取消的队员ID列表(部分取消时使用)
|
||
/// </summary>
|
||
public List<long>? PersonIds { get; set; }
|
||
|
||
/// <summary>
|
||
/// 要取消的团队列表(团队项目部分取消时使用)
|
||
/// 每个元素格式: {RegistrationItemId}_{TeamIndex}
|
||
/// </summary>
|
||
public List<string>? CancelTeams { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 计算退款金额输出
|
||
/// </summary>
|
||
public class CalculateRefundAmountOutput
|
||
{
|
||
/// <summary>
|
||
/// 计算后的退款金额
|
||
/// </summary>
|
||
public decimal refundAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 剩余可退款金额
|
||
/// </summary>
|
||
public decimal refundableAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 历史已退款金额
|
||
/// </summary>
|
||
public decimal refundedAmount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 实际支付金额
|
||
/// </summary>
|
||
public decimal actualPaidAmount { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 参赛记录详情(包含项目和队员)
|
||
/// </summary>
|
||
public class RegistrationDetailWithItemsDto
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
public long RegistrationId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事ID
|
||
/// </summary>
|
||
public long EventId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事名称
|
||
/// </summary>
|
||
public string EventName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 团队名称
|
||
/// </summary>
|
||
public string TeamName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 报名结束时间
|
||
/// </summary>
|
||
public DateTime RegistrationEndTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事状态
|
||
/// </summary>
|
||
public int EventStatus { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目列表
|
||
/// </summary>
|
||
public List<RegistrationItemWithMembersDto> Items { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 报名项目(包含队员)
|
||
/// </summary>
|
||
public class RegistrationItemWithMembersDto
|
||
{
|
||
/// <summary>
|
||
/// 报名项目ID
|
||
/// </summary>
|
||
public long RegistrationItemId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目ID
|
||
/// </summary>
|
||
public long ProjectId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 赛事项目组别ID(用于验证)
|
||
/// </summary>
|
||
public long EventProjectGroupId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目名称
|
||
/// </summary>
|
||
public string ProjectName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 组别名称
|
||
/// </summary>
|
||
public string GroupName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目类型
|
||
/// </summary>
|
||
public string ProjectTypeName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 人数
|
||
/// </summary>
|
||
public int PersonCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目完成人数(从Project表读取)
|
||
/// </summary>
|
||
public int ProjectCompletionCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出生日期起始日期(年龄限制)
|
||
/// </summary>
|
||
public DateTime? BirthDateStart { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出生日期结束日期(年龄限制)
|
||
/// </summary>
|
||
public DateTime? BirthDateEnd { get; set; }
|
||
|
||
/// <summary>
|
||
/// 性别要求
|
||
/// </summary>
|
||
public Gender? GenderRequirement { get; set; }
|
||
|
||
/// <summary>
|
||
/// 队员列表
|
||
/// </summary>
|
||
public List<RegistrationPersonDto> Members { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新参赛队员输入
|
||
/// </summary>
|
||
public class UpdateRegistrationMembersInput
|
||
{
|
||
/// <summary>
|
||
/// 报名ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "报名ID不能为空")]
|
||
public long RegistrationId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 项目队员更新列表
|
||
/// </summary>
|
||
[Required(ErrorMessage = "项目队员列表不能为空")]
|
||
public List<UpdateItemMembersInput> Items { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 项目队员更新
|
||
/// </summary>
|
||
public class UpdateItemMembersInput
|
||
{
|
||
/// <summary>
|
||
/// 报名项目ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "报名项目ID不能为空")]
|
||
public long RegistrationItemId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 队员列表
|
||
/// </summary>
|
||
[Required(ErrorMessage = "队员列表不能为空")]
|
||
public List<UpdatePersonInput> Members { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新队员信息
|
||
/// </summary>
|
||
public class UpdatePersonInput
|
||
{
|
||
/// <summary>
|
||
/// 用户ID(新队员)
|
||
/// </summary>
|
||
public long? UserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 姓名
|
||
/// </summary>
|
||
public string? Name { get; set; }
|
||
|
||
/// <summary>
|
||
/// 性别
|
||
/// </summary>
|
||
public Gender? Gender { get; set; }
|
||
|
||
/// <summary>
|
||
/// 身份证号
|
||
/// </summary>
|
||
public string? IdCardNumber { get; set; }
|
||
|
||
/// <summary>
|
||
/// 出生日期
|
||
/// </summary>
|
||
public DateTime? BirthDate { get; set; }
|
||
|
||
/// <summary>
|
||
/// 手机号
|
||
/// </summary>
|
||
public string? Mobile { get; set; }
|
||
}
|