258 lines
5.8 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 YD_Event.Core.Entities;
using YD_Event.Core.Enum;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
namespace YD_Event.Application.Project.Dtos;
/// <summary>
/// 项目查询输入
/// </summary>
public class ProjectQueryInput : Pagination
{
/// <summary>
/// 项目名称 (模糊查询)
/// </summary>
public string? ProjectName { get; set; }
/// <summary>
/// 项目类型
/// </summary>
public long? ProjectType { get; set; }
}
public class AddProjectInput
{
/// <summary>计分规则ID(速度项目可为空,花样项目必填)。</summary>
public long? ScoreRuleId { get; set; }
/// <summary>
/// 项目名称
/// </summary>
[Required(ErrorMessage = "项目名称不能为空")]
public string Name { get; set; }
/// <summary>
/// 项目类型
/// </summary>
[Required(ErrorMessage = "项目类型不能为空")]
public long ProjectType { get; set; }
/// <summary>
/// 完成人数模式(0=单一值, 1=范围值)
/// </summary>
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; }
/// <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>
/// 备注
/// </summary>
public string? Remark { get; set; }
/// <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; }
}
/// <summary>
/// 项目DTO
/// </summary>
public class ProjectDto
{
public long? ScoreRuleId { get; set; }
public string? ScoreRuleName { get; set; }
/// <summary>
/// ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 项目名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 项目类型
/// </summary>
public long ProjectType { get; set; }
/// <summary>
/// 项目类型名称
/// </summary>
public string ProjectTypeName { get; set; }
/// <summary>
/// 完成人数模式(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人")
/// </summary>
public string CompletionCountDisplay { get; set; }
/// <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>
/// 备注
/// </summary>
public string? Remark { get; set; }
/// <summary>
/// 可用状态
/// </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; }
}
/// <summary>
/// 项目组别DTO
/// </summary>
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; }
}