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? Point { get; set; } [Comment("Id รูปโปรไฟล์")] public virtual Document? ProfileImg { get; set; } [Comment("Id หลักฐานชำระเงิน")] public virtual Document? PaymentImg { 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; } [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? OccupationType { get; set; } [Comment("ตำแหน่งอาชีพ")] public string? OccupationPosition { get; set; } [Comment("สำนัก/บริษัท บริษัท")] public string? OccupationCompany { get; set; } [Comment("กอง/ฝ่าย บริษัท")] public string? OccupationDepartment { get; set; } [MaxLength(200), Comment("อีเมล บริษัท")] public string? OccupationEmail { get; set; } [MaxLength(20), Comment("โทรศัพท์ บริษัท")] public string? OccupationTelephone { get; set; } [Comment("เหตุผลการไม่อนุมัติ")] public string? RejectDetail { get; set; } [Comment("ผลสมัครสอบ")] public bool? Pass { get; set; } } }