using BMA.EHR.MetaData.Service.Models; using BMA.EHR.Organization.Service.Models; using BMA.EHR.Recruit.Service.Models.Documents; using System.ComponentModel.DataAnnotations; namespace BMA.EHR.Profile.Service.Models.HR { public class Profile : EntityBase { [Key] public Guid Id { get; set; } [MaxLength(13)] public string? CitizenId { get; set; } [MaxLength(50)] public string? ProfileType { get; set; } [MaxLength(20)] public string? EmployeeType { get; set; } [MaxLength(20)] public string? EmployeeClass { get; set; } public Guid? PrefixId { get; set; } [MaxLength(100)] [Required] public string? FirstName { get; set; } [MaxLength(100)] [Required] public string? LastName { get; set; } [MaxLength(100)] public string AvatarRef { get; set; } public Guid? GenderId { get; set; } [MaxLength(100)] public string? Nationality { get; set; } [MaxLength(100)] public string? Race { get; set; } public Guid? ReligionId { get; set; } [Required] public DateTime BirthDate { get; set; } public Guid? BloodGroupId { get; set; } public Guid? RelationshipId { get; set; } [MaxLength(50)] public string? TelephoneNumber { get; set; } public bool? Couple { get; set; } public Guid? CouplePrefixId { get; set; } [MaxLength(100)] public string? CoupleFirstName { get; set; } [MaxLength(100)] public string? CoupleLastName { get; set; } [MaxLength(100)] public string? CoupleLastNameOld { get; set; } [MaxLength(100)] public string? CoupleCareer { get; set; } public Guid? FatherPrefixId { get; set; } [MaxLength(100)] public string? FatherFirstName { get; set; } [MaxLength(100)] public string? FatherLastName { get; set; } [MaxLength(100)] public string? FatherCareer { get; set; } public Guid? MotherPrefixId { get; set; } [MaxLength(100)] public string? MotherFirstName { get; set; } [MaxLength(100)] public string? MotherLastName { get; set; } [MaxLength(100)] public string? MotherCareer { get; set; } [MaxLength(200)] public string? CurrentAddress { get; set; } public Guid? CurrentSubDistrictId { get; set; } public Guid? CurrentDistrictId { get; set; } public Guid? CurrentProvinceId { get; set; } [MaxLength(5)] public string? CurrentZipCode { get; set; } public bool? RegistrationSame { get; set; } = false; [MaxLength(200)] public string? RegistrationAddress { get; set; } public Guid? RegistrationSubDistrictId { get; set; } public Guid? RegistrationDistrictId { get; set; } public Guid? RegistrationProvinceId { get; set; } [MaxLength(5)] public string? RegistrationZipCode { get; set; } public DateTime? DateAppoint { get; set; } public DateTime? DateStart { get; set; } public DateTime? DateRetire { get; set; } public string? ReasonSameDate { get; set; } // public Guid? AffiliationId { get; set; } // public Guid? PositionId { get; set; } // public Guid? WorkId { get; set; } // public Guid? TypeId { get; set; } // public Guid? LevelId { get; set; } // public Guid? NumberId { get; set; } // public Guid? BusinessId { get; set; } public Guid? OcId { get; set; } public string? Oc { get; set; } public Guid? OrganizationShortNameId { get; set; } public string? OrganizationShortName { get; set; } public string? GovernmentCode { get; set; } public Guid? OrganizationOrganizationId { get; set; } public string? OrganizationOrganization { get; set; } public Guid? PositionId { get; set; } // public string? Position { get; set; } public PositionPath? Position { get; set; } // public Guid? PosNoId { get; set; } public PositionNumberEntity? PosNo { get; set; } // public string? PosNo { get; set; } public Guid? PositionLineId { get; set; } public string? PositionLine { get; set; } public Guid? PositionPathSideId { get; set; } public string? PositionPathSide { get; set; } // public Guid? PositionTypeId { get; set; } // public string? PositionType { get; set; } public PositionType? PositionType { get; set; } // public Guid? PositionLevelId { get; set; } public PositionLevel? PositionLevel { get; set; } public Guid? PositionExecutiveId { get; set; } public string? PositionExecutive { get; set; } public Guid? PositionExecutiveSideId { get; set; } public string? PositionExecutiveSide { get; set; } [MaxLength(100)] public string Physical { get; set; } [MaxLength(100)] public string Ability { get; set; } public bool IsActive { get; set; } = true; public bool IsLeave { get; set; } = false; public DateTime? LeaveDate { get; set; } [MaxLength(1000)] public string? LeaveReason { get; set; } public DateTime? CreatedDate { get; set; } public DateTime? ModifiedDate { get; set; } [MaxLength(250)] public string CreatedUser { get; set; } = string.Empty; [MaxLength(5)] public string EntryStatus { get; set; } = "st1"; // สถานะการตรวจสอบ st1 = create; st2 = pending public bool IsTransfer { get; set; } = false; public DateTime? TransferDate { get; set; } public int GovAgeAbsent { get; set; } = 0; public int GovAgePlus { get; set; } = 0; // public OrganizationEntity? Organization { get; set; } // public PositionNumberEntity PositionNumber { get; set; } // public Position Position { get; set; } // public PositionExecutive PositionExecutive { get; set; } public bool IsVerified { get; set; } = false; [MaxLength(100)] public string VerifiedUser { get; set; } = string.Empty; public DateTime? VerifiedDate { get; set; } public Document? Avatar { get; set; } public bool IsProbation { get; set; } = true; // public PositionType PositionType { get; set; } // ประเภทตำแหน่ง // public PositionLevel PositionLevel { get; set; } // ระดับ // public OrganizationPositionEntity? OrganizationPosition { get; set; } public virtual List Educations { get; set; } = new List(); public virtual List Honors { get; set; } = new List(); public virtual List Assessments { get; set; } = new List(); public virtual List Disciplines { get; set; } = new List(); public virtual List Certificates { get; set; } = new List(); public virtual List Trainings { get; set; } = new List(); public virtual List Insignias { get; set; } = new List(); public virtual List Salaries { get; set; } = new List(); public virtual List ProfileHistory { get; set; } = new List(); public virtual List CoupleHistory { get; set; } = new List(); public virtual List FatherHistory { get; set; } = new List(); public virtual List MotherHistory { get; set; } = new List(); public virtual List FamilyHistory { get; set; } = new List(); public virtual List GovernmentHistory { get; set; } = new List(); public virtual List Leaves { get; set; } = new List(); public virtual List CurrentAddressHistory { get; set; } = new List(); public virtual List RegistrationAddressHistory { get; set; } = new List(); public virtual List AddressHistory { get; set; } = new List(); public virtual List Others { get; set; } = new List(); public virtual List Abilitys { get; set; } = new List(); public virtual List Dutys { get; set; } = new List(); public virtual List Nopaids { get; set; } = new List(); public virtual List AvatarHistory { get; set; } = new List(); public virtual List Papers { get; set; } = new List(); public virtual List Childrens { get; set; } = new List(); } }