using Newtonsoft.Json; using System; using System.Collections.Generic; namespace zero.Core.Entities { public class User : DatabaseEntity, IUser { /// public bool IsSuper { get; set; } /// public string Email { get; set; } /// public bool IsEmailConfirmed { get; set; } /// public string PasswordHash { get; set; } /// public string SecurityStamp { get; set; } /// public Media Avatar { get; set; } /// public string LanguageId { get; set; } /// public List Roles { get; set; } = new List(); /// public List Claims { get; set; } = new List(); /// public string PasswordResetToken { get; set; } /// public DateTimeOffset? PasswordResetTokenExpirationDate { get; set; } /// public int AccessFailedCount { get; set; } /// public bool LockoutEnabled { get; set; } /// public DateTimeOffset? LockoutEnd { get; set; } /// public bool TwoFactorEnabled { get; set; } /// public string TwoFactorAuthenticatorKey { get; set; } /// public List TwoFactorRecoveryCodes { get; set; } = new List(); } public interface IUser : IDatabaseEntity { /// /// sudo. /// The user who created the instance. /// bool IsSuper { get; set; } /// /// E-Mail address which is also used as the username /// string Email { get; set; } /// /// Whether the email address has been confirmed /// public bool IsEmailConfirmed { get; set; } /// /// The password hash /// string PasswordHash { get; set; } /// /// The security stamp /// string SecurityStamp { get; set; } /// /// Avatar image /// Media Avatar { get; set; } /// /// Backoffice display language /// string LanguageId { get; set; } /// /// The roles (aliases) of the user /// List Roles { get; set; } /// /// The user's claims, for use in claims-based authentication. /// List Claims { get; set; } /// /// A hash which is used to validate a password-change request /// string PasswordResetToken { get; set; } /// /// The date when the current password-reset hash expires /// DateTimeOffset? PasswordResetTokenExpirationDate { get; set; } /// /// Number of times sign in failed. /// int AccessFailedCount { get; set; } /// /// Whether the user is locked out. /// bool LockoutEnabled { get; set; } /// /// When the user lock out is over. /// DateTimeOffset? LockoutEnd { get; set; } /// /// Whether 2-factor authentication is enabled or not /// bool TwoFactorEnabled { get; set; } /// /// The two-factor authenticator key /// string TwoFactorAuthenticatorKey { get; set; } /// /// The list of two factor authentication recovery codes /// List TwoFactorRecoveryCodes { get; set; } } }