167 lines
3.6 KiB
C#
167 lines
3.6 KiB
C#
#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>
|
|
[Required(ErrorMessage = "请选择领队")]
|
|
[MinLength(1, ErrorMessage = "至少需要选择一名领队")]
|
|
public List<long> LeaderIds { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// 教练ID集合
|
|
/// </summary>
|
|
[Required(ErrorMessage = "请选择教练")]
|
|
[MinLength(1, ErrorMessage = "至少需要选择一名教练")]
|
|
public List<long> CoachIds { get; set; } = null!;
|
|
|
|
/// <summary>
|
|
/// 队员ID集合
|
|
/// </summary>
|
|
[Required(ErrorMessage = "请选择队员")]
|
|
[MinLength(1, ErrorMessage = "至少需要选择一名队员")]
|
|
public List<long> MemberIds { get; set; } = null!;
|
|
}
|
|
|
|
/// <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>
|
|
/// 角色 (PersonType)
|
|
/// </summary>
|
|
public PersonType PersonType { get; set; }
|
|
|
|
/// <summary>
|
|
/// 角色描述
|
|
/// </summary>
|
|
public string RoleName => PersonType.Description();
|
|
|
|
/// <summary>
|
|
/// 联系电话
|
|
/// </summary>
|
|
public string? Mobile { get; set; }
|
|
|
|
/// <summary>
|
|
/// 性别
|
|
/// </summary>
|
|
public Gender Gender { get; set; }
|
|
|
|
/// <summary>
|
|
/// 出生日期
|
|
/// </summary>
|
|
public DateTime? BirthDate { get; set; }
|
|
}
|