172 lines
3.7 KiB
C#
Raw Normal View History

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