using Entities.Contracts; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Entities.DTO { /// /// 用户信息数据传输对象 /// 用于在API调用中传输用户的基本信息 /// public record UserDto { /// /// 用户唯一标识符 /// public Guid Id { get; init; } /// /// 用户名 /// public string? UserName { get; init; } /// /// 电子邮箱 /// [EmailAddress] public string? Email { get; init; } /// /// 手机号码 /// [Phone] public string? PhoneNumber { get; init; } /// /// 显示名称 /// public string? DisplayName { get; init; } /// /// 家庭住址 /// public string? HomeAddress { get; init; } /// /// 用户角色 /// public UserRoles? Role { get; init; } /// /// 教授科目ID /// public Guid? TeachSubjectId { get; init; } /// /// 教授科目信息 /// public SubjectDto? TeachSubject { get; init; } /// /// 用户加入的班级数量 /// public int JoinedClassCount { get; init; } /// /// 创建的问题数量 /// public int CreatedQuestionsCount { get; init; } /// /// 创建的考试数量 /// public int CreatedExamsCount { get; init; } /// /// 提交的作业数量 /// public int SubmittedAssignmentsCount { get; init; } /// /// 批改的作业数量 /// public int GradedAssignmentsCount { get; init; } /// /// 用户创建时间 /// public DateTime CreatedAt { get; init; } /// /// 用户最后更新时间 /// public DateTime UpdatedAt { get; init; } /// /// 用户是否已验证邮箱 /// public bool EmailConfirmed { get; init; } /// /// 用户是否已锁定 /// public bool LockoutEnabled { get; init; } /// /// 用户锁定结束时间 /// public DateTime? LockoutEnd { get; init; } /// /// 获取用户角色的显示名称 /// public string? RoleDisplayName => Role?.GetDisplayName(); /// /// 获取用户角色的简短名称 /// public string? RoleShortName => Role?.GetShortName(); /// /// 获取用户的基本信息字符串 /// public string? UserInfoString => $"{DisplayName ?? UserName} ({Email})"; } }