2026-03-01 22:32:44 +08:00

370 lines
8.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.ComponentModel.DataAnnotations;
using YD_Event.Core.Enum;
using YD_Event.Application.Project.Dtos;
namespace YD_Event.Application.Event.Dtos;
/// <summary>
/// 赛事查询输入
/// </summary>
public class EventQueryInput : Pagination
{
/// <summary>
/// 赛事名称
/// </summary>
public string? EventName { get; set; }
/// <summary>
/// 赛事类型
/// </summary>
public EventFormat? EventType { get; set; }
/// <summary>
/// 收费模式
/// </summary>
public ChargeMode? ChargeMode { get; set; }
/// <summary>
/// 赛事状态
/// </summary>
public EventStatus? EventStatus { get; set; }
/// <summary>
/// 报名开始时间
/// </summary>
public DateTime? RegistrationStartTime { get; set; }
/// <summary>
/// 报名结束时间
/// </summary>
public DateTime? RegistrationEndTime { get; set; }
/// <summary>
/// 比赛开始时间
/// </summary>
public DateTime? MatchStartTime { get; set; }
/// /// <summary>
/// 比赛结束时间
/// </summary>
public DateTime? MatchEndTime { get; set; }
}
/// <summary>
/// 赛事导出输入
/// </summary>
public class EventExportInput : EventQueryInput
{
/// <summary>
/// 导出字段列表(如:赛事名称,赛事类型...)
/// </summary>
public List<string>? ExportFields { get; set; }
}
/// <summary>
/// 赛事列表输出
/// </summary>
public class EventListOutput
{
public long Id { get; set; }
/// <summary>
/// 赛事名称
/// </summary>
public string EventName { get; set; }
/// <summary>
/// 封面
/// </summary>
public string? CoverImage { get; set; }
/// <summary>
/// 赛事类型
/// </summary>
public EventFormat EventType { get; set; }
/// <summary>
/// 报名方式
/// </summary>
public RegistrationType RegistrationType { get; set; }
/// <summary>
/// 收费模式
/// </summary>
public ChargeMode ChargeMode { get; set; }
/// <summary>
/// 收款账户(暂预留)
/// </summary>
public string? AccountName { get; set; }
/// <summary>
/// 赛事状态
/// </summary>
public EventStatus EventStatus { get; set; }
/// <summary>
/// 报名开始时间
/// </summary>
public DateTime RegistrationStartTime { get; set; }
/// <summary>
/// 报名结束时间
/// </summary>
public DateTime RegistrationEndTime { get; set; }
/// <summary>
/// 比赛开始时间
/// </summary>
public DateTime MatchStartTime { get; set; }
/// <summary>
/// 比赛结束时间
/// </summary>
public DateTime MatchEndTime { get; set; }
}
/// <summary>
/// 参与单位输入
/// </summary>
public class EventParticipantInput
{
public string? HostName { get; set; }
public string? HostLogoUrl { get; set; }
public string? OrganizerName { get; set; }
public string? OrganizerLogoUrl { get; set; }
public string? CoOrganizerName { get; set; }
public string? CoOrganizerLogoUrl { get; set; }
public string? SponsorName { get; set; }
public string? SponsorLogoUrl { get; set; }
}
/// <summary>
/// 添加赛事输入
/// </summary>
public class AddEventInput
{
/// <summary>
/// 赛事名称
/// </summary>
[Required(ErrorMessage = "赛事名称不能为空")]
[MaxLength(128, ErrorMessage = "赛事名称限制128字符")]
public string EventName { get; set; }
/// <summary>
/// 封面
/// </summary>
[Required(ErrorMessage = "封面不能为空")]
public string CoverImage { get; set; }
/// <summary>
/// 赛事视频
/// </summary>
public string? EventVideo { get; set; }
/// <summary>
/// 赛事类型
/// </summary>
[Required(ErrorMessage = "赛事类型不能为空")]
public EventFormat EventType { get; set; }
/// <summary>
/// 报名方式
/// </summary>
[Required(ErrorMessage = "报名方式不能为空")]
public RegistrationType RegistrationType { get; set; }
/// <summary>
/// 积分规则ID
/// </summary>
[Required(ErrorMessage = "积分规则不能为空")]
public long PointsRuleId { get; set; }
/// <summary>
/// 报名开始时间
/// </summary>
[Required(ErrorMessage = "报名起止时间不能为空")]
public DateTime RegistrationStartTime { get; set; }
/// <summary>
/// 报名结束时间
/// </summary>
[Required(ErrorMessage = "报名起止时间不能为空")]
public DateTime RegistrationEndTime { get; set; }
/// <summary>
/// 是否上传素材
/// </summary>
public bool IsNeedMaterial { get; set; }
/// <summary>
/// 素材备注
/// </summary>
public string? MaterialRemark { get; set; }
/// <summary>
/// 素材上传开始时间
/// </summary>
public DateTime? MaterialUploadStartTime { get; set; }
/// <summary>
/// 素材上传结束时间
/// </summary>
public DateTime? MaterialUploadEndTime { get; set; }
/// <summary>
/// 比赛开始时间
/// </summary>
[Required(ErrorMessage = "比赛起止时间不能为空")]
public DateTime MatchStartTime { get; set; }
/// <summary>
/// 比赛结束时间
/// </summary>
[Required(ErrorMessage = "比赛起止时间不能为空")]
public DateTime MatchEndTime { get; set; }
/// <summary>
/// 省份ID
/// </summary>
public int ProvinceId { get; set; }
/// <summary>
/// 城市ID
/// </summary>
public int CityId { get; set; }
/// <summary>
/// 区县ID
/// </summary>
public int DistrictId { get; set; }
/// <summary>
/// 详细地址
/// </summary>
public string? DetailAddress { get; set; }
/// <summary>
/// 赛事简介
/// </summary>
public string? EventIntroduction { get; set; }
/// <summary>
/// 自定义字段列表
/// </summary>
public List<string>? CustomFields { get; set; }
/// <summary>
/// 参与单位信息
/// </summary>
public EventParticipantInput? Participant { get; set; }
/// <summary>
/// 项目列表(Step 3)
/// </summary>
public List<EventProjectInput>? Projects { get; set; }
/// <summary>
/// 报名限制(Step 3)
/// </summary>
public EventRegistrationLimitInput? RegistrationLimit { get; set; }
/// <summary>
/// 费用配置(Step 4)
/// </summary>
public EventFeeConfigInput? FeeConfig { get; set; }
}
/// <summary>
/// 赛事项目输入
/// </summary>
public class EventProjectInput
{
public long? Id { get; set; }
/// <summary>
/// 项目名称
/// </summary>
[Required(ErrorMessage = "项目名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 项目类型ID
/// </summary>
public long ProjectTypeId { get; set; }
/// <summary>
/// 项目类型名称 (显示用)
/// </summary>
public string? ProjectTypeName { get; set; }
/// <summary>
/// 完成人数
/// </summary>
public int CompletionCount { get; set; }
public int DurationMinutes { get; set; }
public int DurationSeconds { get; set; }
/// <summary>
/// 项目费用(Step 4)
/// </summary>
public decimal Fee { get; set; }
/// <summary>
/// 报名限制数量(Step 3)
/// </summary>
public int? LimitCount { get; set; }
public List<ProjectGroupInput> Groups { get; set; }
}
/// <summary>
/// 报名限制输入
/// </summary>
public class EventRegistrationLimitInput
{
public int IndividualProjectLimit { get; set; }
public int TeamProjectLimit { get; set; }
}
/// <summary>
/// 费用配置输入
/// </summary>
public class EventFeeConfigInput
{
public ChargeMode ChargeMode { get; set; }
public decimal Price { get; set; }
public long MerchantId { get; set; }
// 显示字段
public string? MerchantName { get; set; }
public string? CreditCode { get; set; }
public string? BankName { get; set; }
public string? AccountNumber { get; set; }
}
/// <summary>
/// 更新赛事输入
/// </summary>
public class UpdateEventInput : AddEventInput
{
[Required(ErrorMessage = "ID不能为空")]
public long Id { get; set; }
}
/// <summary>
/// 赛事详情输出
/// </summary>
public class EventDetailOutput : AddEventInput
{
public long Id { get; set; }
// 省市区名称回显
public string? ProvinceName { get; set; }
public string? CityName { get; set; }
public string? DistrictName { get; set; }
public EventStatus EventStatus { get; set; }
}