using System.ComponentModel.DataAnnotations; namespace AmtScanner.Api.Models; /// /// 系统用户 /// public class User { [Key] public int Id { get; set; } /// /// 用户名(登录名) /// [Required] [MaxLength(100)] public string UserName { get; set; } = string.Empty; /// /// 密码哈希 /// [Required] [MaxLength(200)] public string PasswordHash { get; set; } = string.Empty; /// /// 昵称 /// [MaxLength(100)] public string? NickName { get; set; } /// /// 邮箱 /// [MaxLength(200)] public string? Email { get; set; } /// /// 手机号 /// [MaxLength(20)] public string? Phone { get; set; } /// /// 头像 URL /// [MaxLength(500)] public string? Avatar { get; set; } /// /// 性别: 0-未知, 1-男, 2-女 /// [MaxLength(1)] public string Gender { get; set; } = "0"; /// /// 状态: 1-启用, 2-禁用 /// [MaxLength(1)] public string Status { get; set; } = "1"; /// /// 创建时间 /// public DateTime CreatedAt { get; set; } = DateTime.UtcNow; /// /// 更新时间 /// public DateTime? UpdatedAt { get; set; } /// /// 创建人 /// [MaxLength(100)] public string? CreatedBy { get; set; } /// /// 更新人 /// [MaxLength(100)] public string? UpdatedBy { get; set; } /// /// 是否已删除(软删除) /// public bool IsDeleted { get; set; } = false; /// /// 刷新令牌 /// [MaxLength(500)] public string? RefreshToken { get; set; } /// /// 刷新令牌过期时间 /// public DateTime? RefreshTokenExpiryTime { get; set; } /// /// 用户角色关联 /// public ICollection UserRoles { get; set; } = new List(); }