151 lines
3.0 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>
public List<long>? LeaderIds { get; set; }
/// <summary>
/// 教练ID集合
/// </summary>
public List<long>? CoachIds { get; set; }
/// <summary>
/// 队员ID集合
/// </summary>
public List<long>? MemberIds { get; set; }
}
/// <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; }
}