diff --git a/Controllers/CMSCandidateController.cs b/Controllers/CMSCandidateController.cs
index 8a516c8..0714855 100644
--- a/Controllers/CMSCandidateController.cs
+++ b/Controllers/CMSCandidateController.cs
@@ -227,6 +227,136 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
}
+ ///
+ /// ข้อมูล home page cms
+ ///
+ ///
+ /// เมื่อทำการข้อมูล home page cms สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("home")]
+ [AllowAnonymous]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task GetHomePageAsync()
+ {
+ // try
+ // {
+ var item = await _cmsCandidateService.GetHomePageAsync();
+
+ return item;
+ // }
+ // catch (Exception ex)
+ // {
+ // return null;
+ // }
+ }
+
+ ///
+ /// ข้อมูล content home page
+ ///
+ ///
+ /// เมื่อทำการข้อมูล content home page สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("content/home")]
+ [AllowAnonymous]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task GetHomePageContentAsync()
+ {
+ // try
+ // {
+ var item = await _cmsCandidateService.GetHomePageContentAsync();
+
+ return item;
+ // }
+ // catch (Exception ex)
+ // {
+ // return null;
+ // }
+ }
+
+ ///
+ /// ข้อมูล content about page
+ ///
+ ///
+ /// เมื่อทำการข้อมูล content about page สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("content/about")]
+ [AllowAnonymous]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task GetAboutPageContentAsync()
+ {
+ // try
+ // {
+ var item = await _cmsCandidateService.GetAboutPageContentAsync();
+
+ return item;
+ // }
+ // catch (Exception ex)
+ // {
+ // return null;
+ // }
+ }
+
+ ///
+ /// List ข้อมูลรอบสมัครสอบ
+ ///
+ ///
+ /// เมื่อทำการ List ข้อมูลรอบสมัครสอบ สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("qualifying")]
+ [AllowAnonymous]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> GetsCMSExamsAsync(int limit = 0)
+ {
+ // try
+ // {
+ var items = await _cmsCandidateService.GetsCMSExamsAsync(limit);
+
+ return items;
+ // }
+ // catch (Exception ex)
+ // {
+ // return null;
+ // }
+ }
+
+ ///
+ /// Get ข้อมูลรอบสมัครสอบ
+ ///
+ /// รหัสรอบสมัคร
+ ///
+ /// เมื่อทำการ Get ข้อมูลรอบสมัครสอบ สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("qualifying/{examId:length(36)}")]
+ [AllowAnonymous]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task GetCMSExamsAsync(string examId)
+ {
+ // try
+ // {
+ var item = await _cmsCandidateService.GetCMSExamsAsync(examId);
+
+ return item;
+ // }
+ // catch (Exception ex)
+ // {
+ // return null;
+ // }
+ }
#endregion
}
}
diff --git a/Controllers/CandidateController.cs b/Controllers/CandidateController.cs
index 0034db6..8dd386e 100644
--- a/Controllers/CandidateController.cs
+++ b/Controllers/CandidateController.cs
@@ -53,9 +53,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
{
try
{
- var items = await _candidateService.GetStatusCandidateService(examId, positionId);
+ var item = await _candidateService.GetStatusCandidateService(examId, positionId);
- return Success(GlobalMessages.Success, items);
+ return Success(item);
}
catch (Exception ex)
{
@@ -756,19 +756,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
{
try
{
- var doc = await _candidateService.GetsAsyncProfileImage(examId, positionId);
+ var path = await _candidateService.GetsAsyncProfileImage(examId, positionId);
- if (doc == "")
- return Success();
-
- var file_data = await _minioService.DownloadFileAsync(Guid.Parse(doc));
- Response.Headers["Content-Disposition"] = $"inline; filename={file_data.FileName}";
- var ret = new FileContentResult(file_data.FileContent, file_data.FileType)
- {
- FileDownloadName = file_data.FileName
- };
-
- return ret;
+ return Success(GlobalMessages.Success, path);
}
catch (Exception ex)
{
@@ -829,19 +819,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
{
try
{
- var doc = await _candidateService.GetsAsyncPaymentImg(examId, positionId);
+ var path = await _candidateService.GetsAsyncPaymentImg(examId, positionId);
- if (doc == "")
- return Success();
-
- var file_data = await _minioService.DownloadFileAsync(Guid.Parse(doc));
- Response.Headers["Content-Disposition"] = $"inline; filename={file_data.FileName}";
- var ret = new FileContentResult(file_data.FileContent, file_data.FileType)
- {
- FileDownloadName = file_data.FileName
- };
-
- return ret;
+ return Success(GlobalMessages.Success, path);
}
catch (Exception ex)
{
@@ -865,19 +845,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
{
try
{
- var doc = await _candidateService.GetsAsyncPaymentImgCandidate(candidateId);
+ var path = await _candidateService.GetsAsyncPaymentImgCandidate(candidateId);
- if (doc == "")
- return Success();
-
- var file_data = await _minioService.DownloadFileAsync(Guid.Parse(doc));
- Response.Headers["Content-Disposition"] = $"inline; filename={file_data.FileName}";
- var ret = new FileContentResult(file_data.FileContent, file_data.FileType)
- {
- FileDownloadName = file_data.FileName
- };
-
- return ret;
+ return Success(GlobalMessages.Success, path);
}
catch (Exception ex)
{
@@ -987,15 +957,15 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// เมื่อลบเอกสารหลักฐานสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpDelete("upload/{documentId:length(36)}"), DisableRequestSizeLimit]
+ [HttpDelete("upload/{examId:length(36)}/{positionId:length(36)}"), DisableRequestSizeLimit]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
- public async Task> DeleteFileCandidateService(string documentId)
+ public async Task> DeleteFileCandidateService(string examId, string positionId, string documentId)
{
try
{
- await _candidateService.DeleteAsyncDocument(documentId);
+ await _candidateService.DeleteAsyncDocument(examId, positionId, documentId);
return Success();
}
catch (Exception ex)
@@ -1061,7 +1031,6 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
return Error(ex);
}
}
-
#endregion
}
}
diff --git a/Controllers/PeriodExamController.cs b/Controllers/PeriodExamController.cs
index 98f8dd9..9be3bc7 100644
--- a/Controllers/PeriodExamController.cs
+++ b/Controllers/PeriodExamController.cs
@@ -20,14 +20,16 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
#region " Fields "
private readonly PeriodExamService _periodExamService;
+ private readonly MinIOService _minioService;
#endregion
#region " Constructor and Destructor "
- public PeriodExamController(PeriodExamService periodExamService)
+ public PeriodExamController(PeriodExamService periodExamService, MinIOService minioService)
{
_periodExamService = periodExamService;
+ _minioService = minioService;
}
#endregion
@@ -119,7 +121,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPost, DisableRequestSizeLimit]
+ [HttpPost]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
@@ -127,15 +129,9 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
{
try
{
- if (Request.Form.Files == null || Request.Form.Files.Count == 0)
- {
- return Error(GlobalMessages.NoFileToUpload);
- }
+ var items = await _periodExamService.CreateAsync(item);
- var files = Request.Form.Files;
- await _periodExamService.CreateAsync(item, files);
-
- return Success();
+ return Success(items);
}
catch (Exception ex)
{
@@ -152,11 +148,38 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
/// เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ
/// ไม่ได้ Login เข้าระบบ
/// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpPut("{examId:length(36)}"), DisableRequestSizeLimit]
+ [HttpPut("{examId:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
public async Task> UpdateAsync(string examId, RequestPeriodExam item)
+ {
+ try
+ {
+ await _periodExamService.UpdateAsync(examId, item);
+
+ return Success();
+ }
+ catch (Exception ex)
+ {
+ return Error(ex);
+ }
+ }
+
+ ///
+ /// ข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบ
+ ///
+ /// ประเภทเอกสาร
+ /// รหัสรอบสมัคร
+ ///
+ /// เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpPut("{type}/{examId:length(36)}"), DisableRequestSizeLimit]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> UpdateDocAsync(string type, string examId)
{
try
{
@@ -166,8 +189,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
var files = Request.Form.Files;
-
- await _periodExamService.UpdateAsync(examId, item, files);
+ if (type == "img")
+ {
+ await _periodExamService.UpdateImgAsync(examId, files);
+ }
+ else
+ {
+ await _periodExamService.UpdateDocAsync(examId, files);
+ }
return Success();
}
@@ -463,6 +492,32 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
}
}
+ ///
+ /// ข้อมูล เอกสาร ผู้สมัคร
+ ///
+ /// รหัสผู้สมัคร
+ ///
+ /// เมื่อทำการดึง ข้อมูล เอกสาร ผู้สมัคร สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpGet("document/{candidate:length(36)}")]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> GetsAsyncDocument(string candidate)
+ {
+ try
+ {
+ var items = await _periodExamService.GetsAsyncDocument(candidate);
+
+ return Success(items);
+ }
+ catch (Exception ex)
+ {
+ return Error(ex);
+ }
+ }
+
///
/// อัพเดทข้อมูลที่นั่งสอบ
///
@@ -589,6 +644,31 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers
return Error(ex);
}
}
+
+ ///
+ /// ลบเอกไฟล์
+ ///
+ /// รหัสไฟล์เอกสาร
+ ///
+ /// เมื่อลบเอกไฟล์สำเร็จ
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+ [HttpDelete("doc/{examId:length(36)}"), DisableRequestSizeLimit]
+ [ProducesResponseType(StatusCodes.Status200OK)]
+ [ProducesResponseType(StatusCodes.Status401Unauthorized)]
+ [ProducesResponseType(StatusCodes.Status500InternalServerError)]
+ public async Task> DeleteFileCandidateService(string examId, string documentId)
+ {
+ try
+ {
+ await _periodExamService.DeleteAsyncDocument(examId, documentId);
+ return Success();
+ }
+ catch (Exception ex)
+ {
+ return Error(ex);
+ }
+ }
#endregion
}
}
diff --git a/Core/GlobalMessages.cs b/Core/GlobalMessages.cs
index 40d627f..c67c8df 100644
--- a/Core/GlobalMessages.cs
+++ b/Core/GlobalMessages.cs
@@ -21,5 +21,6 @@
public const string RelationshipNotFound = "ไม่พบข้อมูลสถานะภาพ";
public const string ReligionNotFound = "ไม่พบข้อมูลศาสนา";
public const string SubDistrictNotFound = "ไม่พบข้อมูลตำบล/แขวง";
+ public const string CMSNotFound = "ไม่พบข้อมูล CMS";
}
}
diff --git a/Data/ApplicationDbContext.cs b/Data/ApplicationDbContext.cs
index 6b8ce59..647a69f 100644
--- a/Data/ApplicationDbContext.cs
+++ b/Data/ApplicationDbContext.cs
@@ -47,6 +47,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Data
public DbSet PeriodExamDocuments { get; set; }
+ public DbSet PeriodExamImages { get; set; }
+
public DbSet CMSCandidates { get; set; }
public DbSet CMSAgencys { get; set; }
diff --git a/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/Data/Migrations/ApplicationDbContextModelSnapshot.cs
index aa9e180..1b0cf5c 100644
--- a/Data/Migrations/ApplicationDbContextModelSnapshot.cs
+++ b/Data/Migrations/ApplicationDbContextModelSnapshot.cs
@@ -232,6 +232,10 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.Property("ProvinceId")
.HasColumnType("char(36)");
+ b.Property("ShortName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อย่อ");
+
b.Property("SubDistrictId")
.HasColumnType("char(36)");
@@ -1113,6 +1117,10 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
.HasColumnType("longtext")
.HasComment("รายละเอียดสมัครสอบ");
+ b.Property("ExamDate")
+ .HasColumnType("datetime(6)")
+ .HasComment("วันที่สอบ");
+
b.Property("Fee")
.HasColumnType("float")
.HasComment("ค่าธรรมเนียม");
@@ -1271,6 +1279,68 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.ToTable("PeriodExamDocuments");
});
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamImage", 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("DocumentId")
+ .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("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("PeriodExamImages");
+ });
+
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b =>
{
b.Property("Id")
@@ -1926,6 +1996,25 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.Navigation("PeriodExam");
});
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamImage", b =>
+ {
+ b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", "Document")
+ .WithMany()
+ .HasForeignKey("DocumentId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam")
+ .WithMany("PeriodExamImages")
+ .HasForeignKey("PeriodExamId")
+ .OnDelete(DeleteBehavior.Cascade)
+ .IsRequired();
+
+ b.Navigation("Document");
+
+ b.Navigation("PeriodExam");
+ });
+
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b =>
{
b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam")
@@ -1966,6 +2055,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
b.Navigation("PeriodExamDocuments");
+ b.Navigation("PeriodExamImages");
+
b.Navigation("PositionExam");
});
diff --git a/Migrations/20230408123727_Add table image exam.Designer.cs b/Migrations/20230408123727_Add table image exam.Designer.cs
new file mode 100644
index 0000000..d7282e6
--- /dev/null
+++ b/Migrations/20230408123727_Add table image exam.Designer.cs
@@ -0,0 +1,2063 @@
+//
+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("20230408123727_Add table image exam")]
+ partial class Addtableimageexam
+ {
+ ///
+ 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.BankExam", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("AccountName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อบัญชี");
+
+ b.Property("AccountNumber")
+ .HasColumnType("longtext")
+ .HasComment("เลขบัญชี");
+
+ b.Property("BankName")
+ .HasColumnType("longtext")
+ .HasComment("ธนาคาร");
+
+ 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("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("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("BankExams");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CMSAgency", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CMSCandidateId")
+ .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("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("Link")
+ .HasColumnType("longtext")
+ .HasComment("ลิงค์");
+
+ b.Property("Name")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อลิงค์");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CMSCandidateId");
+
+ b.ToTable("CMSAgencys");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CMSCandidate", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("About")
+ .HasColumnType("longtext")
+ .HasComment("ข้อมูลเกี่ยวกับเรา");
+
+ b.Property("Address")
+ .HasColumnType("longtext")
+ .HasComment("ที่อยู่");
+
+ b.Property("BannerImgId")
+ .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("Description")
+ .HasColumnType("longtext")
+ .HasComment("ข้อมูลเว็บโดยย่อ");
+
+ b.Property("DistrictId")
+ .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("LogoImgId")
+ .HasColumnType("char(36)");
+
+ b.Property("NameEn")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อเว็บภาษาอังกฤษ");
+
+ b.Property("NameTh")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อเว็บภาษาไทย");
+
+ b.Property("ProvinceId")
+ .HasColumnType("char(36)");
+
+ b.Property("SubDistrictId")
+ .HasColumnType("char(36)");
+
+ b.Property("Telephone")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("โทรศัพท์");
+
+ b.Property("ZipCode")
+ .HasMaxLength(10)
+ .HasColumnType("varchar(10)")
+ .HasComment("รหัสไปรษณีย์");
+
+ b.HasKey("Id");
+
+ b.HasIndex("BannerImgId");
+
+ b.HasIndex("DistrictId");
+
+ b.HasIndex("LogoImgId");
+
+ b.HasIndex("ProvinceId");
+
+ b.HasIndex("SubDistrictId");
+
+ b.ToTable("CMSCandidates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CMSGovernment", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property("CMSCandidateId")
+ .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("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("Link")
+ .HasColumnType("longtext")
+ .HasComment("ลิงค์");
+
+ b.Property("Name")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อลิงค์");
+
+ b.HasKey("Id");
+
+ b.HasIndex("CMSCandidateId");
+
+ b.ToTable("CMSGovernments");
+ });
+
+ 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("ExamIdenNumber")
+ .HasColumnType("longtext")
+ .HasComment("เลขประจำตัวสอบ");
+
+ b.Property("FatherFirstName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("ชื่อจริงบิดา");
+
+ b.Property("FatherLastName")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("นามสกุลบิดา");
+
+ b.Property("FatherNationality")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("สัญชาติบิดา");
+
+ b.Property("FatherOccupation")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .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("MarryNationality")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("สัญชาติคู่สมรส");
+
+ b.Property("MarryOccupation")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .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("MotherNationality")
+ .HasMaxLength(100)
+ .HasColumnType("varchar(100)")
+ .HasComment("สัญชาติมารดา");
+
+ b.Property("MotherOccupation")
+ .HasMaxLength(200)
+ .HasColumnType("varchar(200)")
+ .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("OccupationPosition")
+ .HasColumnType("longtext")
+ .HasComment("ตำแหน่งอาชีพ");
+
+ b.Property("OccupationTelephone")
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("โทรศัพท์ บริษัท");
+
+ b.Property("OccupationType")
+ .HasColumnType("longtext")
+ .HasComment("ประเภทอาชีพที่ทำงานมาก่อน");
+
+ b.Property("PaymentImgId")
+ .HasColumnType("char(36)");
+
+ b.Property("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.Property("Point")
+ .HasColumnType("longtext")
+ .HasComment("คะแนน");
+
+ b.Property("PositionExamId")
+ .HasColumnType("char(36)");
+
+ b.Property("PrefixId")
+ .HasColumnType("char(36)");
+
+ b.Property("ProfileImgId")
+ .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("RejectDetail")
+ .HasColumnType("longtext")
+ .HasComment("เหตุผลการไม่อนุมัติ");
+
+ b.Property("RelationshipId")
+ .HasColumnType("char(36)");
+
+ b.Property("SeatNumber")
+ .HasColumnType("longtext")
+ .HasComment("เลขที่นั่งสอบ");
+
+ b.Property("Status")
+ .IsRequired()
+ .HasMaxLength(20)
+ .HasColumnType("varchar(20)")
+ .HasComment("สถานะผู้สมัคร");
+
+ 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("PaymentImgId");
+
+ b.HasIndex("PeriodExamId");
+
+ b.HasIndex("PositionExamId");
+
+ b.HasIndex("PrefixId");
+
+ b.HasIndex("ProfileImgId");
+
+ b.HasIndex("RegistDistrictId");
+
+ b.HasIndex("RegistProvinceId");
+
+ b.HasIndex("RegistSubDistrictId");
+
+ b.HasIndex("RelationshipId");
+
+ b.ToTable("Candidates");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CandidateDocument", 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("DocumentId")
+ .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.HasKey("Id");
+
+ b.HasIndex("CandidateId");
+
+ b.HasIndex("DocumentId");
+
+ b.ToTable("CandidateDocuments");
+ });
+
+ 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.Documents.Document", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)");
+
+ b.Property("CreatedDate")
+ .HasColumnType("datetime(6)");
+
+ b.Property("Detail")
+ .IsRequired()
+ .HasColumnType("text");
+
+ b.Property("FileName")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("varchar(255)");
+
+ b.Property("FileSize")
+ .HasColumnType("int");
+
+ b.Property("FileType")
+ .IsRequired()
+ .HasMaxLength(128)
+ .HasColumnType("varchar(128)");
+
+ b.Property("ObjectRefId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.ToTable("Documents");
+ });
+
+ 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("float")
+ .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("AnnouncementEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(6)
+ .HasComment("วันสิ้นสุดประกาศ");
+
+ b.Property("AnnouncementStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(5)
+ .HasComment("วันเริ่มประกาศ");
+
+ b.Property("CheckDisability")
+ .HasColumnType("tinyint(1)")
+ .HasComment("คนพิการ");
+
+ b.Property("CheckDocument")
+ .HasColumnType("tinyint(1)")
+ .HasComment("ตรวจสอบเอกสารหลังประกาศผลสอบ");
+
+ 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")
+ .HasColumnType("longtext")
+ .HasComment("รายละเอียดสมัครสอบ");
+
+ b.Property("Fee")
+ .HasColumnType("float")
+ .HasComment("ค่าธรรมเนียม");
+
+ b.Property("IsActive")
+ .HasColumnType("tinyint(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()
+ .HasMaxLength(150)
+ .HasColumnType("varchar(150)")
+ .HasColumnOrder(7)
+ .HasComment("ชื่อการสอบ");
+
+ b.Property("Note")
+ .HasColumnType("longtext")
+ .HasComment("หมายเหตุ");
+
+ b.Property("OrganizationCodeId")
+ .HasColumnType("char(36)")
+ .HasComment("Id รหัสส่วนราชการ");
+
+ b.Property("OrganizationCodeName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อรหัสส่วนราชการ");
+
+ b.Property("OrganizationId")
+ .HasColumnType("char(36)")
+ .HasComment("Id หน่วยงาน");
+
+ b.Property("OrganizationName")
+ .HasColumnType("longtext")
+ .HasComment("ชื่อหน่วยงาน");
+
+ b.Property("PaymentEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(4)
+ .HasComment("วันสิ้นสุดชำระเงิน");
+
+ b.Property("PaymentKrungThai")
+ .HasColumnType("longtext")
+ .HasComment("ชำระเงินผ่านกรุงไทย");
+
+ b.Property("PaymentStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(3)
+ .HasComment("วันเริ่มชำระเงิน");
+
+ b.Property("RegisterEndDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(2)
+ .HasComment("วันสิ้นสุดสมัครสอบ");
+
+ b.Property("RegisterStartDate")
+ .HasColumnType("datetime(6)")
+ .HasColumnOrder(1)
+ .HasComment("วันเริ่มสมัครสอบ");
+
+ b.Property("Round")
+ .HasColumnType("int")
+ .HasColumnOrder(8)
+ .HasComment("รอบการสอบ");
+
+ b.Property("SetSeat")
+ .HasColumnType("tinyint(1)")
+ .HasComment("เช็คอัพคะแนน");
+
+ b.Property("Year")
+ .HasColumnType("int")
+ .HasComment("ปีงบประมาณ");
+
+ b.HasKey("Id");
+
+ b.ToTable("PeriodExams");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamDocument", 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("DocumentId")
+ .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("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("PeriodExamDocuments");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamImage", 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("DocumentId")
+ .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("PeriodExamId")
+ .HasColumnType("char(36)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("DocumentId");
+
+ b.HasIndex("PeriodExamId");
+
+ b.ToTable("PeriodExamImages");
+ });
+
+ modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("char(36)")
+ .HasColumnOrder(0)
+ .HasComment("PrimaryKey")
+ .HasAnnotation("Relational:JsonPropertyName", "id");
+
+ b.Property