using System; using System.Collections.Generic; using Volo.Abp.Domain.Entities.Auditing; using Volo.Abp.MultiTenancy; namespace Kurs.Platform.Entities; public class Employee : FullAuditedEntity, IMultiTenant { public Guid? TenantId { get; set; } public string Code { get; set; } public string FullName { get; set; } public string Avatar { get; set; } public string NationalId { get; set; } public DateTime BirthDate { get; set; } public string Gender { get; set; } public string MaritalStatus { get; set; } // Embedded Address public string Country { get; set; } public string City { get; set; } public string District { get; set; } public string Street { get; set; } public string PostalCode { get; set; } public string Phone { get; set; } public string PersonalPhone { get; set; } public string Email { get; set; } public string Address1 { get; set; } public string Address2 { get; set; } // Emergency contact public string EmergencyContactName { get; set; } public string EmergencyContactRelationship { get; set; } public string EmergencyContactPhone { get; set; } public DateTime HireDate { get; set; } public DateTime? TerminationDate { get; set; } public Guid? EmploymentTypeId { get; set; } public EmploymentType EmploymentType { get; set; } public Guid? JobPositionId { get; set; } public JobPosition JobPosition { get; set; } public Guid? DepartmentId { get; set; } public Department Department { get; set; } public string WorkLocation { get; set; } public Guid? ManagerId { get; set; } public Employee Manager { get; set; } public decimal BaseSalary { get; set; } public Guid? CurrencyId { get; set; } public string PayrollGroup { get; set; } // e.g., Monthly, Biweekly, Weekly public Guid? BankAccountId { get; set; } public BankAccount BankAccount { get; set; } public Guid? BadgeId { get; set; } public Badge Badge { get; set; } public string EmployeeStatus { get; set; } public bool IsActive { get; set; } public ICollection Overtimes { get; set; } public ICollection Leaves { get; set; } public ICollection Announcements { get; set; } public ICollection Visitors { get; set; } public ICollection Reservations { get; set; } public ICollection Certificates { get; set; } public ICollection ExpenseRequests { get; set; } public ICollection SurveyResponses { get; set; } public ICollection Partners { get; set; } }