mirror of
https://github.com/alex289/CleanArchitecture.git
synced 2025-06-29 18:21:08 +00:00
84 lines
1.8 KiB
C#
84 lines
1.8 KiB
C#
using System;
|
|
using CleanArchitecture.Domain.Enums;
|
|
|
|
namespace CleanArchitecture.Domain.Entities;
|
|
|
|
public class User : Entity
|
|
{
|
|
public string Email { get; private set; }
|
|
public string FirstName { get; private set; }
|
|
public string LastName { get; private set; }
|
|
public string Password { get; private set; }
|
|
public UserRole Role { get; private set; }
|
|
public UserStatus Status { get; private set; }
|
|
public DateTimeOffset? LastLoggedinDate { get; private set; }
|
|
|
|
public string FullName => $"{FirstName}, {LastName}";
|
|
|
|
public Guid TenantId { get; private set; }
|
|
public virtual Tenant Tenant { get; private set; } = null!;
|
|
|
|
public User(
|
|
Guid id,
|
|
Guid tenantId,
|
|
string email,
|
|
string firstName,
|
|
string lastName,
|
|
string password,
|
|
UserRole role,
|
|
UserStatus status = UserStatus.Active) : base(id)
|
|
{
|
|
Email = email;
|
|
TenantId = tenantId;
|
|
FirstName = firstName;
|
|
LastName = lastName;
|
|
Password = password;
|
|
Role = role;
|
|
Status = status;
|
|
}
|
|
|
|
public void SetEmail(string email)
|
|
{
|
|
Email = email;
|
|
}
|
|
|
|
public void SetFirstName(string firstName)
|
|
{
|
|
FirstName = firstName;
|
|
}
|
|
|
|
public void SetLastName(string lastName)
|
|
{
|
|
LastName = lastName;
|
|
}
|
|
|
|
public void SetPassword(string password)
|
|
{
|
|
Password = password;
|
|
}
|
|
|
|
public void SetRole(UserRole role)
|
|
{
|
|
Role = role;
|
|
}
|
|
|
|
public void SetTenant(Guid tenantId)
|
|
{
|
|
TenantId = tenantId;
|
|
}
|
|
|
|
public void SetLastLoggedinDate(DateTimeOffset lastLoggedinDate)
|
|
{
|
|
LastLoggedinDate = lastLoggedinDate;
|
|
}
|
|
|
|
public void SetInactive()
|
|
{
|
|
Status = UserStatus.Inactive;
|
|
}
|
|
|
|
public void SetActive()
|
|
{
|
|
Status = UserStatus.Active;
|
|
}
|
|
} |