Files
TakeoutSaaS.TenantApi/src/Domain/TakeoutSaaS.Domain/Identity/Entities/IdentityUser.cs

76 lines
1.8 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 TakeoutSaaS.Domain.Identity.Enums;
using TakeoutSaaS.Shared.Abstractions.Entities;
namespace TakeoutSaaS.Domain.Identity.Entities;
/// <summary>
/// 管理后台账户实体(租户管理员或商户员工)。
/// </summary>
public sealed class IdentityUser : MultiTenantEntityBase
{
/// <summary>
/// 登录账号。
/// </summary>
public string Account { get; set; } = string.Empty;
/// <summary>
/// 展示名称。
/// </summary>
public string DisplayName { get; set; } = string.Empty;
/// <summary>
/// 密码哈希。
/// </summary>
public string PasswordHash { get; set; } = string.Empty;
/// <summary>
/// 手机号(租户内唯一)。
/// </summary>
public string? Phone { get; set; }
/// <summary>
/// 邮箱(租户内唯一)。
/// </summary>
public string? Email { get; set; }
/// <summary>
/// 账号状态。
/// </summary>
public IdentityUserStatus Status { get; set; } = IdentityUserStatus.Active;
/// <summary>
/// 登录失败次数。
/// </summary>
public int FailedLoginCount { get; set; }
/// <summary>
/// 锁定截止时间UTC
/// </summary>
public DateTime? LockedUntil { get; set; }
/// <summary>
/// 最近登录时间UTC
/// </summary>
public DateTime? LastLoginAt { get; set; }
/// <summary>
/// 是否强制修改密码。
/// </summary>
public bool MustChangePassword { get; set; }
/// <summary>
/// 所属商户(租户管理员为空)。
/// </summary>
public long? MerchantId { get; set; }
/// <summary>
/// 头像地址。
/// </summary>
public string? Avatar { get; set; }
/// <summary>
/// 并发控制字段。
/// </summary>
public byte[] RowVersion { get; set; } = Array.Empty<byte>();
}