This commit is contained in:
Thanakarn Klangkasame
2025-09-30 11:01:02 +07:00
commit 92e614674c
182 changed files with 9596 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
using AMREZ.EOP.Domain.Entities.Common;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class Department : BaseEntity
{
public Guid TenantId { get; set; }
public string Code { get; set; } = default!;
public string Name { get; set; } = default!;
public Guid? ParentDepartmentId { get; set; }
public Department? Parent { get; set; }
public ICollection<Department> Children { get; set; } = new List<Department>();
public ICollection<UserProfile> Profiles { get; set; } = new List<UserProfile>();
}

View File

@@ -0,0 +1,18 @@
using AMREZ.EOP.Domain.Entities.Common;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class EmergencyContact : BaseEntity
{
public Guid TenantId { get; set; }
public Guid UserProfileId { get; set; }
public string Name { get; set; } = default!;
public string Relationship { get; set; } = default!;
public string? Phone { get; set; }
public string? Email { get; set; }
public bool IsPrimary { get; set; }
public UserProfile UserProfile { get; set; } = default!;
}

View File

@@ -0,0 +1,23 @@
using AMREZ.EOP.Domain.Entities.Common;
using AMREZ.EOP.Domain.Shared.HumanResources;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class EmployeeAddress : BaseEntity
{
public Guid TenantId { get; set; }
public Guid UserProfileId { get; set; }
public AddressType Type { get; set; } = AddressType.Home;
public string Line1 { get; set; } = default!;
public string? Line2 { get; set; }
public string City { get; set; } = default!;
public string? State { get; set; }
public string PostalCode { get; set; } = default!;
public string Country { get; set; } = default!;
public bool IsPrimary { get; set; }
public UserProfile UserProfile { get; set; } = default!;
}

View File

@@ -0,0 +1,18 @@
using AMREZ.EOP.Domain.Entities.Common;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class EmployeeBankAccount : BaseEntity
{
public Guid TenantId { get; set; }
public Guid UserProfileId { get; set; }
public string BankName { get; set; } = default!;
public string AccountNumber { get; set; } = default!;
public string AccountHolder { get; set; } = default!;
public string? Branch { get; set; }
public string? Note { get; set; }
public bool IsPrimary { get; set; }
public UserProfile UserProfile { get; set; } = default!;
}

View File

@@ -0,0 +1,25 @@
using AMREZ.EOP.Domain.Entities.Common;
using AMREZ.EOP.Domain.Shared.HumanResources;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class Employment : BaseEntity
{
public Guid TenantId { get; set; }
public Guid UserProfileId { get; set; }
public EmploymentType EmploymentType { get; set; } = EmploymentType.Permanent;
public DateTime StartDate { get; set; }
public DateTime? EndDate { get; set; }
public Guid? DepartmentId { get; set; }
public Guid? PositionId { get; set; }
public Guid? ManagerUserId { get; set; } // references Authentications.User
public string? WorkEmail { get; set; }
public string? WorkPhone { get; set; }
public UserProfile UserProfile { get; set; } = default!;
public Department? Department { get; set; }
public Position? Position { get; set; }
}

View File

@@ -0,0 +1,13 @@
using AMREZ.EOP.Domain.Entities.Common;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class Position : BaseEntity
{
public Guid TenantId { get; set; }
public string Code { get; set; } = default!;
public string Title { get; set; } = default!;
public int? Level { get; set; }
public ICollection<UserProfile> Profiles { get; set; } = new List<UserProfile>();
}

View File

@@ -0,0 +1,26 @@
using AMREZ.EOP.Domain.Entities.Authentications;
using AMREZ.EOP.Domain.Entities.Common;
using AMREZ.EOP.Domain.Shared.HumanResources;
namespace AMREZ.EOP.Domain.Entities.HumanResources;
public sealed class UserProfile : BaseEntity
{
public Guid TenantId { get; set; }
public Guid UserId { get; set; }
public string FirstName { get; set; } = default!;
public string LastName { get; set; } = default!;
public string? MiddleName { get; set; }
public string? Nickname { get; set; }
public DateTime? DateOfBirth { get; set; }
public Gender? Gender { get; set; }
public User User { get; set; } = default!;
public ICollection<Employment> Employments { get; set; } = new List<Employment>();
public ICollection<EmployeeAddress> Addresses { get; set; } = new List<EmployeeAddress>();
public ICollection<EmergencyContact> EmergencyContacts { get; set; } = new List<EmergencyContact>();
public ICollection<EmployeeBankAccount> BankAccounts { get; set; } = new List<EmployeeBankAccount>();
}