版本260406
This commit is contained in:
256
OrpaonVision.Model/Security/UserModel.cs
Normal file
256
OrpaonVision.Model/Security/UserModel.cs
Normal file
@@ -0,0 +1,256 @@
|
||||
namespace OrpaonVision.Model.Security;
|
||||
|
||||
/// <summary>
|
||||
/// 用户模型。
|
||||
/// </summary>
|
||||
public sealed class UserModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户ID。
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户名。
|
||||
/// </summary>
|
||||
public string Username { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 显示名称。
|
||||
/// </summary>
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 邮箱。
|
||||
/// </summary>
|
||||
public string Email { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 手机号。
|
||||
/// </summary>
|
||||
public string? PhoneNumber { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 密码哈希。
|
||||
/// </summary>
|
||||
public string PasswordHash { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 密码盐。
|
||||
/// </summary>
|
||||
public string PasswordSalt { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 用户状态。
|
||||
/// </summary>
|
||||
public UserStatus Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后登录时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? LastLoginAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 最后登录IP。
|
||||
/// </summary>
|
||||
public string? LastLoginIp { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 登录失败次数。
|
||||
/// </summary>
|
||||
public int LoginFailedCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 账户锁定时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? LockedUntilUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否首次登录。
|
||||
/// </summary>
|
||||
public bool IsFirstLogin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime UpdatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人。
|
||||
/// </summary>
|
||||
public string CreatedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 更新人。
|
||||
/// </summary>
|
||||
public string UpdatedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 备注。
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户状态枚举。
|
||||
/// </summary>
|
||||
public enum UserStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 启用。
|
||||
/// </summary>
|
||||
Enabled = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 禁用。
|
||||
/// </summary>
|
||||
Disabled = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 已锁定。
|
||||
/// </summary>
|
||||
Locked = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 已删除。
|
||||
/// </summary>
|
||||
Deleted = 3
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 角色模型。
|
||||
/// </summary>
|
||||
public sealed class RoleModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 角色ID。
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色名称。
|
||||
/// </summary>
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色显示名称。
|
||||
/// </summary>
|
||||
public string DisplayName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 角色描述。
|
||||
/// </summary>
|
||||
public string? Description { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色状态。
|
||||
/// </summary>
|
||||
public RoleStatus Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否系统角色。
|
||||
/// </summary>
|
||||
public bool IsSystemRole { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 排序序号。
|
||||
/// </summary>
|
||||
public int SortOrder { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 更新时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime UpdatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人。
|
||||
/// </summary>
|
||||
public string CreatedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 更新人。
|
||||
/// </summary>
|
||||
public string UpdatedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 备注。
|
||||
/// </summary>
|
||||
public string? Remark { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 角色状态枚举。
|
||||
/// </summary>
|
||||
public enum RoleStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 启用。
|
||||
/// </summary>
|
||||
Enabled = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 禁用。
|
||||
/// </summary>
|
||||
Disabled = 1
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 用户角色关联模型。
|
||||
/// </summary>
|
||||
public sealed class UserRoleModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 关联ID。
|
||||
/// </summary>
|
||||
public Guid Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID。
|
||||
/// </summary>
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 角色ID。
|
||||
/// </summary>
|
||||
public Guid RoleId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime GrantedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 授权人。
|
||||
/// </summary>
|
||||
public string GrantedBy { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 过期时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime? ExpiresAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否启用。
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建时间(UTC)。
|
||||
/// </summary>
|
||||
public DateTime CreatedAtUtc { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 创建人。
|
||||
/// </summary>
|
||||
public string CreatedBy { get; set; } = string.Empty;
|
||||
}
|
||||
Reference in New Issue
Block a user