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();
}