455 lines
9.3 KiB
C#
Raw Normal View History

2026-03-08 15:46:19 +08:00
namespace YD_Event.Application.Event.Dtos;
2026-03-06 12:10:09 +08:00
2026-03-18 13:47:34 +08:00
/// <summary>
/// 赛事记录分页查询输入
/// </summary>
2026-03-06 12:10:09 +08:00
public class EventRecordPageInput : Pagination
{
2026-03-06 12:29:07 +08:00
/// <summary>
/// 普通用户ID
/// </summary>
public long? AppUserId { get; set; }
2026-04-13 06:58:21 +08:00
/// <summary>
/// 系统用户ID
/// </summary>
public long? SysUserId { get; set; }
2026-03-06 12:29:07 +08:00
/// <summary>
/// 商户ID
/// </summary>
public long? MerchantId { get; set; }
/// <summary>
/// 赛事名称
/// </summary>
2026-03-06 12:10:09 +08:00
public string? EventName { get; set; }
2026-03-06 12:29:07 +08:00
/// <summary>
2026-04-09 23:12:51 +08:00
/// 支付状态
2026-03-06 12:29:07 +08:00
/// </summary>
2026-04-09 23:12:51 +08:00
public int? PaymentStatus { get; set; }
2026-03-06 12:29:07 +08:00
2026-03-18 13:47:34 +08:00
/// <summary>
/// 开始时间
/// </summary>
2026-03-06 12:10:09 +08:00
public DateTime? StartTime { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 结束时间
/// </summary>
2026-03-06 12:10:09 +08:00
public DateTime? EndTime { get; set; }
}
2026-03-18 13:47:34 +08:00
/// <summary>
/// 赛事记录输出
/// </summary>
2026-03-06 12:10:09 +08:00
public class EventRecordOutput
{
2026-03-18 13:47:34 +08:00
/// <summary>
/// 报名ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 赛事名称
/// </summary>
2026-03-06 12:10:09 +08:00
public string EventName { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 赛事类型
/// </summary>
public string EventType { get; set; }
/// <summary>
/// 比赛开始时间
/// </summary>
2026-03-06 12:10:09 +08:00
public DateTime StartTime { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 比赛结束时间
/// </summary>
2026-03-06 12:10:09 +08:00
public DateTime EndTime { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
2026-04-09 23:12:51 +08:00
/// 支付状态
2026-03-18 13:47:34 +08:00
/// </summary>
2026-04-09 23:12:51 +08:00
public int PaymentStatus { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 赛事ID
/// </summary>
2026-03-06 12:10:09 +08:00
public long EventId { get; set; }
2026-03-06 12:29:07 +08:00
2026-03-18 13:47:34 +08:00
/// <summary>
/// 联系人姓名
/// </summary>
2026-03-06 12:29:07 +08:00
public string ContactName { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 联系人电话
/// </summary>
2026-03-06 12:29:07 +08:00
public string ContactPhone { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 团队名称
/// </summary>
2026-03-06 12:29:07 +08:00
public string TeamName { get; set; }
2026-03-06 12:10:09 +08:00
}
2026-03-18 13:47:34 +08:00
/// <summary>
/// 证书信息输出
/// </summary>
2026-03-06 12:10:09 +08:00
public class CertificateOutput
{
2026-03-18 13:47:34 +08:00
/// <summary>
/// 证书ID
/// </summary>
2026-03-06 12:10:09 +08:00
public long Id { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 证书名称
/// </summary>
2026-03-06 12:10:09 +08:00
public string Name { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 获奖等级
/// </summary>
2026-03-06 12:10:09 +08:00
public string AwardLevel { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 证书类型
/// </summary>
2026-03-06 12:10:09 +08:00
public string CertificateType { get; set; }
2026-03-18 13:47:34 +08:00
/// <summary>
/// 图片URL
/// </summary>
2026-03-06 12:10:09 +08:00
public string ImageUrl { 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-收费)
/// </summary>
public int ChargeMode { get; set; }
/// <summary>
/// 实际支付金额
/// </summary>
public decimal ActualPaidAmount { get; set; }
/// <summary>
/// 可退款金额
/// </summary>
public decimal RefundableAmount { get; set; }
/// <summary>
/// 项目列表
/// </summary>
public List<CancelPreviewProjectDto> Projects { get; set; } = new();
/// <summary>
/// 队员列表
/// </summary>
public List<CancelPreviewMemberDto> Members { get; set; } = new();
}
/// <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>
/// 取消报名执行输出
/// </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 RegistrationDetailWithItemsDto
{
/// <summary>
/// 报名ID
/// </summary>
public long RegistrationId { get; set; }
/// <summary>
/// 赛事名称
/// </summary>
public string EventName { get; set; }
/// <summary>
/// 团队名称
/// </summary>
public string TeamName { 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>
/// 项目名称
/// </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; }
}