AGSSbackend/AGSS/Models/DTOs/UserRequest.cs
luolan ca93d49780 重构用户控制器并引入身份验证服务
- 移除 `UserInfoController`,新增 `UserControllers` 使用 `UserService`
- 添加 `UserService` 用于处理用户信息
- 新增 `UserProfile` DTO
- 添加数据库迁移以支持用户表结构
2025-07-08 23:06:19 +08:00

133 lines
5.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.ComponentModel.DataAnnotations;
namespace AGSS.Models.DTOs;
/// <summary>
/// 用于封装用户请求数据的类,主要用于提交或更新用户的个人信息。
/// </summary>
public class UserRequest
{
/// <summary>
/// 表示用户的性别。此属性可以为空最大长度为20个字符。
/// </summary>
[MaxLength(20)]
public string? Sex { get; set; }
/// <summary>
/// 用户的描述信息最大长度为100个字符。
/// </summary>
[MaxLength(100)]
public string? Description { get; set; }
/// <summary>
/// 代表用户请求中配置信息的字符串。此字段允许存储长度不超过200个字符的配置数据。
/// </summary>
[MaxLength(200)]
public string? Config { get; set; }
/// <summary>
/// 代表用户的职业代码,用于标识用户的职业类别。
/// 此属性的值应遵循特定格式或标准,具体取决于应用的需求。
/// 最大长度为10个字符。
/// </summary>
/// <remarks>此字段在数据传输对象如UserRequest和UserReturn以及实体类UserModel中定义确保了从客户端到服务器的数据一致性。</remarks>
[MaxLength(10)]
public string? JobCode { get; set; }
/// <summary>
/// 代表用户的职业名称。此属性用于存储用户的职业信息最大长度为10个字符。
/// </summary>
/// <remarks>该字段在UserRequest和UserReturn类中定义并且在数据库实体UserModel中也有对应字段。通过UserInfoController中的NextInfo方法可以更新或创建包含此职业名称在内的用户信息。</remarks>
[MaxLength(10)]
public string? JobName { get; set; }
/// <summary>
/// 用户的生日。此属性用于存储用户的出生日期,格式为字符串。
/// </summary>
/// <remarks>最大长度为20个字符。在数据传输对象DTO和实体模型中使用。</remarks>
[MaxLength(20)]
public string? Birthday { get; set; }
}
/// <summary>
/// 表示用户返回的数据模型。
/// 该类用于封装从服务端返回给客户端的用户信息。
/// </summary>
/// <remarks>
/// 包含用户的唯一标识符、认证ID以及其他个人信息如性别、描述、配置、工作代码、工作名称、生日等。
/// 此外,还提供了用户的电子邮件、昵称和真实姓名。
/// </remarks>
public class UserReturn
{
/// <summary>
/// 表示用户的唯一标识符。
/// </summary>
public Guid Id { get; set; }
/// <summary>
/// 用于标识用户的认证ID最大长度为50个字符是必需的字段。
/// </summary>
[MaxLength(50)]
public required string AuthId { get; set; }
/// <summary>
/// 表示用户的性别。此属性可以为空最大长度为20个字符。
/// </summary>
[MaxLength(20)]
public string? Sex { get; set; }
/// <summary>
/// 用户描述信息最大长度为100个字符。
/// 该属性用于存储关于用户的简短描述或备注信息。
/// </summary>
[MaxLength(100)]
public string? Description { get; set; }
/// <summary>
/// 配置信息用于存储与用户相关的自定义配置数据。该属性支持最大长度为200个字符的字符串。
/// </summary>
[MaxLength(200)]
public string? Config { get; set; }
/// <summary>
/// 表示用户的职位代码。该字段的最大长度为10个字符。
/// </summary>
[MaxLength(10)]
public string? JobCode { get; set; }
/// <summary>
/// 表示用户的职位名称。该属性的值长度不能超过10个字符。
/// </summary>
[MaxLength(10)]
public string? JobName { get; set; }
/// <summary>
/// 表示用户的生日信息。此属性用于存储用户出生日期的字符串表示形式最大长度为20个字符。
/// </summary>
[MaxLength(20)]
public string? Birthday { get; set; }
/// <summary>
/// 电子邮件地址,用于联系用户或作为账户标识。
/// </summary>
/// <remarks>该属性应包含有效的电子邮件格式。</remarks>
public string Email { get; set; }
/// <summary>
/// 获取或设置用户的昵称。该属性用于存储用户在系统中的个性化名称,方便用户识别。
/// </summary>
/// <remarks>
/// 该字段的长度应控制在合理范围内以确保数据的有效性和安全性。
/// </remarks>
public string NickName { get; set; }
/// <summary>
/// 表示用户的名称。这是用户在系统中的主要标识符之一,用于显示和识别用户。
/// </summary>
/// <remarks>
/// 该属性值应为字符串类型,通常用于存储用户的全名或昵称。
/// </remarks>
public string Name { get; set; }
}