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