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