2026-03-01 22:32:44 +08:00
|
|
|
|
using YD_Event.Core.Entities;
|
|
|
|
|
|
using YD_Event.Core.Enum;
|
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
|
|
|
|
|
|
|
namespace YD_Event.Application.Project.Dtos;
|
|
|
|
|
|
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目查询输入
|
|
|
|
|
|
/// </summary>
|
2026-03-01 22:32:44 +08:00
|
|
|
|
public class ProjectQueryInput : Pagination
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目名称 (模糊查询)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string? ProjectName { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-04-12 16:11:20 +08:00
|
|
|
|
/// 项目类型
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// </summary>
|
2026-04-12 16:11:20 +08:00
|
|
|
|
public long? ProjectType { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class AddProjectInput
|
|
|
|
|
|
{
|
2026-08-11 23:41:18 +08:00
|
|
|
|
/// <summary>计分规则ID。</summary>
|
|
|
|
|
|
[Required(ErrorMessage = "请选择计分规则")]
|
|
|
|
|
|
public long? ScoreRuleId { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Required(ErrorMessage = "项目名称不能为空")]
|
|
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-04-12 16:11:20 +08:00
|
|
|
|
/// 项目类型
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// </summary>
|
2026-04-12 16:11:20 +08:00
|
|
|
|
[Required(ErrorMessage = "项目类型不能为空")]
|
|
|
|
|
|
public long ProjectType { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-06-10 13:25:53 +08:00
|
|
|
|
/// 完成人数模式(0=单一值, 1=范围值)
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// </summary>
|
2026-06-10 13:25:53 +08:00
|
|
|
|
public int CompletionCountType { get; set; } = 0;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数(单一值模式时必填)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? CompletionCount { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数最小值(范围值模式时必填)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? CompletionCountMin { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数最大值(范围值模式时必填)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? CompletionCountMax { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 费用(元)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public decimal Fee { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 时长(分钟)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DurationMinutes { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 时长(秒)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DurationSeconds { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 场地数量
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int VenueCount { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 排序索引
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int SortIndex { get; set; }
|
|
|
|
|
|
|
2026-07-18 13:12:58 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 备注
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string? Remark { get; set; }
|
|
|
|
|
|
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目组别列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public List<ProjectGroupInput>? Groups { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class UpdateProjectInput : AddProjectInput
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 主键Id
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Required(ErrorMessage = "Id不能为空")]
|
|
|
|
|
|
public long Id { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public class ProjectGroupInput
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 组别名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Required(ErrorMessage = "组别名称不能为空")]
|
|
|
|
|
|
public string GroupName { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 出生日期起始日期
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime BirthDateStart { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 出生日期结束日期
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime BirthDateEnd { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 性别要求
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public Gender Gender { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目DTO
|
|
|
|
|
|
/// </summary>
|
2026-03-01 22:32:44 +08:00
|
|
|
|
public class ProjectDto
|
|
|
|
|
|
{
|
2026-08-11 23:41:18 +08:00
|
|
|
|
public long? ScoreRuleId { get; set; }
|
|
|
|
|
|
public string? ScoreRuleName { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// ID
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public long Id { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-04-12 16:11:20 +08:00
|
|
|
|
/// 项目类型
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// </summary>
|
2026-04-12 16:11:20 +08:00
|
|
|
|
public long ProjectType { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目类型名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string ProjectTypeName { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-06-10 13:25:53 +08:00
|
|
|
|
/// 完成人数模式(0=单一值, 1=范围值)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int CompletionCountType { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数(单一值模式时有效)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? CompletionCount { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数最小值(范围值模式时有效)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? CompletionCountMin { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数最大值(范围值模式时有效)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? CompletionCountMax { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 完成人数显示文本(用于前端显示,如 "5人" 或 "3-5人")
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// </summary>
|
2026-06-10 13:25:53 +08:00
|
|
|
|
public string CompletionCountDisplay { get; set; }
|
2026-03-01 22:32:44 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 费用(元)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public decimal Fee { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 时长(分钟)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DurationMinutes { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 时长(秒)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int DurationSeconds { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 场地数量(编排用)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int VenueCount { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 排序索引(编排用)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int SortIndex { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-07-18 13:12:58 +08:00
|
|
|
|
/// 备注
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string? Remark { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-03-01 22:32:44 +08:00
|
|
|
|
/// 可用状态
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public AvailabilityStatus Status { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 标记删除
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public bool DeleteMark { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 创建人
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public long CreatedUserId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 创建时间
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime CreatedTime { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新人
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public long? UpdatedUserId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 更新时间
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public DateTime? UpdatedTime { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目组别列表
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public List<ProjectGroupDto>? Groups { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-03-18 13:47:34 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 项目组别DTO
|
|
|
|
|
|
/// </summary>
|
2026-03-01 22:32:44 +08:00
|
|
|
|
public class ProjectGroupDto
|
|
|
|
|
|
{
|
|
|
|
|
|
public long Id { get; set; }
|
|
|
|
|
|
public string GroupName { get; set; }
|
|
|
|
|
|
public DateTime BirthDateStart { get; set; }
|
|
|
|
|
|
public DateTime BirthDateEnd { get; set; }
|
|
|
|
|
|
public Gender Gender { get; set; }
|
|
|
|
|
|
}
|