using System.ComponentModel.DataAnnotations.Schema;
using WorkFlowCheck.DL.Interfaces;

namespace WorkFlowCheck.DL.Entities
{
    public class User : IAuditableEntity, ISoftDeletableEntity
    {
        public int Id { get; set; }
        public string Email { get; set; } = null!;
        public string FirstName { get; set; } = null!;
        public string LastName { get; set; } = null!;
        public string UserName { get; set; } = null!;
        public string? PasswordHash { get; set; } = null;
        public string JwtToken { get; set; } = null!;
        public string Token2FA { get; set; } = null!;   
        public bool Active { get; set; }
        public bool NFCActive { get; set; }
        public string NFCCode { get; set; } = null!;    

        public virtual ICollection<UserRole> UserRoles { get; set; } = new List<UserRole>();

        public DateTime LastModAt { get; set; }
        public string LastModBy { get; set; } = null!;
        public DateTime CreatedAt { get; set; }
        public string CreatedBy { get; set; } = null!;
        public bool IsDeleted { get; set; }
    }
}
