using System.ComponentModel.DataAnnotations; using Microsoft.EntityFrameworkCore; using BMA.EHR.Domain.Models.Base; using BMA.EHR.Domain.Models.Documents; using BMA.EHR.Domain.Models.MetaData; using BMA.EHR.Domain.Models.Organizations; namespace BMA.EHR.Domain.Models.Discipline { public class Profile : EntityBase { [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 OrganizationEntity? 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(); // public virtual List Employments { get; set; } = new List(); [Comment("เงินเดือน")] public double? Salary { get; set; } } }