using System.ComponentModel.DataAnnotations; using BMA.EHR.Recurit.Exam.Service.Models; using Microsoft.EntityFrameworkCore; namespace BMA.EHR.Profile.Service.Models.HR { public class Profile : EntityBase { // [Key] // public Guid Id { get; set; } [MaxLength(13), Comment("รหัสบัตรประชาชน")] public string? CitizenId { get; set; } [MaxLength(50)] public string? ProfileType { get; set; } [MaxLength(20), Comment("ประเภทการจ้าง")] public string? EmployeeType { get; set; } [MaxLength(20), Comment("ประเภทลูกจ้าง")] public string? EmployeeClass { get; set; } // [Comment("Id คำนำหน้า")] // public Prefix? Prefix { get; set; } [Required, MaxLength(100), Comment("ชื่อ")] public string? FirstName { get; set; } [Required, MaxLength(100), Comment("นามสกุล")] public string? LastName { get; set; } [Comment("Id คำนำหน้า(เดิม)")] public Guid? PrefixOldId { get; set; } [Required, MaxLength(100), Comment("ชื่อ(เดิม)")] public string? FirstNameOld { get; set; } [Required, MaxLength(100), Comment("นามสกุล(เดิม)")] public string? LastNameOld { get; set; } [MaxLength(100)] public string AvatarRef { get; set; } // [Comment("Id เพศ")] // public Gender? Gender { get; set; } [MaxLength(100), Comment("สัญชาติ")] public string? Nationality { get; set; } [MaxLength(100), Comment("เชื้อชาติ")] public string? Race { get; set; } [Comment("Id ศาสนา")] public Guid? ReligionId { get; set; } [Required, Comment("วันเกิด")] public DateTime BirthDate { get; set; } [Comment("Id กลุ่มเลือด")] public Guid? BloodGroupId { get; set; } [Comment("Id สถานะภาพ")] public Guid? RelationshipId { get; set; } [MaxLength(50), Comment("เบอร์โทร")] public string? TelephoneNumber { get; set; } [Comment("คู่สมรส")] public bool? Couple { get; set; } [Comment("Id คำนำหน้าคู่สมรส")] public Guid? CouplePrefixId { get; set; } [MaxLength(100), Comment("ชื่อคู่สมรส")] public string? CoupleFirstName { get; set; } [MaxLength(100), Comment("นามสกุลคู่สมรส")] public string? CoupleLastName { get; set; } [MaxLength(100), Comment("นามสกุลคู่สมรส(เดิม)")] public string? CoupleLastNameOld { get; set; } [MaxLength(100), Comment("อาชีพคู่สมรส")] public string? CoupleCareer { get; set; } [MaxLength(20), Comment("เลขที่บัตรประชาชนคู่สมรส")] public string? CoupleCitizenId { get; set; } [Comment("มีชีวิตคู่สมรส")] public bool CoupleLive { get; set; } = true; [Comment("Id คำนำหน้าบิดา")] public Guid? FatherPrefixId { get; set; } [MaxLength(100), Comment("ชื่อบิดา")] public string? FatherFirstName { get; set; } [MaxLength(100), Comment("นามสกุลบิดา")] public string? FatherLastName { get; set; } [MaxLength(100), Comment("อาชีพบิดา")] public string? FatherCareer { get; set; } [MaxLength(20), Comment("เลขที่บัตรประชาชนบิดา")] public string? FatherCitizenId { get; set; } [Comment("มีชีวิตบิดา")] public bool FatherLive { get; set; } = true; [Comment("Id คำนำหน้ามารดา")] public Guid? MotherPrefixId { get; set; } [MaxLength(100), Comment("ชื่อมารดา")] public string? MotherFirstName { get; set; } [MaxLength(100), Comment("นามสกุลมารดา")] public string? MotherLastName { get; set; } [MaxLength(100), Comment("อาชีพมารดา")] public string? MotherCareer { get; set; } [MaxLength(20), Comment("เลขที่บัตรประชาชนมารดา")] public string? MotherCitizenId { get; set; } [Comment("มีชีวิตมารดา")] public bool MotherLive { get; set; } = true; [MaxLength(200), Comment("ที่อยู่ปัจจุบัน")] public string? CurrentAddress { get; set; } [Comment("Id แขวงปัจจุบัน")] public Guid? CurrentSubDistrictId { get; set; } [Comment("Id เขตปัจจุบัน")] public Guid? CurrentDistrictId { get; set; } [Comment("Id จังหวัดปัจจุบัน")] public Guid? CurrentProvinceId { get; set; } [MaxLength(5), Comment("รหัสไปรษณีย์ปัจจุบัน")] public string? CurrentZipCode { get; set; } [Comment("ที่อยู่ปัจจุบันตรงกับที่อยู่ตามทะเบียนบ้านหรือไม่")] public bool? RegistrationSame { get; set; } = false; [MaxLength(200), Comment("Id แขวงตามทะเบียนบ้าน")] public string? RegistrationAddress { get; set; } [Comment("แขวงตามทะเบียนบ้าน")] public Guid? RegistrationSubDistrictId { get; set; } [Comment("Id เขตตามทะเบียนบ้าน")] public Guid? RegistrationDistrictId { get; set; } [Comment("Id จังหวัดตามทะเบียนบ้าน")] public Guid? RegistrationProvinceId { get; set; } [MaxLength(5), Comment("รหัสไปรษณีย์ตามทะเบียนบ้าน")] 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; } [Comment("Id สังกัด")] public Guid? OcId { get; set; } [Comment("สังกัด")] 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; } // [Comment("Id ตำแหน่ง")] // public PositionPath? Position { get; set; } // // [Comment("ตำแหน่ง")] // // public string? Position { get; set; } // [Comment("Id เลขที่ตำแหน่ง")] // public PositionNumberEntity? PosNo { get; set; } // [Comment("เลขที่ตำแหน่ง")] // public string? PosNo { get; set; } [Comment("เลขที่ตำแหน่งลูกจ้าง")] public string? PosNoEmployee { get; set; } [Comment("Id สายงาน")] public Guid? PositionLineId { get; set; } [Comment("สายงาน")] public string? PositionLine { get; set; } [Comment("Id ด้าน/สาขา")] public Guid? PositionPathSideId { get; set; } [Comment("ด้าน/สาขา")] public string? PositionPathSide { get; set; } // [Comment("Id ประเภทตำแหน่ง")] // public Guid? PositionTypeId { get; set; } // [Comment("ประเภทตำแหน่ง")] // public PositionType? PositionType { get; set; } // // [Comment(" Id ระดับ")] // // public Guid? PositionLevelId { get; set; } // [Comment("ระดับ")] // public PositionLevel? PositionLevel { get; set; } [Comment("Id ตำแหน่งทางการบริหาร")] public Guid? PositionExecutiveId { get; set; } [Comment("ตำแหน่งทางการบริหาร")] public string? PositionExecutive { get; set; } [Comment("Id ด้านทางการบริหาร")] public Guid? PositionExecutiveSideId { get; set; } [Comment("ด้านทางการบริหาร")] public string? PositionExecutiveSide { get; set; } // [Comment("Id ตำแหน่ง")] // public PositionEmployeePosition? PositionEmployeePosition { get; set; } // // [Comment("ตำแหน่ง")] // // public string? PositionEmployeePosition { get; set; } // [Comment("Id ด้านของตำแหน่ง")] // public PositionEmployeePositionSide? PositionEmployeePositionSide { get; set; } // // [Comment("ด้านของตำแหน่ง")] // // public string? PositionEmployeePositionSide { get; set; } // [Comment(" Id ระดับชั้นงาน")] // public PositionEmployeeLevel? PositionEmployeeLevel { get; set; } // // [Comment("ระดับชั้นงาน")] // // public string? PositionEmployeeLevel { get; set; } // [Comment("Id กลุ่มงาน")] // public PositionEmployeeGroup? PositionEmployeeGroup { get; set; } // // [Comment("กลุ่มงาน")] // // public string? PositionEmployeeGroup { get; set; } // [Comment("Id สายงาน")] // public PositionEmployeeLine? PositionEmployeeLine { get; set; } // // [Comment("สายงาน")] // // public string? PositionEmployeeLine { get; set; } [MaxLength(100), Comment("สถานภาพทางกาย")] 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 string? LeaveDetail { get; set; } public string? LeaveNumberOrder { get; set; } public DateTime? LeaveDateOrder { 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 LimitLeave? LimitLeave { get; set; } public Guid? KeycloakId { get; set; } [Comment("สังกัด")] public string? EmployeeOc { get; set; } [Comment("ค่าจ้าง")] public double? EmployeeWage { get; set; } [Comment("ประเภทบุคคล")] public string? EmployeeTypeIndividual { get; set; } [Comment("เงินเพิ่มการครองชีพชั่วคราว")] public double? EmployeeMoneyIncrease { get; set; } [Comment("เงินช่วยเหลือค่าครองชีพชั่วคราว")] public double? EmployeeMoneyAllowance { get; set; } [Comment("เงินสมทบประกันสังคม(ลูกจ้าง)")] public double? EmployeeMoneyEmployee { get; set; } [Comment("เงินสมทบประกันสังคม(นายจ้าง)")] public double? EmployeeMoneyEmployer { 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(); // public virtual List ChangeNames { get; set; } = new List(); } }