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