#nullable enable using System.ComponentModel.DataAnnotations; using YD_Event.Core.Enum; using SqlSugar; using Easy.Core; namespace YD_Event.Application.Team.Dtos; /// /// 团队查询输入参数 /// public class TeamQueryInput : Pagination { /// /// 团队名称 /// public string? Name { get; set; } /// /// 状态 /// public AvailabilityStatus? Status { get; set; } /// /// 开始时间 /// public DateTime? StartTime { get; set; } /// /// 结束时间 /// public DateTime? EndTime { get; set; } } /// /// 新增团队输入参数 /// public class AddTeamInput { /// /// 团队名称 /// [Required(ErrorMessage = "团队名称不能为空"), MaxLength(64)] public string Name { get; set; } = null!; /// /// 领队ID集合 /// [Required(ErrorMessage = "请选择领队")] [MinLength(1, ErrorMessage = "至少需要选择一名领队")] public List LeaderIds { get; set; } = null!; /// /// 教练ID集合 /// [Required(ErrorMessage = "请选择教练")] [MinLength(1, ErrorMessage = "至少需要选择一名教练")] public List CoachIds { get; set; } = null!; /// /// 队员ID集合 /// [Required(ErrorMessage = "请选择队员")] [MinLength(1, ErrorMessage = "至少需要选择一名队员")] public List MemberIds { get; set; } = null!; } /// /// 修改团队输入参数 /// public class UpdateTeamInput : AddTeamInput { /// /// 主键Id /// [Required(ErrorMessage = "Id不能为空")] public long Id { get; set; } } /// /// 团队列表输出 /// public class TeamOutput { /// /// 主键Id /// public long Id { get; set; } /// /// 团队名称 /// public string Name { get; set; } = null!; /// /// 状态 /// public AvailabilityStatus Status { get; set; } /// /// 领队姓名(多个逗号分隔) /// public string? LeaderNames { get; set; } /// /// 教练姓名(多个逗号分隔) /// public string? CoachNames { get; set; } /// /// 创建时间 /// public DateTime CreatedTime { get; set; } } /// /// 团队详情输出 /// public class TeamDetailOutput : TeamOutput { /// /// 成员列表 /// public List Members { get; set; } = new(); } /// /// 团队成员输出 /// public class TeamMemberOutput { /// /// 用户ID /// public long UserId { get; set; } /// /// 姓名 /// public string Name { get; set; } = null!; /// /// 角色 (PersonType) /// public PersonType PersonType { get; set; } /// /// 角色描述 /// public string RoleName => PersonType.Description(); /// /// 联系电话 /// public string? Mobile { get; set; } /// /// 性别 /// public Gender Gender { get; set; } /// /// 出生日期 /// public DateTime? BirthDate { get; set; } /// /// 身份证号码 /// public string? IdCardNumber { get; set; } }