diff --git a/Controllers/CandidateController.cs b/Controllers/CandidateController.cs new file mode 100644 index 0000000..40b8b3d --- /dev/null +++ b/Controllers/CandidateController.cs @@ -0,0 +1,454 @@ +using BMA.EHR.Recurit.Exam.Service.Response; +using BMA.EHR.Recurit.Exam.Service.Services; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Swashbuckle.AspNetCore.Annotations; + +namespace BMA.EHR.Recurit.Exam.Service.Controllers +{ + [Route("api/v{version:apiVersion}/candidate")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("จัดการข้อมูลศาสนา เพื่อนำไปใช้งานในระบบ")] + public class CandidateController : BaseController + { + #region " Fields " + + private readonly CandidateService _candidateService; + + #endregion + + #region " Constructor and Destructor " + + public CandidateController(CandidateService candidateService) + { + _candidateService = candidateService; + } + + #endregion + + #region " Methods " + + /// + /// ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการดึง ข้อมูล ข้อมูลส่วนตัว ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("information/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncInformation(string examId) + { + try + { + var items = await _candidateService.GetsAsyncInformation(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการดึง ข้อมูล ข้อมูลที่อยู่ ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("address/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncAddress(string examId) + { + try + { + var items = await _candidateService.GetsAsyncAddress(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ข้อมูล ข้อมูลครอบครัว ผู้สมัคร + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการดึง ข้อมูล ข้อมูลครอบครัว ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("family/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncFamily(string examId) + { + try + { + var items = await _candidateService.GetsAsyncFamily(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ข้อมูล อาชีพ ผู้สมัคร + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการดึง ข้อมูล อาชีพ ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("occupation/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncOccupation(string examId) + { + try + { + var items = await _candidateService.GetsAsyncOccupation(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการดึง ข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("career/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncCareer(string examId) + { + try + { + var items = await _candidateService.GetsAsyncCareer(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ข้อมูล ประวัติการศีกษา ผู้สมัคร + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการดึง ข้อมูล ประวัติการศีกษา ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("education/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncEducation(string examId) + { + try + { + var items = await _candidateService.GetsAsyncEducation(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ตรวจสอบว่าผู้ใช้งานสมัครสอบหรือยัง + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการตรวจสอบว่าผู้ใช้งานสมัครสอบหรือยัง สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("check/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> GetsAsyncRegisterExam(string examId) + { + try + { + var items = await _candidateService.GetsAsyncRegisterExam(examId); + + return Success(items); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// อัพเดทข้อมูล ข้อมูลส่วนตัว ผู้สมัคร + /// + /// ข้อมูลส่วนตัว + /// + /// เมื่อทำการอัพเดทข้อมูล ข้อมูลส่วนตัว ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("information/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> UpdateAsyncInformation(string examId, CandidateInformationResponseItem candidateInformation) + { + try + { + await _candidateService.UpdateAsyncInformation(examId, candidateInformation); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// อัพเดทข้อมูล ข้อมูลที่อยู่ ผู้สมัคร + /// + /// ข้อมูลที่อยู่ + /// + /// เมื่อทำการอัพเดทข้อมูล ข้อมูลที่อยู่ ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("address/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> UpdateAsyncAddress(string examId, CandidateAddressResponseItem candidateAddress) + { + try + { + await _candidateService.UpdateAsyncAddress(examId, candidateAddress); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// อัพเดทข้อมูล ข้อมูลครอบครัว ผู้สมัคร + /// + /// ข้อมูลครอบครัว + /// + /// เมื่อทำการอัพเดทข้อมูล ข้อมูลครอบครัว ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("family/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> UpdateAsyncFamily(string examId, CandidateFamilyResponseItem candidateFamily) + { + try + { + await _candidateService.UpdateAsyncFamily(examId, candidateFamily); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// อัพเดทข้อมูล อาชีพ ผู้สมัคร + /// + /// อาชีพ + /// + /// เมื่อทำการอัพเดทข้อมูล อาชีพ ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("occupation/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> UpdateAsyncOccupation(string examId, CandidateOccupationResponseItem candidateOccupation) + { + try + { + await _candidateService.UpdateAsyncOccupation(examId, candidateOccupation); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// สร้างข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร + /// + /// ข้อมูลประวัติการทำงาน/ฝึกงาน + /// + /// เมื่อทำการสร้างข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("career/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> CreateAsyncCareer(string examId, CandidateCareerResponseItem candidateCareer) + { + try + { + await _candidateService.CreateAsyncCareer(examId, candidateCareer); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// สร้างข้อมูล ประวัติการศีกษา ผู้สมัคร + /// + /// ข้อมูลประวัติการศีกษา + /// + /// เมื่อทำการสร้างข้อมูล ประวัติการศีกษา ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("education/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> CreateAsyncEducation(string examId, CandidateEducationResponseItem candidateEducation) + { + try + { + await _candidateService.CreateAsyncEducation(examId, candidateEducation); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// อัพเดทข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร + /// + /// รหัสประวัติการทำงาน/ฝึกงาน + /// ข้อมูลประวัติการทำงาน/ฝึกงาน + /// + /// เมื่อทำการอัพเดทข้อมูล ประวัติการทำงาน/ฝึกงาน ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("career/{careerId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> UpdateAsyncCareer(string careerId, CandidateCareerResponseItem candidateCareer) + { + try + { + await _candidateService.UpdateAsyncCareer(careerId, candidateCareer); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// อัพเดทข้อมูล ประวัติการศีกษา ผู้สมัคร + /// + /// รหัสประวัติการศีกษา + /// ข้อมูลประวัติการศีกษา + /// + /// เมื่อทำการอัพเดทข้อมูล ประวัติการศีกษา ผู้สมัคร สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("career/{educationId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> UpdateAsyncEducation(string educationId, CandidateEducationResponseItem candidateEducation) + { + try + { + await _candidateService.UpdateAsyncEducation(educationId, candidateEducation); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + /// + /// ผู้สมัครทำการสมัครสอบ + /// + /// รหัสการสมัคร + /// + /// เมื่อทำการผู้สมัครทำการสมัครสอบ สำเร็จ + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("register/{examId:length(36)}")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + public async Task> RegisterCandidateService(string examId) + { + try + { + await _candidateService.RegisterCandidateService(examId); + + return Success(); + } + catch (Exception ex) + { + return Error(ex); + } + } + + #endregion + } +} diff --git a/Controllers/EducationLevelController.cs b/Controllers/EducationLevelController.cs index 53ff658..e8c0765 100644 --- a/Controllers/EducationLevelController.cs +++ b/Controllers/EducationLevelController.cs @@ -2,6 +2,7 @@ using BMA.EHR.Recurit.Exam.Service.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Swashbuckle.AspNetCore.Annotations; namespace BMA.EHR.Recurit.Exam.Service.Controllers { @@ -10,6 +11,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers [ApiController] [Produces("application/json")] [Authorize] + [SwaggerTag("จัดการข้อมูลระดับการศึกษา เพื่อนำไปใช้งานในระบบ")] public class EducationLevelController : BaseController { #region " Fields " diff --git a/Controllers/PrefixController.cs b/Controllers/PrefixController.cs index a58568f..bbea613 100644 --- a/Controllers/PrefixController.cs +++ b/Controllers/PrefixController.cs @@ -2,6 +2,7 @@ using BMA.EHR.Recurit.Exam.Service.Response; using BMA.EHR.Recurit.Exam.Service.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Swashbuckle.AspNetCore.Annotations; namespace BMA.EHR.Recurit.Exam.Service.Controllers { @@ -10,6 +11,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers [ApiController] [Produces("application/json")] [Authorize] + [SwaggerTag("จัดการข้อมูลคำนำหน้า เพื่อนำไปใช้งานในระบบ")] public class PrefixController : BaseController { #region " Fields " diff --git a/Controllers/RelationshipController.cs b/Controllers/RelationshipController.cs index 9ede7f0..7810a27 100644 --- a/Controllers/RelationshipController.cs +++ b/Controllers/RelationshipController.cs @@ -2,7 +2,7 @@ using BMA.EHR.Recurit.Exam.Service.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; - +using Swashbuckle.AspNetCore.Annotations; namespace BMA.EHR.Recurit.Exam.Service.Controllers { @@ -11,6 +11,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers [ApiController] [Produces("application/json")] [Authorize] + [SwaggerTag("จัดการข้อมูลสถานะภาพ เพื่อนำไปใช้งานในระบบ")] public class RelationshipController : BaseController { #region " Fields " diff --git a/Controllers/ReligionController.cs b/Controllers/ReligionController.cs index 7b03e4b..6ccfe4c 100644 --- a/Controllers/ReligionController.cs +++ b/Controllers/ReligionController.cs @@ -2,6 +2,7 @@ using BMA.EHR.Recurit.Exam.Service.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Swashbuckle.AspNetCore.Annotations; namespace BMA.EHR.Recurit.Exam.Service.Controllers { @@ -10,6 +11,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers [ApiController] [Produces("application/json")] [Authorize] + [SwaggerTag("จัดการข้อมูลศาสนา เพื่อนำไปใช้งานในระบบ")] public class ReligionController : BaseController { #region " Fields " diff --git a/Core/GlobalMessages.cs b/Core/GlobalMessages.cs new file mode 100644 index 0000000..62cdce7 --- /dev/null +++ b/Core/GlobalMessages.cs @@ -0,0 +1,19 @@ +namespace BMA.EHR.Recurit.Exam.Service.Core +{ + public class GlobalMessages + { + public const string DataExist = "มีข้อมูลดังกล่าวอยู่ในระบบแล้ว"; + public const string NameDupicate = "ชื่อวันหยุดนี้มีอยู่ในระบบอยู่แล้ว"; + public const string ExamNotFound = "ไม่พบข้อมูลการรับสมัครสอบ"; + public const string CandidateNotFound = "ไม่พบข้อมูลผู้สมัครสอบ"; + public const string CareerNotFound = "ไม่พบข้อมูลประวัติการทำงาน/ฝึกงาน"; + public const string EducationNotFound = "ไม่พบข้อมูลประวัติการศีกษา"; + public const string DistrictNotFound = "ไม่พบข้อมูลเขต/อำเภอ"; + public const string EducationLevelNotFound = "ไม่พบข้อมูลวุฒิการศีกษา"; + public const string PrefixNotFound = "ไม่พบข้อมูลคำนำหน้า"; + public const string ProvinceNotFound = "ไม่พบข้อมูลจังหวัด"; + public const string RelationshipNotFound = "ไม่พบข้อมูลสถานะภาพ"; + public const string ReligionNotFound = "ไม่พบข้อมูลศาสนา"; + public const string SubDistrictNotFound = "ไม่พบข้อมูลตำบล/แขวง"; + } +} diff --git a/Core/HolidayHelper.cs b/Core/HolidayHelper.cs new file mode 100644 index 0000000..d687a6b --- /dev/null +++ b/Core/HolidayHelper.cs @@ -0,0 +1,39 @@ +namespace BMA.EHR.Recurit.Exam.Service.Core +{ + public static class HolidayHelper + { + public static bool IsHoliday(DateTime date, List holidays) + { + return holidays.Contains(date); + } + + public static bool IsWeekend(DateTime date) + { + return date.DayOfWeek == DayOfWeek.Saturday + || date.DayOfWeek == DayOfWeek.Sunday; + } + + public static bool IsWeekend6Days(DateTime date) + { + return date.DayOfWeek == DayOfWeek.Sunday; + } + + public static DateTime GetNextWorkingDay(DateTime date, List holidays) + { + do + { + date = date.AddDays(1); + } while (IsHoliday(date, holidays) || IsWeekend(date)); + return date; + } + + public static DateTime GetNextWorkingDay6Days(DateTime date, List holidays) + { + do + { + date = date.AddDays(1); + } while (IsHoliday(date, holidays) || IsWeekend6Days(date)); + return date; + } + } +} diff --git a/Data/ApplicationDbContext.cs b/Data/ApplicationDbContext.cs index c1b033c..da67518 100644 --- a/Data/ApplicationDbContext.cs +++ b/Data/ApplicationDbContext.cs @@ -28,5 +28,13 @@ namespace BMA.EHR.Recurit.Exam.Service.Data public DbSet SubDistricts { get; set; } + public DbSet PeriodExams { get; set; } + + public DbSet Candidates { get; set; } + + public DbSet Careers { get; set; } + + public DbSet Educations { get; set; } + } } diff --git a/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/Data/Migrations/ApplicationDbContextModelSnapshot.cs index 1fc7238..a5ed1a0 100644 --- a/Data/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Data/Migrations/ApplicationDbContextModelSnapshot.cs @@ -19,6 +19,360 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations .HasAnnotation("ProductVersion", "7.0.4") .HasAnnotation("Relational:MaxIdentifierLength", 64); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.Property("status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("สถานะผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => { b.Property("Id") @@ -88,6 +442,96 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.ToTable("Districts"); }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => { b.Property("Id") @@ -152,6 +596,86 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.ToTable("EducationLevels"); }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => { b.Property("Id") @@ -484,6 +1008,106 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.ToTable("SubDistricts"); }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => { b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") @@ -493,6 +1117,25 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.Navigation("Province"); }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => { b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") diff --git a/Migrations/20230323095454_create table Candidate.Designer.cs b/Migrations/20230323095454_create table Candidate.Designer.cs new file mode 100644 index 0000000..2bc51f9 --- /dev/null +++ b/Migrations/20230323095454_create table Candidate.Designer.cs @@ -0,0 +1,1180 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230323095454_create table Candidate")] + partial class createtableCandidate + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .IsRequired() + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230323095454_create table Candidate.cs b/Migrations/20230323095454_create table Candidate.cs new file mode 100644 index 0000000..e97db3e --- /dev/null +++ b/Migrations/20230323095454_create table Candidate.cs @@ -0,0 +1,385 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class createtableCandidate : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "PeriodExams", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + Name = table.Column(type: "varchar(150)", maxLength: 150, nullable: false, comment: "ชื่อการสอบ") + .Annotation("MySql:CharSet", "utf8mb4"), + StartDate = table.Column(type: "datetime(6)", nullable: false, comment: "วันเริ่มสมัครสอบ"), + EndDate = table.Column(type: "datetime(6)", nullable: false, comment: "วันสิ้นสุด"), + Detail = table.Column(type: "longtext", nullable: false, comment: "รายละเอียดสมัครสอบ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน"), + CreatedAt = table.Column(type: "datetime(6)", nullable: false, comment: "สร้างข้อมูลเมื่อ"), + CreatedUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdatedAt = table.Column(type: "datetime(6)", nullable: true, comment: "แก้ไขข้อมูลล่าสุดเมื่อ"), + LastUpdateUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdateFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_PeriodExams", x => x.Id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "Candidates", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + FirstName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "ชื่อจริง") + .Annotation("MySql:CharSet", "utf8mb4"), + LastName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "นามสกุล") + .Annotation("MySql:CharSet", "utf8mb4"), + Nationality = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "สัญชาติ") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedAt = table.Column(type: "datetime(6)", nullable: false, comment: "สร้างข้อมูลเมื่อ"), + CreatedUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdatedAt = table.Column(type: "datetime(6)", nullable: true, comment: "แก้ไขข้อมูลล่าสุดเมื่อ"), + LastUpdateUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdateFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + PeriodExamId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + UserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ผู้สมัคร") + .Annotation("MySql:CharSet", "utf8mb4"), + PrefixId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + DateOfBirth = table.Column(type: "datetime(6)", maxLength: 40, nullable: true, comment: "วันเกิด"), + RelationshipId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + Email = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "อีเมล") + .Annotation("MySql:CharSet", "utf8mb4"), + CitizenId = table.Column(type: "varchar(20)", maxLength: 20, nullable: false, comment: "เลขประจำตัวประชาชน") + .Annotation("MySql:CharSet", "utf8mb4"), + CitizenDistrictId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + CitizenProvinceId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + CitizenDate = table.Column(type: "datetime(6)", nullable: true, comment: "วันที่ออกบัตร"), + Telephone = table.Column(type: "varchar(20)", maxLength: 20, nullable: false, comment: "โทรศัพท์") + .Annotation("MySql:CharSet", "utf8mb4"), + MobilePhone = table.Column(type: "varchar(20)", maxLength: 20, nullable: false, comment: "โทรศัพท์มือถือ") + .Annotation("MySql:CharSet", "utf8mb4"), + Knowledge = table.Column(type: "longtext", nullable: false, comment: "ความสามารถพิเศษ") + .Annotation("MySql:CharSet", "utf8mb4"), + RegistAddress = table.Column(type: "longtext", nullable: false, comment: "ที่อยู่ตามทะเบียนบ้าน") + .Annotation("MySql:CharSet", "utf8mb4"), + RegistProvinceId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RegistDistrictId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RegistSubDistrictId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RegistZipCode = table.Column(type: "varchar(10)", maxLength: 10, nullable: false, comment: "รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน") + .Annotation("MySql:CharSet", "utf8mb4"), + RegistSame = table.Column(type: "tinyint(1)", nullable: false, comment: "ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"), + CurrentAddress = table.Column(type: "longtext", nullable: false, comment: "ที่อยู่ปัจจุบัน") + .Annotation("MySql:CharSet", "utf8mb4"), + CurrentProvinceId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + CurrentDistrictId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + CurrentSubDistrictId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + CurrentZipCode = table.Column(type: "varchar(10)", maxLength: 10, nullable: false, comment: "รหัสไปรษณีย์ที่อยู่ปัจจุบัน") + .Annotation("MySql:CharSet", "utf8mb4"), + Marry = table.Column(type: "tinyint(1)", nullable: false, comment: "คู่สมรส"), + MarryPrefixId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + MarryFirstName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "ชื่อจริงคู่สมรส") + .Annotation("MySql:CharSet", "utf8mb4"), + MarryLastName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "นามสกุลคู่สมรส") + .Annotation("MySql:CharSet", "utf8mb4"), + FatherPrefixId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + FatherFirstName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "ชื่อจริงบิดา") + .Annotation("MySql:CharSet", "utf8mb4"), + FatherLastName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "นามสกุลบิดา") + .Annotation("MySql:CharSet", "utf8mb4"), + MotherPrefixId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + MotherFirstName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "ชื่อจริงมารดา") + .Annotation("MySql:CharSet", "utf8mb4"), + MotherLastName = table.Column(type: "varchar(100)", maxLength: 100, nullable: false, comment: "นามสกุลมารดา") + .Annotation("MySql:CharSet", "utf8mb4"), + OccupationType = table.Column(type: "longtext", nullable: false, comment: "ประเภทอาชีพที่ทำงานมาก่อน") + .Annotation("MySql:CharSet", "utf8mb4"), + OccupationCompany = table.Column(type: "longtext", nullable: false, comment: "สำนัก/บริษัท บริษัท") + .Annotation("MySql:CharSet", "utf8mb4"), + OccupationDepartment = table.Column(type: "longtext", nullable: false, comment: "กอง/ฝ่าย บริษัท") + .Annotation("MySql:CharSet", "utf8mb4"), + OccupationEmail = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "อีเมล บริษัท") + .Annotation("MySql:CharSet", "utf8mb4"), + OccupationTelephone = table.Column(type: "varchar(20)", maxLength: 20, nullable: false, comment: "โทรศัพท์ บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + }, + constraints: table => + { + table.PrimaryKey("PK_Candidates", x => x.Id); + table.ForeignKey( + name: "FK_Candidates_Districts_CitizenDistrictId", + column: x => x.CitizenDistrictId, + principalTable: "Districts", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Districts_CurrentDistrictId", + column: x => x.CurrentDistrictId, + principalTable: "Districts", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Districts_RegistDistrictId", + column: x => x.RegistDistrictId, + principalTable: "Districts", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_PeriodExams_PeriodExamId", + column: x => x.PeriodExamId, + principalTable: "PeriodExams", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Candidates_Prefixes_FatherPrefixId", + column: x => x.FatherPrefixId, + principalTable: "Prefixes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Prefixes_MarryPrefixId", + column: x => x.MarryPrefixId, + principalTable: "Prefixes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Prefixes_MotherPrefixId", + column: x => x.MotherPrefixId, + principalTable: "Prefixes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Prefixes_PrefixId", + column: x => x.PrefixId, + principalTable: "Prefixes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Provinces_CitizenProvinceId", + column: x => x.CitizenProvinceId, + principalTable: "Provinces", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Provinces_CurrentProvinceId", + column: x => x.CurrentProvinceId, + principalTable: "Provinces", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Provinces_RegistProvinceId", + column: x => x.RegistProvinceId, + principalTable: "Provinces", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_Relationships_RelationshipId", + column: x => x.RelationshipId, + principalTable: "Relationships", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_SubDistricts_CurrentSubDistrictId", + column: x => x.CurrentSubDistrictId, + principalTable: "SubDistricts", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Candidates_SubDistricts_RegistSubDistrictId", + column: x => x.RegistSubDistrictId, + principalTable: "SubDistricts", + principalColumn: "Id"); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "Careers", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + DurationStart = table.Column(type: "datetime(6)", nullable: false, comment: "ระยะเวลาเริ่ม"), + DurationEnd = table.Column(type: "datetime(6)", nullable: false, comment: "ระยะเวลาสิ้นสุด"), + Name = table.Column(type: "longtext", nullable: false, comment: "สถานที่ทำงาน/ฝึกงาน") + .Annotation("MySql:CharSet", "utf8mb4"), + Position = table.Column(type: "longtext", nullable: false, comment: "ตำแหน่ง/ลักษณะงาน") + .Annotation("MySql:CharSet", "utf8mb4"), + Salary = table.Column(type: "int", maxLength: 20, nullable: false, comment: "เงินเดือนสุดท้ายก่อนออก"), + Reason = table.Column(type: "longtext", nullable: false, comment: "เหตุผลที่ออก") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedAt = table.Column(type: "datetime(6)", nullable: false, comment: "สร้างข้อมูลเมื่อ"), + CreatedUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdatedAt = table.Column(type: "datetime(6)", nullable: true, comment: "แก้ไขข้อมูลล่าสุดเมื่อ"), + LastUpdateUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdateFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CandidateId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_Careers", x => x.Id); + table.ForeignKey( + name: "FK_Careers_Candidates_CandidateId", + column: x => x.CandidateId, + principalTable: "Candidates", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "Educations", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + DurationStart = table.Column(type: "datetime(6)", nullable: false, comment: "ระยะเวลาเริ่ม"), + DurationEnd = table.Column(type: "datetime(6)", nullable: false, comment: "ระยะเวลาสิ้นสุด"), + Name = table.Column(type: "longtext", nullable: false, comment: "ชื่อสถานศึกษา") + .Annotation("MySql:CharSet", "utf8mb4"), + Major = table.Column(type: "longtext", nullable: false, comment: "สาขาวิชา/วิชาเอก") + .Annotation("MySql:CharSet", "utf8mb4"), + Scores = table.Column(type: "int", maxLength: 10, nullable: false, comment: "คะแนนเฉลี่ยตลอดหลักสูตร"), + CreatedAt = table.Column(type: "datetime(6)", nullable: false, comment: "สร้างข้อมูลเมื่อ"), + CreatedUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdatedAt = table.Column(type: "datetime(6)", nullable: true, comment: "แก้ไขข้อมูลล่าสุดเมื่อ"), + LastUpdateUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdateFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CandidateId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + EducationLevelId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_Educations", x => x.Id); + table.ForeignKey( + name: "FK_Educations_Candidates_CandidateId", + column: x => x.CandidateId, + principalTable: "Candidates", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_Educations_EducationLevels_EducationLevelId", + column: x => x.EducationLevelId, + principalTable: "EducationLevels", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_CitizenDistrictId", + table: "Candidates", + column: "CitizenDistrictId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_CitizenProvinceId", + table: "Candidates", + column: "CitizenProvinceId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_CurrentDistrictId", + table: "Candidates", + column: "CurrentDistrictId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_CurrentProvinceId", + table: "Candidates", + column: "CurrentProvinceId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_CurrentSubDistrictId", + table: "Candidates", + column: "CurrentSubDistrictId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_FatherPrefixId", + table: "Candidates", + column: "FatherPrefixId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_MarryPrefixId", + table: "Candidates", + column: "MarryPrefixId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_MotherPrefixId", + table: "Candidates", + column: "MotherPrefixId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_PeriodExamId", + table: "Candidates", + column: "PeriodExamId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_PrefixId", + table: "Candidates", + column: "PrefixId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_RegistDistrictId", + table: "Candidates", + column: "RegistDistrictId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_RegistProvinceId", + table: "Candidates", + column: "RegistProvinceId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_RegistSubDistrictId", + table: "Candidates", + column: "RegistSubDistrictId"); + + migrationBuilder.CreateIndex( + name: "IX_Candidates_RelationshipId", + table: "Candidates", + column: "RelationshipId"); + + migrationBuilder.CreateIndex( + name: "IX_Careers_CandidateId", + table: "Careers", + column: "CandidateId"); + + migrationBuilder.CreateIndex( + name: "IX_Educations_CandidateId", + table: "Educations", + column: "CandidateId"); + + migrationBuilder.CreateIndex( + name: "IX_Educations_EducationLevelId", + table: "Educations", + column: "EducationLevelId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Careers"); + + migrationBuilder.DropTable( + name: "Educations"); + + migrationBuilder.DropTable( + name: "Candidates"); + + migrationBuilder.DropTable( + name: "PeriodExams"); + } + } +} diff --git a/Migrations/20230323104531_update table Candidate feild null.Designer.cs b/Migrations/20230323104531_update table Candidate feild null.Designer.cs new file mode 100644 index 0000000..c3a0641 --- /dev/null +++ b/Migrations/20230323104531_update table Candidate feild null.Designer.cs @@ -0,0 +1,1157 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230323104531_update table Candidate feild null")] + partial class updatetableCandidatefeildnull + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230323104531_update table Candidate feild null.cs b/Migrations/20230323104531_update table Candidate feild null.cs new file mode 100644 index 0000000..7f5da31 --- /dev/null +++ b/Migrations/20230323104531_update table Candidate feild null.cs @@ -0,0 +1,866 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class updatetableCandidatefeildnull : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterColumn( + name: "Telephone", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: true, + comment: "โทรศัพท์", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldComment: "โทรศัพท์") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "RegistZipCode", + table: "Candidates", + type: "varchar(10)", + maxLength: 10, + nullable: true, + comment: "รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน", + oldClrType: typeof(string), + oldType: "varchar(10)", + oldMaxLength: 10, + oldComment: "รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "RegistSame", + table: "Candidates", + type: "tinyint(1)", + nullable: true, + comment: "ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน", + oldClrType: typeof(bool), + oldType: "tinyint(1)", + oldComment: "ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + migrationBuilder.AlterColumn( + name: "RegistAddress", + table: "Candidates", + type: "longtext", + nullable: true, + comment: "ที่อยู่ตามทะเบียนบ้าน", + oldClrType: typeof(string), + oldType: "longtext", + oldComment: "ที่อยู่ตามทะเบียนบ้าน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "OccupationType", + table: "Candidates", + type: "longtext", + nullable: true, + comment: "ประเภทอาชีพที่ทำงานมาก่อน", + oldClrType: typeof(string), + oldType: "longtext", + oldComment: "ประเภทอาชีพที่ทำงานมาก่อน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "OccupationTelephone", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: true, + comment: "โทรศัพท์ บริษัท", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldComment: "โทรศัพท์ บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "OccupationEmail", + table: "Candidates", + type: "varchar(200)", + maxLength: 200, + nullable: true, + comment: "อีเมล บริษัท", + oldClrType: typeof(string), + oldType: "varchar(200)", + oldMaxLength: 200, + oldComment: "อีเมล บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "OccupationDepartment", + table: "Candidates", + type: "longtext", + nullable: true, + comment: "กอง/ฝ่าย บริษัท", + oldClrType: typeof(string), + oldType: "longtext", + oldComment: "กอง/ฝ่าย บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "OccupationCompany", + table: "Candidates", + type: "longtext", + nullable: true, + comment: "สำนัก/บริษัท บริษัท", + oldClrType: typeof(string), + oldType: "longtext", + oldComment: "สำนัก/บริษัท บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "Nationality", + table: "Candidates", + type: "varchar(40)", + maxLength: 40, + nullable: true, + comment: "สัญชาติ", + oldClrType: typeof(string), + oldType: "varchar(40)", + oldMaxLength: 40, + oldComment: "สัญชาติ") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "MotherLastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "นามสกุลมารดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "นามสกุลมารดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "MotherFirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "ชื่อจริงมารดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "ชื่อจริงมารดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "MobilePhone", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: true, + comment: "โทรศัพท์มือถือ", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldComment: "โทรศัพท์มือถือ") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "MarryLastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "นามสกุลคู่สมรส", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "นามสกุลคู่สมรส") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "MarryFirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "ชื่อจริงคู่สมรส", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "ชื่อจริงคู่สมรส") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "Marry", + table: "Candidates", + type: "tinyint(1)", + nullable: true, + comment: "คู่สมรส", + oldClrType: typeof(bool), + oldType: "tinyint(1)", + oldComment: "คู่สมรส"); + + migrationBuilder.AlterColumn( + name: "LastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "นามสกุล", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "นามสกุล") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "Knowledge", + table: "Candidates", + type: "longtext", + nullable: true, + comment: "ความสามารถพิเศษ", + oldClrType: typeof(string), + oldType: "longtext", + oldComment: "ความสามารถพิเศษ") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "FirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "ชื่อจริง", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "ชื่อจริง") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "FatherLastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "นามสกุลบิดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "นามสกุลบิดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "FatherFirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: true, + comment: "ชื่อจริงบิดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldComment: "ชื่อจริงบิดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "Email", + table: "Candidates", + type: "varchar(200)", + maxLength: 200, + nullable: true, + comment: "อีเมล", + oldClrType: typeof(string), + oldType: "varchar(200)", + oldMaxLength: 200, + oldComment: "อีเมล") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "CurrentZipCode", + table: "Candidates", + type: "varchar(10)", + maxLength: 10, + nullable: true, + comment: "รหัสไปรษณีย์ที่อยู่ปัจจุบัน", + oldClrType: typeof(string), + oldType: "varchar(10)", + oldMaxLength: 10, + oldComment: "รหัสไปรษณีย์ที่อยู่ปัจจุบัน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "CurrentAddress", + table: "Candidates", + type: "longtext", + nullable: true, + comment: "ที่อยู่ปัจจุบัน", + oldClrType: typeof(string), + oldType: "longtext", + oldComment: "ที่อยู่ปัจจุบัน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "CitizenId", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: true, + comment: "เลขประจำตัวประชาชน", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldComment: "เลขประจำตัวประชาชน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "Telephone", + keyValue: null, + column: "Telephone", + value: ""); + + migrationBuilder.AlterColumn( + name: "Telephone", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: false, + comment: "โทรศัพท์", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldNullable: true, + oldComment: "โทรศัพท์") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "RegistZipCode", + keyValue: null, + column: "RegistZipCode", + value: ""); + + migrationBuilder.AlterColumn( + name: "RegistZipCode", + table: "Candidates", + type: "varchar(10)", + maxLength: 10, + nullable: false, + comment: "รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน", + oldClrType: typeof(string), + oldType: "varchar(10)", + oldMaxLength: 10, + oldNullable: true, + oldComment: "รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "RegistSame", + table: "Candidates", + type: "tinyint(1)", + nullable: false, + defaultValue: false, + comment: "ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน", + oldClrType: typeof(bool), + oldType: "tinyint(1)", + oldNullable: true, + oldComment: "ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "RegistAddress", + keyValue: null, + column: "RegistAddress", + value: ""); + + migrationBuilder.AlterColumn( + name: "RegistAddress", + table: "Candidates", + type: "longtext", + nullable: false, + comment: "ที่อยู่ตามทะเบียนบ้าน", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true, + oldComment: "ที่อยู่ตามทะเบียนบ้าน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "OccupationType", + keyValue: null, + column: "OccupationType", + value: ""); + + migrationBuilder.AlterColumn( + name: "OccupationType", + table: "Candidates", + type: "longtext", + nullable: false, + comment: "ประเภทอาชีพที่ทำงานมาก่อน", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true, + oldComment: "ประเภทอาชีพที่ทำงานมาก่อน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "OccupationTelephone", + keyValue: null, + column: "OccupationTelephone", + value: ""); + + migrationBuilder.AlterColumn( + name: "OccupationTelephone", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: false, + comment: "โทรศัพท์ บริษัท", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldNullable: true, + oldComment: "โทรศัพท์ บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "OccupationEmail", + keyValue: null, + column: "OccupationEmail", + value: ""); + + migrationBuilder.AlterColumn( + name: "OccupationEmail", + table: "Candidates", + type: "varchar(200)", + maxLength: 200, + nullable: false, + comment: "อีเมล บริษัท", + oldClrType: typeof(string), + oldType: "varchar(200)", + oldMaxLength: 200, + oldNullable: true, + oldComment: "อีเมล บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "OccupationDepartment", + keyValue: null, + column: "OccupationDepartment", + value: ""); + + migrationBuilder.AlterColumn( + name: "OccupationDepartment", + table: "Candidates", + type: "longtext", + nullable: false, + comment: "กอง/ฝ่าย บริษัท", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true, + oldComment: "กอง/ฝ่าย บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "OccupationCompany", + keyValue: null, + column: "OccupationCompany", + value: ""); + + migrationBuilder.AlterColumn( + name: "OccupationCompany", + table: "Candidates", + type: "longtext", + nullable: false, + comment: "สำนัก/บริษัท บริษัท", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true, + oldComment: "สำนัก/บริษัท บริษัท") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "Nationality", + keyValue: null, + column: "Nationality", + value: ""); + + migrationBuilder.AlterColumn( + name: "Nationality", + table: "Candidates", + type: "varchar(40)", + maxLength: 40, + nullable: false, + comment: "สัญชาติ", + oldClrType: typeof(string), + oldType: "varchar(40)", + oldMaxLength: 40, + oldNullable: true, + oldComment: "สัญชาติ") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "MotherLastName", + keyValue: null, + column: "MotherLastName", + value: ""); + + migrationBuilder.AlterColumn( + name: "MotherLastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "นามสกุลมารดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "นามสกุลมารดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "MotherFirstName", + keyValue: null, + column: "MotherFirstName", + value: ""); + + migrationBuilder.AlterColumn( + name: "MotherFirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "ชื่อจริงมารดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "ชื่อจริงมารดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "MobilePhone", + keyValue: null, + column: "MobilePhone", + value: ""); + + migrationBuilder.AlterColumn( + name: "MobilePhone", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: false, + comment: "โทรศัพท์มือถือ", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldNullable: true, + oldComment: "โทรศัพท์มือถือ") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "MarryLastName", + keyValue: null, + column: "MarryLastName", + value: ""); + + migrationBuilder.AlterColumn( + name: "MarryLastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "นามสกุลคู่สมรส", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "นามสกุลคู่สมรส") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "MarryFirstName", + keyValue: null, + column: "MarryFirstName", + value: ""); + + migrationBuilder.AlterColumn( + name: "MarryFirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "ชื่อจริงคู่สมรส", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "ชื่อจริงคู่สมรส") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AlterColumn( + name: "Marry", + table: "Candidates", + type: "tinyint(1)", + nullable: false, + defaultValue: false, + comment: "คู่สมรส", + oldClrType: typeof(bool), + oldType: "tinyint(1)", + oldNullable: true, + oldComment: "คู่สมรส"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "LastName", + keyValue: null, + column: "LastName", + value: ""); + + migrationBuilder.AlterColumn( + name: "LastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "นามสกุล", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "นามสกุล") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "Knowledge", + keyValue: null, + column: "Knowledge", + value: ""); + + migrationBuilder.AlterColumn( + name: "Knowledge", + table: "Candidates", + type: "longtext", + nullable: false, + comment: "ความสามารถพิเศษ", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true, + oldComment: "ความสามารถพิเศษ") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "FirstName", + keyValue: null, + column: "FirstName", + value: ""); + + migrationBuilder.AlterColumn( + name: "FirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "ชื่อจริง", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "ชื่อจริง") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "FatherLastName", + keyValue: null, + column: "FatherLastName", + value: ""); + + migrationBuilder.AlterColumn( + name: "FatherLastName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "นามสกุลบิดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "นามสกุลบิดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "FatherFirstName", + keyValue: null, + column: "FatherFirstName", + value: ""); + + migrationBuilder.AlterColumn( + name: "FatherFirstName", + table: "Candidates", + type: "varchar(100)", + maxLength: 100, + nullable: false, + comment: "ชื่อจริงบิดา", + oldClrType: typeof(string), + oldType: "varchar(100)", + oldMaxLength: 100, + oldNullable: true, + oldComment: "ชื่อจริงบิดา") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "Email", + keyValue: null, + column: "Email", + value: ""); + + migrationBuilder.AlterColumn( + name: "Email", + table: "Candidates", + type: "varchar(200)", + maxLength: 200, + nullable: false, + comment: "อีเมล", + oldClrType: typeof(string), + oldType: "varchar(200)", + oldMaxLength: 200, + oldNullable: true, + oldComment: "อีเมล") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "CurrentZipCode", + keyValue: null, + column: "CurrentZipCode", + value: ""); + + migrationBuilder.AlterColumn( + name: "CurrentZipCode", + table: "Candidates", + type: "varchar(10)", + maxLength: 10, + nullable: false, + comment: "รหัสไปรษณีย์ที่อยู่ปัจจุบัน", + oldClrType: typeof(string), + oldType: "varchar(10)", + oldMaxLength: 10, + oldNullable: true, + oldComment: "รหัสไปรษณีย์ที่อยู่ปัจจุบัน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "CurrentAddress", + keyValue: null, + column: "CurrentAddress", + value: ""); + + migrationBuilder.AlterColumn( + name: "CurrentAddress", + table: "Candidates", + type: "longtext", + nullable: false, + comment: "ที่อยู่ปัจจุบัน", + oldClrType: typeof(string), + oldType: "longtext", + oldNullable: true, + oldComment: "ที่อยู่ปัจจุบัน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.UpdateData( + table: "Candidates", + keyColumn: "CitizenId", + keyValue: null, + column: "CitizenId", + value: ""); + + migrationBuilder.AlterColumn( + name: "CitizenId", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: false, + comment: "เลขประจำตัวประชาชน", + oldClrType: typeof(string), + oldType: "varchar(20)", + oldMaxLength: 20, + oldNullable: true, + oldComment: "เลขประจำตัวประชาชน") + .Annotation("MySql:CharSet", "utf8mb4") + .OldAnnotation("MySql:CharSet", "utf8mb4"); + } + } +} diff --git a/Migrations/20230323140000_update table Candidate status.Designer.cs b/Migrations/20230323140000_update table Candidate status.Designer.cs new file mode 100644 index 0000000..da46552 --- /dev/null +++ b/Migrations/20230323140000_update table Candidate status.Designer.cs @@ -0,0 +1,1163 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230323140000_update table Candidate status")] + partial class updatetableCandidatestatus + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.Property("status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("สถานะผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230323140000_update table Candidate status.cs b/Migrations/20230323140000_update table Candidate status.cs new file mode 100644 index 0000000..585f487 --- /dev/null +++ b/Migrations/20230323140000_update table Candidate status.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class updatetableCandidatestatus : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "status", + table: "Candidates", + type: "varchar(20)", + maxLength: 20, + nullable: false, + defaultValue: "", + comment: "สถานะผู้สมัคร") + .Annotation("MySql:CharSet", "utf8mb4"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "status", + table: "Candidates"); + } + } +} diff --git a/Migrations/20230323140314_update table Candidate consend.Designer.cs b/Migrations/20230323140314_update table Candidate consend.Designer.cs new file mode 100644 index 0000000..21301a2 --- /dev/null +++ b/Migrations/20230323140314_update table Candidate consend.Designer.cs @@ -0,0 +1,1167 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230323140314_update table Candidate consend")] + partial class updatetableCandidateconsend + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.Property("consend") + .HasColumnType("tinyint(1)") + .HasComment("ยอมรับเงื่อนไข"); + + b.Property("status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("สถานะผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230323140314_update table Candidate consend.cs b/Migrations/20230323140314_update table Candidate consend.cs new file mode 100644 index 0000000..aabbf36 --- /dev/null +++ b/Migrations/20230323140314_update table Candidate consend.cs @@ -0,0 +1,30 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class updatetableCandidateconsend : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "consend", + table: "Candidates", + type: "tinyint(1)", + nullable: false, + defaultValue: false, + comment: "ยอมรับเงื่อนไข"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "consend", + table: "Candidates"); + } + } +} diff --git a/Migrations/20230323140441_delete table Candidate feild null.Designer.cs b/Migrations/20230323140441_delete table Candidate feild null.Designer.cs new file mode 100644 index 0000000..c5d3dce --- /dev/null +++ b/Migrations/20230323140441_delete table Candidate feild null.Designer.cs @@ -0,0 +1,1163 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230323140441_delete table Candidate feild null")] + partial class deletetableCandidatefeildnull + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.Property("status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("สถานะผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230323140441_delete table Candidate feild null.cs b/Migrations/20230323140441_delete table Candidate feild null.cs new file mode 100644 index 0000000..09e2a90 --- /dev/null +++ b/Migrations/20230323140441_delete table Candidate feild null.cs @@ -0,0 +1,30 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class deletetableCandidatefeildnull : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "consend", + table: "Candidates"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "consend", + table: "Candidates", + type: "tinyint(1)", + nullable: false, + defaultValue: false, + comment: "ยอมรับเงื่อนไข"); + } + } +} diff --git a/Migrations/20230323142120_Update table Candidate marry null.Designer.cs b/Migrations/20230323142120_Update table Candidate marry null.Designer.cs new file mode 100644 index 0000000..f2bc45b --- /dev/null +++ b/Migrations/20230323142120_Update table Candidate marry null.Designer.cs @@ -0,0 +1,1163 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230323142120_Update table Candidate marry null")] + partial class UpdatetableCandidatemarrynull + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.Property("status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("สถานะผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("int") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันสิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(5) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("ชื่อการสอบ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันเริ่มสมัครสอบ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany() + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PeriodExam"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230323142120_Update table Candidate marry null.cs b/Migrations/20230323142120_Update table Candidate marry null.cs new file mode 100644 index 0000000..a39fdd4 --- /dev/null +++ b/Migrations/20230323142120_Update table Candidate marry null.cs @@ -0,0 +1,22 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class UpdatetableCandidatemarrynull : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/Models/Candidate.cs b/Models/Candidate.cs new file mode 100644 index 0000000..ebf72bd --- /dev/null +++ b/Models/Candidate.cs @@ -0,0 +1,147 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Recurit.Exam.Service.Models +{ + public class Candidate : EntityBase + { + [Required, Comment("Id การสอบ")] + public virtual PeriodExam? PeriodExam { get; set; } + + [Required, MaxLength(40), Comment("User Id ผู้สมัคร")] + public string UserId { get; set; } = string.Empty; + + [Required, MaxLength(20), Comment("สถานะผู้สมัคร")] + public string status { get; set; } = "draft"; + + + + [Comment("คำนำหน้าชื่อ")] + public virtual Prefix? Prefix { 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("ศาสนา")] + public virtual Relationship? Relationship { get; set; } + + [MaxLength(200), Comment("อีเมล")] + public string? Email { get; set; } + + [MaxLength(20), Comment("เลขประจำตัวประชาชน")] + public string? CitizenId { get; set; } + + [Comment("เขตที่ออกบัตรประชาชน")] + public virtual District? CitizenDistrict { get; set; } + + [Comment("จังหวัดที่ออกบัตรประชาชน")] + public virtual Province? CitizenProvince { 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("จังหวัดที่อยู่ตามทะเบียนบ้าน")] + public virtual Province? RegistProvince { get; set; } + + [Comment("อำเภอที่อยู่ตามทะเบียนบ้าน")] + public virtual District? RegistDistrict { get; set; } + + [Comment("ตำบลที่อยู่ตามทะเบียนบ้าน")] + public virtual SubDistrict? RegistSubDistrict { get; set; } + + [MaxLength(10), Comment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน")] + public string? RegistZipCode { get; set; } + + [Comment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน")] + public bool? RegistSame { get; set; } + + [Comment("ที่อยู่ปัจจุบัน")] + public string? CurrentAddress { get; set; } + + [Comment("จังหวัดที่อยู่ปัจจุบัน")] + public virtual Province? CurrentProvince { get; set; } + + [Comment("อำเภอที่อยู่ปัจจุบัน")] + public virtual District? CurrentDistrict { get; set; } + + [Comment("ตำบลที่อยู่ปัจจุบัน")] + public virtual SubDistrict? CurrentSubDistrict { get; set; } + + [MaxLength(10), Comment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน")] + public string? CurrentZipCode { get; set; } + + + + [Comment("คู่สมรส")] + public bool? Marry { get; set; } + + [Comment("คำนำหน้าชื่อคู่สมรส")] + public virtual Prefix? MarryPrefix { get; set; } + + [MaxLength(100), Comment("ชื่อจริงคู่สมรส")] + public string? MarryFirstName { get; set; } + + [MaxLength(100), Comment("นามสกุลคู่สมรส")] + public string? MarryLastName { get; set; } + + [Comment("คำนำหน้าชื่อบิดา")] + public virtual Prefix? FatherPrefix { get; set; } + + [MaxLength(100), Comment("ชื่อจริงบิดา")] + public string? FatherFirstName { get; set; } + + [MaxLength(100), Comment("นามสกุลบิดา")] + public string? FatherLastName { get; set; } + + [Comment("คำนำหน้าชื่อมารดา")] + public virtual Prefix? MotherPrefix { get; set; } + + [MaxLength(100), Comment("ชื่อจริงมารดา")] + public string? MotherFirstName { get; set; } + + [MaxLength(100), Comment("นามสกุลมารดา")] + public string? MotherLastName { get; set; } + + + + [Comment("ประเภทอาชีพที่ทำงานมาก่อน")] + public string? OccupationType { 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; } + } +} diff --git a/Models/Career.cs b/Models/Career.cs new file mode 100644 index 0000000..c4561e0 --- /dev/null +++ b/Models/Career.cs @@ -0,0 +1,30 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Recurit.Exam.Service.Models +{ + public class Career : EntityBase + { + [Required, Column(Order = 7), Comment("Id ผู้สมัคร")] + public virtual Candidate? Candidate { get; set; } + + [Required, Column(Order = 3), Comment("สถานที่ทำงาน/ฝึกงาน")] + public string Name { get; set; } = string.Empty; + + [Required, Column(Order = 4), Comment("ตำแหน่ง/ลักษณะงาน")] + public string Position { get; set; } = string.Empty; + + [Required, MaxLength(20), Column(Order = 5), Comment("เงินเดือนสุดท้ายก่อนออก")] + public int Salary { get; set; } + + [Required, Column(Order = 1), Comment("ระยะเวลาเริ่ม")] + public DateTime DurationStart { get; set; } = DateTime.Now.Date; + + [Required, Column(Order = 2), Comment("ระยะเวลาสิ้นสุด")] + public DateTime DurationEnd { get; set; } = DateTime.Now.Date; + + [Required, Column(Order = 6), Comment("เหตุผลที่ออก")] + public string Reason { get; set; } = string.Empty; + } +} diff --git a/Models/Education.cs b/Models/Education.cs new file mode 100644 index 0000000..06018d7 --- /dev/null +++ b/Models/Education.cs @@ -0,0 +1,30 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Recurit.Exam.Service.Models +{ + public class Education : EntityBase + { + [Required, Column(Order = 7), Comment("Id ผู้สมัคร")] + public virtual Candidate? Candidate { get; set; } + + [Required, Column(Order = 5), Comment("วุฒิที่ได้รับ")] + public virtual EducationLevel? EducationLevel { get; set; } + + [Required, Column(Order = 4), Comment("สาขาวิชา/วิชาเอก")] + public string Major { get; set; } = string.Empty; + + [Required, MaxLength(10), Column(Order = 6), Comment("คะแนนเฉลี่ยตลอดหลักสูตร")] + public int Scores { get; set; } + + [Required, Column(Order = 3), Comment("ชื่อสถานศึกษา")] + public string Name { get; set; } = string.Empty; + + [Required, Column(Order = 1), Comment("ระยะเวลาเริ่ม")] + public DateTime DurationStart { get; set; } = DateTime.Now.Date; + + [Required, Column(Order = 2), Comment("ระยะเวลาสิ้นสุด")] + public DateTime DurationEnd { get; set; } = DateTime.Now.Date; + } +} diff --git a/Models/PeriodExam.cs b/Models/PeriodExam.cs new file mode 100644 index 0000000..a2669e3 --- /dev/null +++ b/Models/PeriodExam.cs @@ -0,0 +1,24 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Recurit.Exam.Service.Models +{ + public class PeriodExam : EntityBase + { + [Required, MaxLength(150), Column(Order = 1), Comment("ชื่อการสอบ")] + public string Name { get; set; } = string.Empty; + + [Required, Column(Order = 2), Comment("วันเริ่มสมัครสอบ")] + public DateTime StartDate { get; set; } = DateTime.Now.Date; + + [Required, Column(Order = 3), Comment("วันสิ้นสุด")] + public DateTime EndDate { get; set; } = DateTime.Now.Date; + + [Required, Column(Order = 4), Comment("รายละเอียดสมัครสอบ")] + public string Detail { get; set; } = string.Empty; + + [Column(Order = 5), Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + } +} diff --git a/Program.cs b/Program.cs index eff5988..68b022d 100644 --- a/Program.cs +++ b/Program.cs @@ -85,6 +85,7 @@ builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddTransient(); +builder.Services.AddTransient(); // Add services to the container. builder.Services.AddControllers(options => diff --git a/Response/CandidateAddressResponseItem.cs b/Response/CandidateAddressResponseItem.cs new file mode 100644 index 0000000..ee040a2 --- /dev/null +++ b/Response/CandidateAddressResponseItem.cs @@ -0,0 +1,25 @@ + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class CandidateAddressResponseItem + { + public string? RegistAddress { get; set; } + public Models.Province? RegistProvince { get; set; } + public string? RegistProvinceId { get; set; } + public Models.District? RegistDistrict { get; set; } + public string? RegistDistrictId { get; set; } + public Models.SubDistrict? RegistSubDistrict { get; set; } + public string? RegistSubDistrictId { get; set; } + public string? RegistZipCode { get; set; } + public bool? RegistSame { get; set; } + public string? CurrentAddress { get; set; } + public Models.Province? CurrentProvince { get; set; } + public string? CurrentProvinceId { get; set; } + public Models.District? CurrentDistrict { get; set; } + public string? CurrentDistrictId { get; set; } + public Models.SubDistrict? CurrentSubDistrict { get; set; } + public string? CurrentSubDistrictId { get; set; } + public string? CurrentZipCode { get; set; } + + } +} diff --git a/Response/CandidateCareerResponseItem.cs b/Response/CandidateCareerResponseItem.cs new file mode 100644 index 0000000..588d326 --- /dev/null +++ b/Response/CandidateCareerResponseItem.cs @@ -0,0 +1,13 @@ + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class CandidateCareerResponseItem + { + public string Name { get; set; } = string.Empty; + public string Position { get; set; } = string.Empty; + public int Salary { get; set; } + public DateTime DurationStart { get; set; } + public DateTime DurationEnd { get; set; } + public string Reason { get; set; } = string.Empty; + } +} diff --git a/Response/CandidateEducationResponseItem.cs b/Response/CandidateEducationResponseItem.cs new file mode 100644 index 0000000..911879c --- /dev/null +++ b/Response/CandidateEducationResponseItem.cs @@ -0,0 +1,13 @@ + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class CandidateEducationResponseItem + { + public string EducationLevelId { get; set; } = string.Empty; + public string Major { get; set; } = string.Empty; + public int Scores { get; set; } + public string Name { get; set; } = string.Empty; + public DateTime DurationStart { get; set; } + public DateTime DurationEnd { get; set; } + } +} diff --git a/Response/CandidateFamilyResponseItem.cs b/Response/CandidateFamilyResponseItem.cs new file mode 100644 index 0000000..d05f921 --- /dev/null +++ b/Response/CandidateFamilyResponseItem.cs @@ -0,0 +1,20 @@ + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class CandidateFamilyResponseItem + { + public bool? Marry { get; set; } + public Models.Prefix? MarryPrefix { get; set; } + public string? MarryPrefixId { get; set; } + public string? MarryFirstName { get; set; } + public string? MarryLastName { get; set; } + public Models.Prefix? FatherPrefix { get; set; } + public string? FatherPrefixId { get; set; } + public string? FatherFirstName { get; set; } + public string? FatherLastName { get; set; } + public Models.Prefix? MotherPrefix { get; set; } + public string? MotherPrefixId { get; set; } + public string? MotherFirstName { get; set; } + public string? MotherLastName { get; set; } + } +} diff --git a/Response/CandidateInformationResponseItem.cs b/Response/CandidateInformationResponseItem.cs new file mode 100644 index 0000000..5f97128 --- /dev/null +++ b/Response/CandidateInformationResponseItem.cs @@ -0,0 +1,17 @@ + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class CandidateInformationResponseItem + { + public Models.Prefix? Prefix { get; set; } + public string? PrefixId { get; set; } + public string? FirstName { get; set; } = string.Empty; + public string? LastName { get; set; } = string.Empty; + public string? Nationality { get; set; } = string.Empty; + public DateTime? DateOfBirth { get; set; } + public Models.Relationship? Relationship { get; set; } + public string? RelationshipId { get; set; } + public string? Email { get; set; } = string.Empty; + public string? CitizenId { get; set; } = string.Empty; + } +} diff --git a/Response/CandidateOccupationResponseItem.cs b/Response/CandidateOccupationResponseItem.cs new file mode 100644 index 0000000..3f61926 --- /dev/null +++ b/Response/CandidateOccupationResponseItem.cs @@ -0,0 +1,16 @@ + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class CandidateOccupationResponseItem + { + public string? OccupationType { get; set; } + + public string? OccupationCompany { get; set; } + + public string? OccupationDepartment { get; set; } + + public string? OccupationEmail { get; set; } + + public string? OccupationTelephone { get; set; } + } +} diff --git a/Services/CandidateService.cs b/Services/CandidateService.cs new file mode 100644 index 0000000..7e81263 --- /dev/null +++ b/Services/CandidateService.cs @@ -0,0 +1,567 @@ +using System.Security.Claims; +using BMA.EHR.Recurit.Exam.Service.Core; +using BMA.EHR.Recurit.Exam.Service.Data; +using BMA.EHR.Recurit.Exam.Service.Models; +using BMA.EHR.Recurit.Exam.Service.Response; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Recurit.Exam.Service.Services +{ + public class CandidateService + { + #region " Fields " + + private readonly ApplicationDbContext _context; + private readonly IHttpContextAccessor _httpContextAccessor; + + #endregion + + #region " Constructor and Destructor " + + public CandidateService(ApplicationDbContext context, + IHttpContextAccessor httpContextAccessor) + { + _context = context; + _httpContextAccessor = httpContextAccessor; + } + + #endregion + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + #endregion + + #region " Methods " + + public async Task GetsAsyncInformation(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + return await _context.Candidates.AsQueryable() + .Where(x => x.PeriodExam == exam && x.UserId == UserId) + .Select(x => new CandidateInformationResponseItem + { + Prefix = x.Prefix, + FirstName = x.FirstName, + LastName = x.LastName, + Nationality = x.Nationality, + DateOfBirth = x.DateOfBirth, + Relationship = x.Relationship, + Email = x.Email, + CitizenId = x.CitizenId, + }) + .FirstOrDefaultAsync(); + } + + public async Task GetsAsyncAddress(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + return await _context.Candidates.AsQueryable() + .Where(x => x.PeriodExam == exam && x.UserId == UserId) + .Select(x => new CandidateAddressResponseItem + { + RegistAddress = x.RegistAddress, + RegistProvince = x.RegistProvince, + RegistDistrict = x.RegistDistrict, + RegistSubDistrict = x.RegistSubDistrict, + RegistZipCode = x.RegistZipCode, + RegistSame = x.RegistSame, + CurrentAddress = x.CurrentAddress, + CurrentProvince = x.CurrentProvince, + CurrentDistrict = x.CurrentDistrict, + CurrentSubDistrict = x.CurrentSubDistrict, + CurrentZipCode = x.CurrentZipCode, + }) + .FirstOrDefaultAsync(); + } + + public async Task GetsAsyncFamily(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + return await _context.Candidates.AsQueryable() + .Where(x => x.PeriodExam == exam && x.UserId == UserId) + .Select(x => new CandidateFamilyResponseItem + { + Marry = x.Marry, + MarryPrefix = x.MarryPrefix, + MarryFirstName = x.MarryFirstName, + MarryLastName = x.MarryLastName, + FatherPrefix = x.FatherPrefix, + FatherFirstName = x.FatherFirstName, + FatherLastName = x.FatherLastName, + MotherPrefix = x.MotherPrefix, + MotherFirstName = x.MotherFirstName, + MotherLastName = x.MotherLastName, + }) + .FirstOrDefaultAsync(); + } + + public async Task GetsAsyncOccupation(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + return await _context.Candidates.AsQueryable() + .Where(x => x.PeriodExam == exam && x.UserId == UserId) + .Select(x => new CandidateOccupationResponseItem + { + OccupationType = x.OccupationType, + OccupationCompany = x.OccupationCompany, + OccupationDepartment = x.OccupationDepartment, + OccupationEmail = x.OccupationEmail, + OccupationTelephone = x.OccupationTelephone, + }) + .FirstOrDefaultAsync(); + } + + public async Task> GetsAsyncCareer(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId) && x.UserId == UserId); + + return await _context.Careers.AsQueryable() + .Where(x => x.Candidate == candidate) + .OrderBy(d => d.DurationStart) + .ToListAsync(); + } + + public async Task> GetsAsyncEducation(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId) && x.UserId == UserId); + + return await _context.Educations.AsQueryable() + .Where(x => x.Candidate == candidate) + .OrderBy(d => d.DurationStart) + .ToListAsync(); + } + + public async Task GetsAsyncRegisterExam(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId) && x.UserId == UserId); + + return candidate != null; + } + + public async Task CreateAsyncCandidate(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + var _candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.PeriodExam == exam && x.UserId == UserId); + if (_candidate == null) + { + var candidate = new Candidate + { + PeriodExam = exam, + CreatedAt = DateTime.Now, + CreatedUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + LastUpdateUserId = UserId ?? "", + CreatedFullName = FullName ?? "", + LastUpdateFullName = FullName ?? "", + UserId = UserId ?? "", + }; + + await _context.Candidates.AddAsync(candidate); + + await _context.SaveChangesAsync(); + + return candidate.Id.ToString(); + } + else + { + _candidate.LastUpdatedAt = DateTime.Now; + _candidate.LastUpdateUserId = UserId ?? ""; + _candidate.LastUpdateFullName = FullName ?? ""; + return _candidate.Id.ToString(); + } + } + + public async Task UpdateAsyncInformation(string examId, CandidateInformationResponseItem updated) + { + var candidateId = await CreateAsyncCandidate(examId); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId)); + + if (candidate == null) + throw new Exception(GlobalMessages.ExamNotFound); + + if (updated.PrefixId != null) + { + var prefix = await _context.Prefixes.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.PrefixId)); + + if (prefix == null) + throw new Exception(GlobalMessages.PrefixNotFound); + candidate.Prefix = prefix; + } + + if (updated.RelationshipId != null) + { + var relationship = await _context.Relationships.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.RelationshipId)); + + if (relationship == null) + throw new Exception(GlobalMessages.RelationshipNotFound); + candidate.Relationship = relationship; + } + + candidate.FirstName = updated.FirstName; + candidate.LastName = updated.LastName; + candidate.Nationality = updated.Nationality; + candidate.DateOfBirth = updated.DateOfBirth; + candidate.Email = updated.Email; + candidate.CitizenId = updated.CitizenId; + + await _context.SaveChangesAsync(); + } + + public async Task UpdateAsyncAddress(string examId, CandidateAddressResponseItem updated) + { + var candidateId = await CreateAsyncCandidate(examId); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId)); + + if (candidate == null) + throw new Exception(GlobalMessages.ExamNotFound); + + if (updated.RegistProvinceId != null) + { + var registProvince = await _context.Provinces.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.RegistProvinceId)); + + if (registProvince == null) + throw new Exception(GlobalMessages.ProvinceNotFound); + candidate.RegistProvince = registProvince; + } + + if (updated.RegistProvinceId != null) + { + var registProvince = await _context.Provinces.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.RegistProvinceId)); + + if (registProvince == null) + throw new Exception(GlobalMessages.ProvinceNotFound); + candidate.RegistProvince = registProvince; + } + + if (updated.RegistDistrictId != null) + { + var registDistrict = await _context.Districts.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.RegistDistrictId)); + + if (registDistrict == null) + throw new Exception(GlobalMessages.DistrictNotFound); + candidate.RegistDistrict = registDistrict; + } + + if (updated.RegistSubDistrictId != null) + { + var registSubDistrict = await _context.SubDistricts.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.RegistSubDistrictId)); + + if (registSubDistrict == null) + throw new Exception(GlobalMessages.SubDistrictNotFound); + candidate.RegistSubDistrict = registSubDistrict; + candidate.RegistZipCode = registSubDistrict.ZipCode; + } + + if (updated.CurrentProvinceId != null) + { + var currentProvince = await _context.Provinces.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.CurrentProvinceId)); + + if (currentProvince == null) + throw new Exception(GlobalMessages.ProvinceNotFound); + candidate.CurrentProvince = currentProvince; + } + + if (updated.CurrentProvinceId != null) + { + var currentProvince = await _context.Provinces.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.CurrentProvinceId)); + + if (currentProvince == null) + throw new Exception(GlobalMessages.ProvinceNotFound); + candidate.CurrentProvince = currentProvince; + } + + if (updated.CurrentDistrictId != null) + { + var currentDistrict = await _context.Districts.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.CurrentDistrictId)); + + if (currentDistrict == null) + throw new Exception(GlobalMessages.DistrictNotFound); + candidate.CurrentDistrict = currentDistrict; + } + + if (updated.CurrentSubDistrictId != null) + { + var currentSubDistrict = await _context.SubDistricts.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.CurrentSubDistrictId)); + + if (currentSubDistrict == null) + throw new Exception(GlobalMessages.SubDistrictNotFound); + candidate.CurrentSubDistrict = currentSubDistrict; + candidate.CurrentZipCode = currentSubDistrict.ZipCode; + } + + candidate.RegistAddress = updated.RegistAddress; + candidate.RegistSame = updated.RegistSame; + candidate.CurrentAddress = updated.CurrentAddress; + + await _context.SaveChangesAsync(); + } + + public async Task UpdateAsyncFamily(string examId, CandidateFamilyResponseItem updated) + { + var candidateId = await CreateAsyncCandidate(examId); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId)); + + if (candidate == null) + throw new Exception(GlobalMessages.ExamNotFound); + + if (updated.MarryPrefixId != null) + { + var prefix = await _context.Prefixes.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.MarryPrefixId)); + + if (prefix == null) + throw new Exception(GlobalMessages.PrefixNotFound); + candidate.MarryPrefix = prefix; + } + + if (updated.FatherPrefixId != null) + { + var prefix = await _context.Prefixes.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.FatherPrefixId)); + + if (prefix == null) + throw new Exception(GlobalMessages.PrefixNotFound); + candidate.FatherPrefix = prefix; + } + + if (updated.MotherPrefixId != null) + { + var prefix = await _context.Prefixes.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.MotherPrefixId)); + + if (prefix == null) + throw new Exception(GlobalMessages.PrefixNotFound); + candidate.MotherPrefix = prefix; + } + + candidate.Marry = updated.Marry; + candidate.MarryFirstName = updated.MarryFirstName; + candidate.MarryLastName = updated.MarryLastName; + candidate.FatherFirstName = updated.FatherFirstName; + candidate.FatherLastName = updated.FatherLastName; + candidate.MotherFirstName = updated.MotherFirstName; + candidate.MotherLastName = updated.MotherLastName; + + await _context.SaveChangesAsync(); + } + + public async Task UpdateAsyncOccupation(string examId, CandidateOccupationResponseItem updated) + { + var candidateId = await CreateAsyncCandidate(examId); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId)); + + if (candidate == null) + throw new Exception(GlobalMessages.ExamNotFound); + + candidate.OccupationType = updated.OccupationType; + candidate.OccupationCompany = updated.OccupationCompany; + candidate.OccupationDepartment = updated.OccupationDepartment; + candidate.OccupationEmail = updated.OccupationEmail; + candidate.OccupationTelephone = updated.OccupationTelephone; + + await _context.SaveChangesAsync(); + } + + public async Task CreateAsyncCareer(string examId, CandidateCareerResponseItem updated) + { + var candidateId = await CreateAsyncCandidate(examId); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId)); + + var career = new Career + { + Candidate = candidate, + Name = updated.Name, + Position = updated.Position, + Salary = updated.Salary, + DurationStart = updated.DurationStart, + DurationEnd = updated.DurationEnd, + Reason = updated.Reason, + CreatedAt = DateTime.Now, + CreatedUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + LastUpdateUserId = UserId ?? "", + CreatedFullName = FullName ?? "", + LastUpdateFullName = FullName ?? "", + }; + + await _context.Careers.AddAsync(career); + + await _context.SaveChangesAsync(); + } + + public async Task CreateAsyncEducation(string examId, CandidateEducationResponseItem updated) + { + var candidateId = await CreateAsyncCandidate(examId); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(candidateId)); + + var educationLevel = await _context.EducationLevels.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.EducationLevelId)); + + if (educationLevel == null) + throw new Exception(GlobalMessages.EducationLevelNotFound); + + var education = new Education + { + Candidate = candidate, + EducationLevel = educationLevel, + Major = updated.Major, + Scores = updated.Scores, + Name = updated.Name, + DurationStart = updated.DurationStart, + DurationEnd = updated.DurationEnd, + CreatedAt = DateTime.Now, + CreatedUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + LastUpdateUserId = UserId ?? "", + CreatedFullName = FullName ?? "", + LastUpdateFullName = FullName ?? "", + }; + + await _context.Educations.AddAsync(education); + + await _context.SaveChangesAsync(); + } + + public async Task UpdateAsyncCareer(string careerId, CandidateCareerResponseItem updated) + { + var career = await _context.Careers.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(careerId)); + + if (career == null) + throw new Exception(GlobalMessages.CareerNotFound); + + career.Name = updated.Name; + career.Position = updated.Position; + career.Salary = updated.Salary; + career.DurationStart = updated.DurationStart; + career.DurationEnd = updated.DurationEnd; + career.Reason = updated.Reason; + career.LastUpdatedAt = DateTime.Now; + career.LastUpdateUserId = UserId ?? ""; + career.LastUpdateFullName = FullName ?? ""; + + await _context.SaveChangesAsync(); + } + + public async Task UpdateAsyncEducation(string educationId, CandidateEducationResponseItem updated) + { + var education = await _context.Educations.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(educationId)); + + if (education == null) + throw new Exception(GlobalMessages.EducationNotFound); + + var educationLevel = await _context.EducationLevels.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(updated.EducationLevelId)); + + if (educationLevel == null) + throw new Exception(GlobalMessages.EducationLevelNotFound); + + education.EducationLevel = educationLevel; + education.Major = updated.Major; + education.Scores = updated.Scores; + education.Name = updated.Name; + education.DurationStart = updated.DurationStart; + education.DurationEnd = updated.DurationEnd; + education.LastUpdatedAt = DateTime.Now; + education.LastUpdateUserId = UserId ?? ""; + education.LastUpdateFullName = FullName ?? ""; + + await _context.SaveChangesAsync(); + } + + public async Task RegisterCandidateService(string examId) + { + var exam = await _context.PeriodExams.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); + + if (exam == null) + throw new Exception(GlobalMessages.ExamNotFound); + + var candidate = await _context.Candidates.AsQueryable() + .FirstOrDefaultAsync(x => x.PeriodExam == exam && x.UserId == UserId); + + if (candidate == null) + throw new Exception(GlobalMessages.CandidateNotFound); + + candidate.status = "registered"; + + await _context.SaveChangesAsync(); + } + + #endregion + } +} diff --git a/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll b/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll index 8edc5b8..12952f3 100644 Binary files a/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll and b/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll differ diff --git a/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb b/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb index 18129ba..e066155 100644 Binary files a/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb and b/bin/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb differ diff --git a/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.csproj.CoreCompileInputs.cache b/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.csproj.CoreCompileInputs.cache index 69d77d7..7064f0a 100644 --- a/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.csproj.CoreCompileInputs.cache +++ b/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -c7bf28559ceebe7592323d156f2a33ca24e588b7 +f28e709d0ae471c3251171cbc4d3332dfd93616d diff --git a/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll b/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll index 8edc5b8..12952f3 100644 Binary files a/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll and b/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.dll differ diff --git a/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb b/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb index 18129ba..e066155 100644 Binary files a/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb and b/obj/Debug/net7.0/BMA-EHR-Recurit-Exam-Service.pdb differ diff --git a/obj/Debug/net7.0/ref/BMA-EHR-Recurit-Exam-Service.dll b/obj/Debug/net7.0/ref/BMA-EHR-Recurit-Exam-Service.dll index 0925064..3196a43 100644 Binary files a/obj/Debug/net7.0/ref/BMA-EHR-Recurit-Exam-Service.dll and b/obj/Debug/net7.0/ref/BMA-EHR-Recurit-Exam-Service.dll differ diff --git a/obj/Debug/net7.0/refint/BMA-EHR-Recurit-Exam-Service.dll b/obj/Debug/net7.0/refint/BMA-EHR-Recurit-Exam-Service.dll index 0925064..3196a43 100644 Binary files a/obj/Debug/net7.0/refint/BMA-EHR-Recurit-Exam-Service.dll and b/obj/Debug/net7.0/refint/BMA-EHR-Recurit-Exam-Service.dll differ