using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations; using BMA.EHR.Recurit.Exam.Service.Models.Documents; namespace BMA.EHR.Recurit.Exam.Service.Models { public class Candidate : EntityBase { [Required, Comment("Id การสอบ")] public virtual PeriodExam? PeriodExam { get; set; } [Comment("Id ตำแหน่งสอบ")] public virtual PositionExam? PositionExam { get; set; } [Required, MaxLength(40), Comment("User Id ผู้สมัคร")] public string UserId { get; set; } = string.Empty; [Required, MaxLength(20), Comment("สถานะผู้สมัคร")] public string Status { get; set; } = "register"; [Comment("เลขประจำตัวสอบ")] public string? ExamIdenNumber { get; set; } [Comment("เลขที่นั่งสอบ")] public string? SeatNumber { get; set; } [Comment("คะแนนเต็มภาค ก")] public string? PointTotalA { get; set; } [Comment("คะแนนภาค ก ความสามารถในการคิดวิเคราะห์")] public string? PointPath1A { get; set; } [Comment("คะแนนภาค ก ภาษาอังกฤษ")] public string? PointPath2A { get; set; } [Comment("คะแนนภาค ก ความรู้และลักษณะการเป็นข้าราชการที่ดี")] public string? PointPath3A { get; set; } [Comment("คะแนนภาค ก")] public string? PointA { get; set; } [Comment("คะแนนภาค ก เปอร์เซนต์")] public string? PointPerA { get; set; } [Comment("ผลสอบภาค ก")] public string? ResultA { get; set; } [Comment("คะแนนเต็มภาค ข")] public string? PointTotalB { get; set; } [Comment("คะแนนภาค ข")] public string? PointB { get; set; } [Comment("คะแนนภาค ข เปอร์เซนต์")] public string? PointPerB { get; set; } [Comment("ผลสอบภาค ข")] public string? ResultB { get; set; } [Comment("คะแนนเต็มภาค ค")] public string? PointTotalC { get; set; } [Comment("คะแนนภาค คทดสอบสมรรถนะหลัก")] public string? PointPath1C { get; set; } [Comment("คะแนนภาค ค สัมภาษณ์")] public string? PointPath2C { get; set; } [Comment("คะแนนภาค ค")] public string? PointC { get; set; } [Comment("คะแนนภาค ค เปอร์เซนต์")] public string? PointPerC { get; set; } [Comment("ผลสอบภาค ค")] public string? ResultC { get; set; } [Comment("Id รูปโปรไฟล์")] public virtual Document? ProfileImg { get; set; } [Comment("Id หลักฐานชำระเงิน")] public virtual Document? PaymentImg { get; set; } [Comment("ลำดับที่สอบได้")] public string? Number { get; set; } [Comment("Id คำนำหน้าชื่อ")] public Guid? PrefixId { get; set; } [Comment("คำนำหน้าชื่อ")] public string? PrefixName { get; set; } [MaxLength(100), Column(Order = 1), Comment("ชื่อจริง")] public string? FirstName { get; set; } [MaxLength(100), Column(Order = 2), Comment("นามสกุล")] public string? LastName { get; set; } [MaxLength(40), Column(Order = 3), Comment("สัญชาติ")] public string? Nationality { get; set; } [MaxLength(40), Comment("วันเกิด")] public DateTime? DateOfBirth { get; set; } [Comment("Id สถานภาพ")] public Guid? RelationshipId { get; set; } [Comment("สถานภาพ")] public string? RelationshipName { get; set; } [Comment("Id ศาสนา")] public Guid? ReligionId { get; set; } [Comment("ศาสนา")] public string? ReligionName { get; set; } [MaxLength(200), Comment("อีเมล")] public string? Email { get; set; } [MaxLength(20), Comment("เลขประจำตัวประชาชน")] public string? CitizenId { get; set; } [Comment("Id เขตที่ออกบัตรประชาชน")] public Guid? CitizenDistrictId { get; set; } [Comment("เขตที่ออกบัตรประชาชน")] public string? CitizenDistrictName { get; set; } [Comment("Id จังหวัดที่ออกบัตรประชาชน")] public Guid? CitizenProvinceId { get; set; } [Comment("จังหวัดที่ออกบัตรประชาชน")] public string? CitizenProvinceName { get; set; } [Comment("วันที่ออกบัตร")] public DateTime? CitizenDate { get; set; } [MaxLength(20), Comment("โทรศัพท์")] public string? Telephone { get; set; } [MaxLength(20), Comment("โทรศัพท์มือถือ")] public string? MobilePhone { get; set; } [Comment("ความสามารถพิเศษ")] public string? Knowledge { get; set; } [Comment("ที่อยู่ตามทะเบียนบ้าน")] public string? RegistAddress { get; set; } [Comment("Id จังหวัดที่อยู่ตามทะเบียนบ้าน")] public Guid? RegistProvinceId { get; set; } [Comment("จังหวัดที่อยู่ตามทะเบียนบ้าน")] public string? RegistProvinceName { get; set; } [Comment("Id อำเภอที่อยู่ตามทะเบียนบ้าน")] public Guid? RegistDistrictId { get; set; } [Comment("อำเภอที่อยู่ตามทะเบียนบ้าน")] public string? RegistDistrictName { get; set; } [Comment("Id ตำบลที่อยู่ตามทะเบียนบ้าน")] public Guid? RegistSubDistrictId { get; set; } [Comment("ตำบลที่อยู่ตามทะเบียนบ้าน")] public string? RegistSubDistrictName { get; set; } [MaxLength(10), Comment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน")] public string? RegistZipCode { get; set; } [Comment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน")] public bool? RegistSame { get; set; } [Comment("ที่อยู่ปัจจุบัน")] public string? CurrentAddress { get; set; } [Comment("Id จังหวัดที่อยู่ปัจจุบัน")] public Guid? CurrentProvinceId { get; set; } [Comment("จังหวัดที่อยู่ปัจจุบัน")] public string? CurrentProvinceName { get; set; } [Comment("Id อำเภอที่อยู่ปัจจุบัน")] public Guid? CurrentDistrictId { get; set; } [Comment("อำเภอที่อยู่ปัจจุบัน")] public string? CurrentDistrictName { get; set; } [Comment("Id ตำบลที่อยู่ปัจจุบัน")] public Guid? CurrentSubDistrictId { get; set; } [Comment("ตำบลที่อยู่ปัจจุบัน")] public string? CurrentSubDistrictName { get; set; } [MaxLength(10), Comment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน")] public string? CurrentZipCode { get; set; } [Comment("คู่สมรส")] public bool? Marry { get; set; } [Comment("Id คำนำหน้าชื่อคู่สมรส")] public Guid? MarryPrefixId { get; set; } [Comment("คำนำหน้าชื่อคู่สมรส")] public string? MarryPrefixName { get; set; } [MaxLength(100), Comment("ชื่อจริงคู่สมรส")] public string? MarryFirstName { get; set; } [MaxLength(100), Comment("นามสกุลคู่สมรส")] public string? MarryLastName { get; set; } [MaxLength(200), Comment("อาชีพคู่สมรส")] public string? MarryOccupation { get; set; } [MaxLength(100), Comment("สัญชาติคู่สมรส")] public string? MarryNationality { get; set; } [Comment("Id คำนำหน้าชื่อบิดา")] public Guid? FatherPrefixId { get; set; } [Comment("คำนำหน้าชื่อบิดา")] public string? FatherPrefixName { get; set; } [MaxLength(100), Comment("ชื่อจริงบิดา")] public string? FatherFirstName { get; set; } [MaxLength(100), Comment("นามสกุลบิดา")] public string? FatherLastName { get; set; } [MaxLength(200), Comment("อาชีพบิดา")] public string? FatherOccupation { get; set; } [MaxLength(100), Comment("สัญชาติบิดา")] public string? FatherNationality { get; set; } [Comment("Id คำนำหน้าชื่อมารดา")] public Guid? MotherPrefixId { get; set; } [Comment("คำนำหน้าชื่อมารดา")] public string? MotherPrefixName { get; set; } [MaxLength(100), Comment("ชื่อจริงมารดา")] public string? MotherFirstName { get; set; } [MaxLength(100), Comment("นามสกุลมารดา")] public string? MotherLastName { get; set; } [MaxLength(200), Comment("อาชีพมารดา")] public string? MotherOccupation { get; set; } [MaxLength(100), Comment("สัญชาติมารดา")] public string? MotherNationality { get; set; } [Comment("ตำแหน่งปัจจุบัน ชื่อตำแหน่ง")] public string? OccupationOrg { get; set; } [Comment("ตำแหน่งปัจจุบัน กอง")] public string? OccupationPile { get; set; } [Comment("ตำแหน่งปัจจุบัน กลุ่ม/ฝ่าย")] public string? OccupationGroup { get; set; } [Comment("ตำแหน่งปัจจุบัน เงินเดือน")] public double? OccupationSalary { get; set; } [Comment("ตำแหน่งปัจจุบัน สังกัด")] public string? OccupationPosition { get; set; } [Comment("ตำแหน่งปัจจุบัน ประเภทราชการ")] public string? OccupationPositionType { get; set; } [MaxLength(20), Comment("ตำแหน่งปัจจุบัน เบอร์โทรที่ทำงาน")] public string? OccupationTelephone { get; set; } [Comment("เหตุผลการไม่อนุมัติ")] public string? RejectDetail { get; set; } [Comment("ผลสมัครสอบ")] public string? Pass { get; set; } [Comment("หมายเหตุ")] public string? ExamReason { get; set; } [Comment("คะแนนความพึงพอใจ")] public int? ReviewPoint { get; set; } [Comment("ข้อแนะนำ")] public string? Review { get; set; } [MaxLength(40), Comment("วันที่สมัคร")] public DateTime? RegisterDate { get; set; } [Comment("วันที่ชำระเงิน")] public DateTime? PaymentDate { get; set; } [Comment("Id คำนำหน้า บุคคลที่สามารถติดต่อได้")] public Guid? ContactPrefixId { get; set; } [Comment("คำนำหน้า บุคคลที่สามารถติดต่อได้")] public string? ContactPrefixName { get; set; } [Comment("ชื่อ บุคคลที่สามารถติดต่อได้")] public string? ContactFirstname { get; set; } [Comment("สกุล บุคคลที่สามารถติดต่อได้")] public string? ContactLastname { get; set; } [Comment("เกี่ยวข้องเป็น บุคคลที่สามารถติดต่อได้")] public string? ContactRelations { get; set; } [Comment("โทรศัพท์ บุคคลที่สามารถติดต่อได้")] public string? ContactTel { get; set; } [Comment("สถานะ เปิดให้ดาวน์โหลดใบสมัคร แสดงสถานที่สอบ และเลขประจำตัวสอบ")] public bool IsShowExamInfo { get; set; } = false; public virtual List Educations { get; set; } = new List(); public virtual List Careers { get; set; } = new List(); } }