From e2fee53a942c821ca6fa18a694b853464f4b17f9 Mon Sep 17 00:00:00 2001 From: Kittapath Date: Fri, 11 Aug 2023 01:57:09 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1?= =?UTF-8?q?=20api=20=E0=B8=9A=E0=B8=A3=E0=B8=A3=E0=B8=88=E0=B8=B8=20?= =?UTF-8?q?=E0=B8=9E=E0=B9=89=E0=B8=99=E0=B8=A3=E0=B8=B2=E0=B8=8A=E0=B8=81?= =?UTF-8?q?=E0=B8=B2=E0=B8=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Models/Placement/PlacementAppointment.cs | 82 + .../Placement/PlacementAppointmentDoc.cs | 15 + .../Models/Placement/PlacementOfficer.cs | 35 + .../Models/Placement/PlacementReceive.cs | 16 +- .../Models/Placement/PlacementRelocation.cs | 77 + .../Placement/PlacementRelocationDoc.cs | 15 + .../Models/Placement/PlacementRepatriation.cs | 35 + .../Models/Placement/PlacementTransfer.cs | 12 +- .../Models/Retirement/RetirementDischarge.cs | 35 + .../Models/Retirement/RetirementExpulsion.cs | 35 + .../Models/Retirement/RetirementOther.cs | 38 + .../Models/Retirement/RetirementOut.cs | 35 + .../Models/Retirement/RetirementResign.cs | 23 +- BMA.EHR.Domain/Shared/GlobalMessages.cs | 8 + ...acementRecives add positionOld.Designer.cs | 13122 ++++++++++++++ ... table PlacementRecives add positionOld.cs | 488 + ...add table PlacementAppointment.Designer.cs | 14506 ++++++++++++++++ ...10184658_add table PlacementAppointment.cs | 840 + .../ApplicationDBContextModelSnapshot.cs | 1513 +- .../Persistence/ApplicationDBContext.cs | 10 + .../PlacementAppointmentController.cs | 520 + .../Controllers/PlacementOfficerController.cs | 290 + .../Controllers/PlacementReceiveController.cs | 165 +- .../PlacementRelocationController.cs | 514 + .../PlacementRepatriationController.cs | 290 + .../PlacementTransferController.cs | 230 +- .../PersonSelectPositionAppointmentRequest.cs | 16 + .../PersonSelectPositionRelocationRequest.cs | 16 + .../Requests/PlacementAddProfileRequest.cs | 10 + .../PlacementAppointmentEditRequest.cs | 30 + .../Requests/PlacementAppointmentRequest.cs | 22 + .../Requests/PlacementOfficerEditRequest.cs | 17 + .../Requests/PlacementProfileRequest.cs | 10 + .../Requests/PlacementReceiveEditRequest.cs | 29 + .../PlacementRelocationEditRequest.cs | 29 + .../Requests/PlacementRelocationRequest.cs | 22 + .../PlacementRepatriationEditRequest.cs | 17 + .../Requests/PlacementTransferEditRequest.cs | 8 +- .../RetirementDischargeController.cs | 290 + .../RetirementExpulsionController.cs | 290 + .../Controllers/RetirementOtherController.cs | 292 + .../Controllers/RetirementOutController.cs | 290 + .../Controllers/RetirementResignController.cs | 78 +- .../PersonSelectPositionReceiveRequest.cs | 16 + .../Requests/RetirementAddProfileRequest.cs | 10 + .../RetirementDischargeEditRequest.cs | 17 + .../RetirementExpulsionEditRequest.cs | 17 + .../Requests/RetirementOtherEditRequest.cs | 17 + .../Requests/RetirementOutEditRequest.cs | 17 + .../Requests/RetirementProfileRequest.cs | 10 + .../Requests/RetirementResignEditRequest.cs | 13 + .../Requests/RetirementResignRequest.cs | 5 + 52 files changed, 34312 insertions(+), 225 deletions(-) create mode 100644 BMA.EHR.Domain/Models/Placement/PlacementAppointment.cs create mode 100644 BMA.EHR.Domain/Models/Placement/PlacementAppointmentDoc.cs create mode 100644 BMA.EHR.Domain/Models/Placement/PlacementOfficer.cs create mode 100644 BMA.EHR.Domain/Models/Placement/PlacementRelocation.cs create mode 100644 BMA.EHR.Domain/Models/Placement/PlacementRelocationDoc.cs create mode 100644 BMA.EHR.Domain/Models/Placement/PlacementRepatriation.cs create mode 100644 BMA.EHR.Domain/Models/Retirement/RetirementDischarge.cs create mode 100644 BMA.EHR.Domain/Models/Retirement/RetirementExpulsion.cs create mode 100644 BMA.EHR.Domain/Models/Retirement/RetirementOther.cs create mode 100644 BMA.EHR.Domain/Models/Retirement/RetirementOut.cs create mode 100644 BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.Designer.cs create mode 100644 BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.cs create mode 100644 BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.Designer.cs create mode 100644 BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.cs create mode 100644 BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs create mode 100644 BMA.EHR.Placement.Service/Controllers/PlacementOfficerController.cs create mode 100644 BMA.EHR.Placement.Service/Controllers/PlacementRelocationController.cs create mode 100644 BMA.EHR.Placement.Service/Controllers/PlacementRepatriationController.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PersonSelectPositionAppointmentRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PersonSelectPositionRelocationRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementAddProfileRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementAppointmentEditRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementAppointmentRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementOfficerEditRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementProfileRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementReceiveEditRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementRelocationEditRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementRelocationRequest.cs create mode 100644 BMA.EHR.Placement.Service/Requests/PlacementRepatriationEditRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Controllers/RetirementDischargeController.cs create mode 100644 BMA.EHR.Retirement.Service/Controllers/RetirementExpulsionController.cs create mode 100644 BMA.EHR.Retirement.Service/Controllers/RetirementOtherController.cs create mode 100644 BMA.EHR.Retirement.Service/Controllers/RetirementOutController.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/PersonSelectPositionReceiveRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementAddProfileRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementDischargeEditRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementExpulsionEditRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementOtherEditRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementOutEditRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementProfileRequest.cs create mode 100644 BMA.EHR.Retirement.Service/Requests/RetirementResignEditRequest.cs diff --git a/BMA.EHR.Domain/Models/Placement/PlacementAppointment.cs b/BMA.EHR.Domain/Models/Placement/PlacementAppointment.cs new file mode 100644 index 00000000..a8758988 --- /dev/null +++ b/BMA.EHR.Domain/Models/Placement/PlacementAppointment.cs @@ -0,0 +1,82 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.MetaData; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.Commands.Core; + +namespace BMA.EHR.Domain.Models.Placement +{ + public class PlacementAppointment : EntityBase + { + [Required, MaxLength(20), Comment("เลขประจำตัวประชาชน")] + public string? CitizenId { get; set; } + [Required, Comment("คำนำหน้า")] + public Prefix? Prefix { get; set; } + [Required, Comment("ชื่อ")] + public string? Firstname { get; set; } + [Required, Comment("นามสกุล")] + public string? Lastname { get; set; } + [MaxLength(40), Comment("วันเกิด")] + public DateTime DateOfBirth { get; set; } + [Comment("Id เพศ")] + public Gender? Gender { get; set; } + [MaxLength(100), Comment("สัญชาติ")] + public string? Nationality { get; set; } + [MaxLength(100), Comment("เชื้อชาติ")] + public string? Race { get; set; } + [Comment("Id ศาสนา")] + public Religion? Religion { get; set; } + [Comment("Id กลุ่มเลือด")] + public BloodGroup? BloodGroup { get; set; } + [Comment("Id สถานะภาพ")] + public Relationship? Relationship { get; set; } + [MaxLength(50), Comment("เบอร์โทร")] + public string? TelephoneNumber { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("Id เลขที่ตำแหน่ง")] + public OrganizationPositionEntity? OrganizationPosition { get; set; } + [Comment("วันที่บรรจุ")] + public DateTime? RecruitDate { get; set; } + + [Comment("Id ตำแหน่งเลขที่")] + public PositionNumberEntity? PositionNumber { get; set; } + + [Comment("Id ตำแหน่ง")] + public PositionPath? PositionPath { get; set; } + + [Comment("Id ด้าน/สาขา")] + public PositionPathSide? PositionPathSide { get; set; } + + [Comment("Id ประเภทตำแหน่ง")] + public PositionType? PositionType { get; set; } + + [Comment("Id สายงาน")] + public PositionLine? PositionLine { get; set; } + + [Comment("Id ระดับ")] + public PositionLevel? PositionLevel { get; set; } + [Comment("เหตุผลที่รับย้ายราชการ")] + public string? Reason { get; set; } + [Comment("วุฒิ/สาขาเดิม")] + public string? EducationOld { get; set; } + [Comment("สังกัดเดิม")] + public string? OrganizationPositionOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + [Comment("ประเภทคำสั่ง")] + public CommandType? CommandType { get; set; } + [Comment("ดำรงตำแหน่งในระดับปัจจุบันเมื่อ")] + public DateTime? PositionDate { get; set; } + public virtual List PlacementAppointmentDocs { get; set; } = new List(); + } +} diff --git a/BMA.EHR.Domain/Models/Placement/PlacementAppointmentDoc.cs b/BMA.EHR.Domain/Models/Placement/PlacementAppointmentDoc.cs new file mode 100644 index 00000000..b6c0225a --- /dev/null +++ b/BMA.EHR.Domain/Models/Placement/PlacementAppointmentDoc.cs @@ -0,0 +1,15 @@ +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.Documents; +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Domain.Models.Placement +{ + public class PlacementAppointmentDoc : EntityBase + { + [Required, Comment("อ้างอิงรหัสเอกสาร")] + public Document Document { get; set; } + [Required, Comment("อ้างอิงรับย้าย")] + public virtual PlacementAppointment PlacementAppointment { get; set; } + } +} diff --git a/BMA.EHR.Domain/Models/Placement/PlacementOfficer.cs b/BMA.EHR.Domain/Models/Placement/PlacementOfficer.cs new file mode 100644 index 00000000..3f23367f --- /dev/null +++ b/BMA.EHR.Domain/Models/Placement/PlacementOfficer.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.MetaData; + +namespace BMA.EHR.Domain.Models.Placement +{ + public class PlacementOfficer : EntityBase + { + [Required, Comment("Id User")] + public Profile Profile { get; set; } + [Comment("หน่วยงานที่ช่วยราชการไป")] + public string? Organization { get; set; } = string.Empty; + [Comment("เหตุผล")] + public string? Reason { get; set; } = string.Empty; + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ตั้งแต่วันที่")] + public DateTime? Date { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + } +} diff --git a/BMA.EHR.Domain/Models/Placement/PlacementReceive.cs b/BMA.EHR.Domain/Models/Placement/PlacementReceive.cs index d468ad6f..1479f104 100644 --- a/BMA.EHR.Domain/Models/Placement/PlacementReceive.cs +++ b/BMA.EHR.Domain/Models/Placement/PlacementReceive.cs @@ -33,7 +33,7 @@ namespace BMA.EHR.Domain.Models.Placement [MaxLength(50), Comment("เบอร์โทร")] public string? TelephoneNumber { get; set; } [Comment("สถานะคำขอ")] - public string Status { get; set; } = "PENDING"; + public string Status { get; set; } = "WAITTING"; [Comment("Id เลขที่ตำแหน่ง")] public OrganizationPositionEntity? OrganizationPosition { get; set; } [Comment("วันที่บรรจุ")] @@ -56,6 +56,20 @@ namespace BMA.EHR.Domain.Models.Placement [Comment("Id ระดับ")] public PositionLevel? PositionLevel { get; set; } + [Comment("เหตุผลที่รับโอนราชการ")] + public string? Reason { get; set; } + [Comment("วุฒิ/สาขาเดิม")] + public string? EducationOld { get; set; } + [Comment("สังกัดเดิม")] + public string? OrganizationPositionOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } [Comment("สถานะการใช้งาน")] public bool IsActive { get; set; } = true; public virtual List PlacementReceiveDocs { get; set; } = new List(); diff --git a/BMA.EHR.Domain/Models/Placement/PlacementRelocation.cs b/BMA.EHR.Domain/Models/Placement/PlacementRelocation.cs new file mode 100644 index 00000000..b06b0f32 --- /dev/null +++ b/BMA.EHR.Domain/Models/Placement/PlacementRelocation.cs @@ -0,0 +1,77 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.MetaData; +using BMA.EHR.Domain.Models.Organizations; + +namespace BMA.EHR.Domain.Models.Placement +{ + public class PlacementRelocation : EntityBase + { + [Required, MaxLength(20), Comment("เลขประจำตัวประชาชน")] + public string? CitizenId { get; set; } + [Required, Comment("คำนำหน้า")] + public Prefix? Prefix { get; set; } + [Required, Comment("ชื่อ")] + public string? Firstname { get; set; } + [Required, Comment("นามสกุล")] + public string? Lastname { get; set; } + [MaxLength(40), Comment("วันเกิด")] + public DateTime DateOfBirth { get; set; } + [Comment("Id เพศ")] + public Gender? Gender { get; set; } + [MaxLength(100), Comment("สัญชาติ")] + public string? Nationality { get; set; } + [MaxLength(100), Comment("เชื้อชาติ")] + public string? Race { get; set; } + [Comment("Id ศาสนา")] + public Religion? Religion { get; set; } + [Comment("Id กลุ่มเลือด")] + public BloodGroup? BloodGroup { get; set; } + [Comment("Id สถานะภาพ")] + public Relationship? Relationship { get; set; } + [MaxLength(50), Comment("เบอร์โทร")] + public string? TelephoneNumber { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("Id เลขที่ตำแหน่ง")] + public OrganizationPositionEntity? OrganizationPosition { get; set; } + [Comment("วันที่บรรจุ")] + public DateTime? RecruitDate { get; set; } + + [Comment("Id ตำแหน่งเลขที่")] + public PositionNumberEntity? PositionNumber { get; set; } + + [Comment("Id ตำแหน่ง")] + public PositionPath? PositionPath { get; set; } + + [Comment("Id ด้าน/สาขา")] + public PositionPathSide? PositionPathSide { get; set; } + + [Comment("Id ประเภทตำแหน่ง")] + public PositionType? PositionType { get; set; } + + [Comment("Id สายงาน")] + public PositionLine? PositionLine { get; set; } + + [Comment("Id ระดับ")] + public PositionLevel? PositionLevel { get; set; } + [Comment("เหตุผลที่ย้ายราชการ")] + public string? Reason { get; set; } + [Comment("วุฒิ/สาขาเดิม")] + public string? EducationOld { get; set; } + [Comment("สังกัดเดิม")] + public string? OrganizationPositionOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + public virtual List PlacementRelocationDocs { get; set; } = new List(); + } +} diff --git a/BMA.EHR.Domain/Models/Placement/PlacementRelocationDoc.cs b/BMA.EHR.Domain/Models/Placement/PlacementRelocationDoc.cs new file mode 100644 index 00000000..1daa4e0d --- /dev/null +++ b/BMA.EHR.Domain/Models/Placement/PlacementRelocationDoc.cs @@ -0,0 +1,15 @@ +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.Documents; +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; + +namespace BMA.EHR.Domain.Models.Placement +{ + public class PlacementRelocationDoc : EntityBase + { + [Required, Comment("อ้างอิงรหัสเอกสาร")] + public Document Document { get; set; } + [Required, Comment("อ้างอิงย้าย")] + public virtual PlacementRelocation PlacementRelocation { get; set; } + } +} diff --git a/BMA.EHR.Domain/Models/Placement/PlacementRepatriation.cs b/BMA.EHR.Domain/Models/Placement/PlacementRepatriation.cs new file mode 100644 index 00000000..125f2b1a --- /dev/null +++ b/BMA.EHR.Domain/Models/Placement/PlacementRepatriation.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.MetaData; + +namespace BMA.EHR.Domain.Models.Placement +{ + public class PlacementRepatriation : EntityBase + { + [Required, Comment("Id User")] + public Profile Profile { get; set; } + [Comment("หน่วยงานที่ส่งตัวกลับไป")] + public string? Organization { get; set; } = string.Empty; + [Comment("เหตุผล")] + public string? Reason { get; set; } = string.Empty; + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ตั้งแต่วันที่")] + public DateTime? Date { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + } +} diff --git a/BMA.EHR.Domain/Models/Placement/PlacementTransfer.cs b/BMA.EHR.Domain/Models/Placement/PlacementTransfer.cs index 5f39967c..f6d95ec4 100644 --- a/BMA.EHR.Domain/Models/Placement/PlacementTransfer.cs +++ b/BMA.EHR.Domain/Models/Placement/PlacementTransfer.cs @@ -9,26 +9,26 @@ namespace BMA.EHR.Domain.Models.Placement { public class PlacementTransfer : EntityBase { - [Required, Comment("Id ผู้ขอโอน")] + [Required, Comment("Id User")] public Profile Profile { get; set; } [Comment("หน่วยงานที่ขอโอนไป")] public string? Organization { get; set; } = string.Empty; [Comment("เหตุผล")] public string? Reason { get; set; } = string.Empty; [Comment("สังกัด")] - public OrganizationPositionEntity? OrganizationPositionOld { get; set; } + public string? OrganizationPositionOld { get; set; } [Comment("ตั้งแต่วันที่")] public DateTime? Date { get; set; } [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] - public PositionType? PositionTypeOld { get; set; } + public string? PositionTypeOld { get; set; } [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] - public PositionLevel? PositionLevelOld { get; set; } + public string? PositionLevelOld { get; set; } [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] - public PositionNumberEntity? PositionNumberOld { get; set; } + public string? PositionNumberOld { get; set; } [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] public double? AmountOld { get; set; } [Comment("สถานะคำขอ")] - public string Status { get; set; } = "PENDING"; + public string Status { get; set; } = "WAITTING"; [Comment("สถานะการใช้งาน")] public bool IsActive { get; set; } = true; public virtual List PlacementTransferDocs { get; set; } = new List(); diff --git a/BMA.EHR.Domain/Models/Retirement/RetirementDischarge.cs b/BMA.EHR.Domain/Models/Retirement/RetirementDischarge.cs new file mode 100644 index 00000000..b6136d3d --- /dev/null +++ b/BMA.EHR.Domain/Models/Retirement/RetirementDischarge.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.MetaData; + +namespace BMA.EHR.Domain.Models.Retirement +{ + public class RetirementDischarge : EntityBase + { + [Required, Comment("Id User")] + public Profile Profile { get; set; } + [Comment("หน่วยงานที่ปลดออกไป")] + public string? Organization { get; set; } = string.Empty; + [Comment("เหตุผล")] + public string? Reason { get; set; } = string.Empty; + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ตั้งแต่วันที่")] + public DateTime? Date { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + } +} diff --git a/BMA.EHR.Domain/Models/Retirement/RetirementExpulsion.cs b/BMA.EHR.Domain/Models/Retirement/RetirementExpulsion.cs new file mode 100644 index 00000000..caff0d72 --- /dev/null +++ b/BMA.EHR.Domain/Models/Retirement/RetirementExpulsion.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.MetaData; + +namespace BMA.EHR.Domain.Models.Retirement +{ + public class RetirementExpulsion : EntityBase + { + [Required, Comment("Id User")] + public Profile Profile { get; set; } + [Comment("หน่วยงานที่ไล่ออกไป")] + public string? Organization { get; set; } = string.Empty; + [Comment("เหตุผล")] + public string? Reason { get; set; } = string.Empty; + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ตั้งแต่วันที่")] + public DateTime? Date { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + } +} diff --git a/BMA.EHR.Domain/Models/Retirement/RetirementOther.cs b/BMA.EHR.Domain/Models/Retirement/RetirementOther.cs new file mode 100644 index 00000000..d10ae801 --- /dev/null +++ b/BMA.EHR.Domain/Models/Retirement/RetirementOther.cs @@ -0,0 +1,38 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.MetaData; +using BMA.EHR.Domain.Models.Commands.Core; + +namespace BMA.EHR.Domain.Models.Retirement +{ + public class RetirementOther : EntityBase + { + [Required, Comment("Id User")] + public Profile Profile { get; set; } + [Comment("หน่วยงานที่อื่นๆไป")] + public string? Organization { get; set; } = string.Empty; + [Comment("เหตุผล")] + public string? Reason { get; set; } = string.Empty; + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ตั้งแต่วันที่")] + public DateTime? Date { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + [Comment("ประเภทคำสั่ง")] + public CommandType? CommandType { get; set; } + } +} diff --git a/BMA.EHR.Domain/Models/Retirement/RetirementOut.cs b/BMA.EHR.Domain/Models/Retirement/RetirementOut.cs new file mode 100644 index 00000000..0fb79f62 --- /dev/null +++ b/BMA.EHR.Domain/Models/Retirement/RetirementOut.cs @@ -0,0 +1,35 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Domain.Models.Base; +using BMA.EHR.Domain.Models.HR; +using BMA.EHR.Domain.Models.Organizations; +using BMA.EHR.Domain.Models.MetaData; + +namespace BMA.EHR.Domain.Models.Retirement +{ + public class RetirementOut : EntityBase + { + [Required, Comment("Id User")] + public Profile Profile { get; set; } + [Comment("หน่วยงานที่ให้ออกไป")] + public string? Organization { get; set; } = string.Empty; + [Comment("เหตุผล")] + public string? Reason { get; set; } = string.Empty; + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ตั้งแต่วันที่")] + public DateTime? Date { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } + [Comment("สถานะคำขอ")] + public string Status { get; set; } = "WAITTING"; + [Comment("สถานะการใช้งาน")] + public bool IsActive { get; set; } = true; + } +} diff --git a/BMA.EHR.Domain/Models/Retirement/RetirementResign.cs b/BMA.EHR.Domain/Models/Retirement/RetirementResign.cs index 0a166351..38468d0c 100644 --- a/BMA.EHR.Domain/Models/Retirement/RetirementResign.cs +++ b/BMA.EHR.Domain/Models/Retirement/RetirementResign.cs @@ -21,19 +21,18 @@ namespace BMA.EHR.Domain.Models.Retirement public string? Reason { get; set; } = string.Empty; [Comment("Id ผู้ลาออก")] public Profile Profile { get; set; } - [Comment("Id ประเภทตำแหน่ง")] - public PositionType? PositionType { get; set; } - [Comment("Id สายงาน")] - public PositionLine? PositionLine { get; set; } - - [Comment("Id ระดับ")] - public PositionLevel? PositionLevel { get; set; } - [Comment("Id ตำแหน่งทางการบริหาร")] - public PositionExecutive? PositionExecutive { get; set; } - [Comment("Id สังกัด")] - public OrganizationOrganization? OrganizationOrganization { get; set; } + [Comment("สังกัด")] + public string? OrganizationPositionOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท")] + public string? PositionTypeOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม ระดับ")] + public string? PositionLevelOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เลขที่")] + public string? PositionNumberOld { get; set; } + [Comment("ข้อมูลหน่วยงานเดิม เงินเดือน")] + public double? AmountOld { get; set; } [Comment("สถานะลาออก")] - public string? Status { get; set; } = "PENDING"; + public string? Status { get; set; } = "WAITTING"; [Comment("สถานะการใช้งาน")] public bool IsActive { get; set; } = true; } diff --git a/BMA.EHR.Domain/Shared/GlobalMessages.cs b/BMA.EHR.Domain/Shared/GlobalMessages.cs index 03d3a37b..50aaa3db 100644 --- a/BMA.EHR.Domain/Shared/GlobalMessages.cs +++ b/BMA.EHR.Domain/Shared/GlobalMessages.cs @@ -63,6 +63,10 @@ public static readonly string EducationNotFound = "ไม่พบข้อมูลประวัติการศึกษา"; public static readonly string PlacementTransferNotFound = "ไม่พบข้อมูลคำขอโอน"; public static readonly string PlacementReceiveNotFound = "ไม่พบข้อมูลรับโอน"; + public static readonly string PlacementRepatriationNotFound = "ไม่พบข้อมูลช่วยราชการ"; + public static readonly string PlacementOfficerNotFound = "ไม่พบข้อมูลส่งตัวกลับ"; + public static readonly string PlacementRelocationNotFound = "ไม่พบข้อมูลย้าย"; + public static readonly string PlacementAppointmentNotFound = "ไม่พบข้อมูลแต่งตั้ง-เลื่อน"; #endregion #region " OrganizationEmployee " @@ -81,6 +85,10 @@ public static readonly string RetirementHistoryNotFound = "ไม่พบข้อมูลประวัติการประกาศเกษียณอายุราชการ"; public static readonly string RetirementResignNotFound = "ไม่พบข้อมูลการคำขอลาออก"; public static readonly string RetirementDeceasedNotFound = "ไม่พบข้อมูลบันทึกเวียนแจ้งการถึงแก่กรรม"; + public static readonly string RetirementDischargeNotFound = "ไม่พบข้อมูลปลดออก"; + public static readonly string RetirementExpulsionNotFound = "ไม่พบข้อมูลไล่ออก"; + public static readonly string RetirementOtherNotFound = "ไม่พบข้อมูลอื่นๆ"; + public static readonly string RetirementOutNotFound = "ไม่พบข้อมูลให้ออก"; #endregion #region " Command " diff --git a/BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.Designer.cs b/BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.Designer.cs new file mode 100644 index 00000000..86558540 --- /dev/null +++ b/BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.Designer.cs @@ -0,0 +1,13122 @@ +// +using System; +using BMA.EHR.Infrastructure.Persistence; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Infrastructure.Migrations +{ + [DbContext(typeof(ApplicationDBContext))] + [Migration("20230810064535_update table PlacementRecives add positionOld")] + partial class updatetablePlacementRecivesaddpositionOld + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.9") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AuthorizedPosition") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ตำแหน่งผู้มีอำนาจลงนาม"); + + b.Property("AuthorizedUserFullName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อผู้มีอำนาจลงนาม"); + + b.Property("AuthorizedUserId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงผู้มีอำนาจลงนาม"); + + b.Property("CommandAffectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่คำสั่งมีผล"); + + b.Property("CommandExcecuteDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกคำสั่ง"); + + b.Property("CommandNo") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("เลขที่คำสั่ง"); + + b.Property("CommandStatusId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงสถานะคำสั่ง"); + + b.Property("CommandSubject") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("คำสั่งเรื่อง"); + + b.Property("CommandTypeId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงประเภทคำสั่ง"); + + b.Property("CommandYear") + .IsRequired() + .HasMaxLength(4) + .HasColumnType("varchar(4)") + .HasComment("ปีที่ออกคำสั่ง"); + + b.Property("ConclusionRegisterDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง รับสมัครสอบฯ)"); + + b.Property("ConclusionRegisterNo") + .IsRequired() + .HasColumnType("longtext") + .HasComment("มติ กก. ครั้งที่ (เรื่อง รับสมัครสอบฯ)"); + + b.Property("ConclusionResultDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง ผลการสอบแข่งขัน)"); + + b.Property("ConclusionResultNo") + .IsRequired() + .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("IssuerOrganizationId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงหน่วยงานที่ออกคำสั่ง"); + + b.Property("IssuerOrganizationName") + .IsRequired() + .HasColumnType("longtext") + .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("OwnerGovId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการผู้ออกคำสั่ง"); + + b.Property("PlacementId") + .HasColumnType("char(36)") + .HasComment("อ้างอิงรอบการสอบ"); + + b.Property("PositionName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ตำแหน่งที่บรรจุ"); + + b.HasKey("Id"); + + b.HasIndex("CommandStatusId"); + + b.HasIndex("CommandTypeId"); + + b.HasIndex("PlacementId"); + + b.ToTable("Commands"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDeployment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CommandId") + .HasColumnType("char(36)") + .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("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("IsSendInbox") + .HasColumnType("tinyint(1)") + .HasComment("ส่งกล่องข้อความหรือไม่?"); + + b.Property("IsSendMail") + .HasColumnType("tinyint(1)") + .HasComment("ส่งอีเมล์หรือไม่?"); + + b.Property("IsSendNotification") + .HasColumnType("tinyint(1)") + .HasComment("ส่งแจ้งเตือนหรือไม่?"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("OrganizationName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงานของผู้รับสำเนาคำสั่ง"); + + b.Property("PositionName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งของผู้รับสำเนาคำสั่ง"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("คำนำหน้านาม"); + + b.Property("ReceiveUserId") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รหัสอ้างอิงผู้ใช้งานระบบ"); + + b.Property("Sequence") + .HasColumnType("int") + .HasComment("ลำดับ"); + + b.HasKey("Id"); + + b.HasIndex("CommandId"); + + b.ToTable("CommandDeployments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Category") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภทเอกสาร"); + + b.Property("CommandId") + .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("CommandId"); + + b.HasIndex("DocumentId"); + + b.ToTable("CommandDocuments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandReceiver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CommandId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงคำสั่ง"); + + b.Property("Comment") + .IsRequired() + .HasColumnType("text") + .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("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("คำนำหน้านาม"); + + b.Property("RefPlacementProfileId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงไปยังข้อมูลผู้บรรจุ"); + + b.Property("Sequence") + .HasColumnType("int") + .HasComment("ลำดับในบัญชีแนบท้าย"); + + b.HasKey("Id"); + + b.HasIndex("CommandId"); + + b.ToTable("CommandReceivers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandStatus", 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("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)") + .HasComment("สถานะของคำสั่ง"); + + b.Property("Sequence") + .HasColumnType("int") + .HasComment("ลำดับการทำงาน"); + + b.HasKey("Id"); + + b.ToTable("CommandStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Category") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ประเภทคำสั่ง"); + + b.Property("CommandCode") + .IsRequired() + .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("Name") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ชื่อคำสั่ง"); + + b.HasKey("Id"); + + b.ToTable("CommandTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.DeploymentChannel", 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("IsSendEmail") + .HasColumnType("tinyint(1)"); + + b.Property("IsSendInbox") + .HasColumnType("tinyint(1)"); + + 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.ToTable("DeploymentChannels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.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.Domain.Models.HR.LimitLeave", 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("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") + .HasColumnType("longtext") + .HasComment("ยังไม่ชัวใช้อะไรเป็นkey"); + + b.HasKey("Id"); + + b.ToTable("LimitLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.LimitTypeLeave", 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("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("LimitLeaveId") + .HasColumnType("char(36)"); + + b.Property("NumLeave") + .HasColumnType("double") + .HasComment("จำนวนที่ลาได้"); + + b.Property("TypeLeaveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("LimitLeaveId"); + + b.HasIndex("TypeLeaveId"); + + b.ToTable("LimitTypeLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Ability") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("AvatarId") + .HasColumnType("char(36)"); + + b.Property("AvatarRef") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("BirthDate") + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มเลือด"); + + b.Property("CitizenId") + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .HasComment("รหัสบัตรประชาชน"); + + b.Property("Couple") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("CoupleCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("อาชีพคู่สมรส"); + + b.Property("CoupleFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อคู่สมรส"); + + b.Property("CoupleLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("CoupleLastNameOld") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส(เดิม)"); + + b.Property("CouplePrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้าคู่สมรส"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUser") + .IsRequired() + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตปัจจุบัน"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดปัจจุบัน"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)") + .HasComment("Id แขวงปัจจุบัน"); + + b.Property("CurrentZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(5)") + .HasComment("รหัสไปรษณีย์ปัจจุบัน"); + + b.Property("DateAppoint") + .HasColumnType("datetime(6)"); + + b.Property("DateRetire") + .HasColumnType("datetime(6)"); + + b.Property("DateStart") + .HasColumnType("datetime(6)"); + + b.Property("EmployeeClass") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทลูกจ้าง"); + + b.Property("EmployeeType") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทการจ้าง"); + + b.Property("EntryStatus") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.Property("FatherCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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)") + .HasComment("Id คำนำหน้าบิดา"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("FirstNameOld") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ(เดิม)"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + b.Property("GovAgeAbsent") + .HasColumnType("int"); + + b.Property("GovAgePlus") + .HasColumnType("int"); + + b.Property("GovernmentCode") + .HasColumnType("longtext"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsLeave") + .HasColumnType("tinyint(1)"); + + b.Property("IsProbation") + .HasColumnType("tinyint(1)"); + + b.Property("IsTransfer") + .HasColumnType("tinyint(1)"); + + b.Property("IsVerified") + .HasColumnType("tinyint(1)"); + + b.Property("KeycloakId") + .HasColumnType("char(36)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุล"); + + b.Property("LastNameOld") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("LeaveDate") + .HasColumnType("datetime(6)"); + + b.Property("LeaveDateOrder") + .HasColumnType("datetime(6)"); + + b.Property("LeaveDetail") + .HasColumnType("longtext"); + + b.Property("LeaveNumberOrder") + .HasColumnType("longtext"); + + b.Property("LeaveReason") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)"); + + b.Property("LimitLeaveId") + .HasColumnType("char(36)"); + + b.Property("ModifiedDate") + .HasColumnType("datetime(6)"); + + b.Property("MotherCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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)") + .HasComment("Id คำนำหน้ามารดา"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("Oc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("OrganizationOrganization") + .HasColumnType("longtext"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortName") + .HasColumnType("longtext"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("Physical") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สถานภาพทางกาย"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มงาน"); + + b.Property("PositionEmployeeGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มงาน"); + + b.Property("PositionEmployeeLevel") + .HasColumnType("longtext") + .HasComment("ระดับชั้นงาน"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับชั้นงาน"); + + b.Property("PositionEmployeePosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionEmployeePositionSide") + .HasColumnType("longtext") + .HasComment("ด้านของตำแหน่ง"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านของตำแหน่ง"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext") + .HasComment("ด้านทางการบริหาร"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionPathSide") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขา"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("PrefixOldId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า(เดิม)"); + + b.Property("ProfileType") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("ReasonSameDate") + .HasColumnType("longtext"); + + b.Property("RegistrationAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("Id แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตตามทะเบียนบ้าน"); + + b.Property("RegistrationProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดตามทะเบียนบ้าน"); + + b.Property("RegistrationSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันตรงกับที่อยู่ตามทะเบียนบ้านหรือไม่"); + + b.Property("RegistrationSubDistrictId") + .HasColumnType("char(36)") + .HasComment("แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(5)") + .HasComment("รหัสไปรษณีย์ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)") + .HasComment("Id สถานะภาพ"); + + b.Property("ReligionId") + .HasColumnType("char(36)") + .HasComment("Id ศาสนา"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.Property("TransferDate") + .HasColumnType("datetime(6)"); + + b.Property("VerifiedDate") + .HasColumnType("datetime(6)"); + + b.Property("VerifiedUser") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.HasKey("Id"); + + b.HasIndex("AvatarId"); + + b.HasIndex("GenderId"); + + b.HasIndex("LimitLeaveId"); + + b.HasIndex("PosNoId"); + + b.HasIndex("PositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.ToTable("Profiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbility", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .HasComment("รายละเอียด"); + + b.Property("Field") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("Remark") + .HasColumnType("longtext") + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAbilitys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbilityHistory", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .HasComment("รายละเอียด"); + + b.Property("Field") + .HasColumnType("longtext") + .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("ProfileAbilityId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("Remark") + .HasColumnType("longtext") + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileAbilityId"); + + b.ToTable("ProfileAbilityHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAddressHistory", 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("CurrentAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrict") + .HasColumnType("longtext") + .HasComment("เขตปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตปัจจุบัน"); + + b.Property("CurrentProvince") + .HasColumnType("longtext") + .HasComment("จังหวัดปัจจุบัน"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดปัจจุบัน"); + + b.Property("CurrentSubDistrict") + .HasColumnType("longtext") + .HasComment("แขวงปัจจุบัน"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)") + .HasComment("Id แขวงปัจจุบัน"); + + b.Property("CurrentZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("RegistrationAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistrationDistrict") + .HasColumnType("longtext") + .HasComment("เขตตามทะเบียนบ้าน"); + + b.Property("RegistrationDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตตามทะเบียนบ้าน"); + + b.Property("RegistrationProvince") + .HasColumnType("longtext") + .HasComment("จังหวัดตามทะเบียนบ้าน"); + + b.Property("RegistrationProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดตามทะเบียนบ้าน"); + + b.Property("RegistrationSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันตรงกับที่อยู่ตามทะเบียนบ้านหรือไม่"); + + b.Property("RegistrationSubDistrict") + .HasColumnType("longtext") + .HasComment("แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationSubDistrictId") + .HasColumnType("char(36)") + .HasComment("Id แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(5)") + .HasComment("รหัสไปรษณีย์ตามทะเบียนบ้าน"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAddressHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessment", 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("Date") + .HasColumnType("datetime(6)") + .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") + .HasColumnType("longtext") + .HasComment("ชื่อแบบประเมิน"); + + b.Property("Point1") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่1 (คะแนน)"); + + b.Property("Point1Total") + .HasColumnType("double") + .HasComment("ส่วนที่1 (คะแนน)"); + + b.Property("Point2") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่2 (คะแนน)"); + + b.Property("Point2Total") + .HasColumnType("double") + .HasComment("ส่วนที่2 (คะแนน)"); + + b.Property("PointSum") + .HasColumnType("double") + .HasComment("ผลประเมินรวม (คะแนน)"); + + b.Property("PointSumTotal") + .HasColumnType("double") + .HasComment("ผลรวม (คะแนน)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAssessments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessmentHistory", 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("Date") + .HasColumnType("datetime(6)") + .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") + .HasColumnType("longtext") + .HasComment("ชื่อแบบประเมิน"); + + b.Property("Point1") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่1 (คะแนน)"); + + b.Property("Point1Total") + .HasColumnType("double") + .HasComment("ส่วนที่1 (คะแนน)"); + + b.Property("Point2") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่2 (คะแนน)"); + + b.Property("Point2Total") + .HasColumnType("double") + .HasComment("ส่วนที่2 (คะแนน)"); + + b.Property("PointSum") + .HasColumnType("double") + .HasComment("ผลประเมินรวม (คะแนน)"); + + b.Property("PointSumTotal") + .HasColumnType("double") + .HasComment("ผลรวม (คะแนน)"); + + b.Property("ProfileAssessmentId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileAssessmentId"); + + b.ToTable("ProfileAssessmentHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAvatarHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AvatarFileId") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("AvatarFileId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAvatarHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CertificateNo") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่ใบอนุญาต"); + + b.Property("CertificateType") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("ExpireDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่หมดอายุ"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกใบอนุญาต"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileCertificates"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificateHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CertificateNo") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่ใบอนุญาต"); + + b.Property("CertificateType") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("ExpireDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่หมดอายุ"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกใบอนุญาต"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileCertificateId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileCertificateId"); + + b.ToTable("ProfileCertificateHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeName", 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("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("PrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Status") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สถานะ"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileChangeNames"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeNameHistory", 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("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("PrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileChangeNameId") + .HasColumnType("char(36)"); + + b.Property("Status") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สถานะ"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileChangeNameId"); + + b.ToTable("ProfileChangeNameHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildren", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("ChildrenCareer") + .HasColumnType("longtext") + .HasComment("อาชีพบุตร"); + + b.Property("ChildrenFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อบุตร"); + + b.Property("ChildrenLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลบุตร"); + + b.Property("ChildrenPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าบุตร"); + + b.Property("ChildrenPrefixId") + .HasColumnType("char(36)") + .HasComment("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("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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileChildrens"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildrenHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("ChildrenCareer") + .HasColumnType("longtext") + .HasComment("อาชีพบุตร"); + + b.Property("ChildrenFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อบุตร"); + + b.Property("ChildrenLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลบุตร"); + + b.Property("ChildrenPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าบุตร"); + + b.Property("ChildrenPrefixId") + .HasColumnType("char(36)") + .HasComment("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("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("ProfileChildrenId") + .HasColumnType("char(36)"); + + b.Property("ProfileFamilyHistoryId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileChildrenId"); + + b.HasIndex("ProfileFamilyHistoryId"); + + b.ToTable("ProfileChildrenHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCoupleHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Career") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileCoupleHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCurrentAddressHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.Property("SubDistrictId") + .HasColumnType("char(36)"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileCurrentAddressHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDiscipline", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("text") + .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("Level") + .HasColumnType("longtext") + .HasComment("ระดับความผิด"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("RefCommandDate") + .HasColumnType("datetime(6)") + .HasComment("เอกสารอ้างอิง (ลงวันที่)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileDisciplines"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDisciplineHistory", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("text") + .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("Level") + .HasColumnType("longtext") + .HasComment("ระดับความผิด"); + + b.Property("ProfileDisciplineId") + .HasColumnType("char(36)"); + + b.Property("RefCommandDate") + .HasColumnType("datetime(6)") + .HasComment("เอกสารอ้างอิง (ลงวันที่)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileDisciplineId"); + + b.ToTable("ProfileDisciplineHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDuty", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileDutys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDutyHistory", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileDutyId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileDutyId"); + + b.ToTable("ProfileDutyHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Country") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Degree") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("วุฒิการศึกษา"); + + b.Property("Duration") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ระยะเวลา"); + + b.Property("DurationYear") + .HasColumnType("int") + .HasComment("ระยะเวลาหลักสูตร"); + + b.Property("EducationLevel") + .HasColumnType("longtext") + .HasComment("ระดับศึกษา"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)") + .HasComment("Id ระดับศึกษา"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasComment("ถึง"); + + b.Property("Field") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สาขาวิชา/ทาง"); + + b.Property("FinishDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สำเร็จการศึกษา"); + + b.Property("FundName") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ทุน"); + + b.Property("Gpa") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เกรดเฉลี่ย"); + + b.Property("Institute") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Other") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ข้อมูลการติดต่อ"); + + b.Property("PositionPath") + .HasColumnType("longtext") + .HasComment("เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("PositionPathId") + .HasColumnType("char(36)") + .HasComment("Id เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("ตั้งแต่"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileEducations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducationHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Country") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Degree") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("วุฒิการศึกษา"); + + b.Property("Duration") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ระยะเวลา"); + + b.Property("DurationYear") + .HasColumnType("int") + .HasComment("ระยะเวลาหลักสูตร"); + + b.Property("EducationLevel") + .HasColumnType("longtext") + .HasComment("ระดับศึกษา"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)") + .HasComment("Id ระดับศึกษา"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasComment("ถึง"); + + b.Property("Field") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สาขาวิชา/ทาง"); + + b.Property("FinishDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สำเร็จการศึกษา"); + + b.Property("FundName") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ทุน"); + + b.Property("Gpa") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เกรดเฉลี่ย"); + + b.Property("Institute") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Other") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ข้อมูลการติดต่อ"); + + b.Property("PositionPath") + .HasColumnType("longtext") + .HasComment("เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("PositionPathId") + .HasColumnType("char(36)") + .HasComment("Id เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("ProfileEducationId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("ตั้งแต่"); + + b.HasKey("Id"); + + b.HasIndex("ProfileEducationId"); + + b.ToTable("ProfileEducationHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Couple") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("CoupleCareer") + .HasColumnType("longtext") + .HasComment("อาชีพคู่สมรส"); + + b.Property("CoupleFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อคู่สมรส"); + + b.Property("CoupleLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("CoupleLastNameOld") + .HasColumnType("longtext") + .HasComment("นามสกุลคู่สมรส(เดิม)"); + + b.Property("CouplePrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าคู่สมรส"); + + b.Property("CouplePrefixId") + .HasColumnType("char(36)") + .HasComment("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("FatherCareer") + .HasColumnType("longtext") + .HasComment("อาชีพบิดา"); + + b.Property("FatherFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อบิดา"); + + b.Property("FatherLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)") + .HasComment("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("MotherCareer") + .HasColumnType("longtext") + .HasComment("อาชีพมารดา"); + + b.Property("MotherFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อมารดา"); + + b.Property("MotherLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้ามารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้ามารดา"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileFamilyHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFatherHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Career") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileFatherHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileGovernmentHistory", 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("DateAppoint") + .HasColumnType("datetime(6)") + .HasComment("วันที่สั่งบรรจุ"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("เริ่มปฎิบัติราชการ"); + + b.Property("GovAge") + .HasColumnType("longtext") + .HasComment("อายุราชการ"); + + b.Property("GovAgeAbsent") + .HasColumnType("int") + .HasComment("ขาดราชการ"); + + b.Property("GovAgePlus") + .HasColumnType("int") + .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("Oc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("PosNo") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("Position") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeeGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มงาน"); + + b.Property("PositionEmployeeLevel") + .HasColumnType("longtext") + .HasComment("ระดับชั้นงาน"); + + b.Property("PositionEmployeePosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeePositionSide") + .HasColumnType("longtext") + .HasComment("ด้านของตำแหน่ง"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับตำแหน่ง"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ReasonSameDate") + .HasColumnType("longtext") + .HasComment("เหตุผลกรณีไม่ตรงวัน"); + + b.Property("RetireDate") + .HasColumnType("longtext") + .HasComment("วันเกษียณอายุ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileGovernmentHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("BirthDate") + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("BloodGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มเลือด"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มเลือด"); + + b.Property("CitizenId") + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .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("EmployeeClass") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทลูกจ้าง"); + + b.Property("EmployeeType") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทการจ้าง"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("Gender") + .HasColumnType("longtext") + .HasComment("เพศ"); + + b.Property("GenderId") + .HasColumnType("char(36)") + .HasComment("Id เพศ"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("Prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("PrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Relationship") + .HasColumnType("longtext") + .HasComment("สถานะภาพ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)") + .HasComment("Id สถานะภาพ"); + + b.Property("Religion") + .HasColumnType("longtext") + .HasComment("ศาสนา"); + + b.Property("ReligionId") + .HasColumnType("char(36)") + .HasComment("Id ศาสนา"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonor", 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") + .HasMaxLength(2000) + .HasColumnType("varchar(2000)") + .HasComment("รายละเอียด"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileHonors"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonorHistory", 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") + .HasMaxLength(2000) + .HasColumnType("varchar(2000)") + .HasComment("รายละเอียด"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileHonorId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileHonorId"); + + b.ToTable("ProfileHonorHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsignia", 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("DateAnnounce") + .HasColumnType("datetime(6)") + .HasComment("วันที่ประกาศในราชกิจจาฯ"); + + b.Property("InsigniaId") + .HasColumnType("char(36)"); + + b.Property("InsigniaType") + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("Issue") + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .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("No") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ลำดับที่"); + + b.Property("Page") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("หน้า"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่"); + + b.Property("RefCommandDate") + .HasColumnType("datetime(6)") + .HasComment("เอกสารอ้างอิง (ลงวันที่)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.Property("Section") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("ตอน"); + + b.Property("Volume") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่ม"); + + b.Property("VolumeNo") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่มที่"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีที่ยื่นขอ"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileInsignias"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsigniaHistory", 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("DateAnnounce") + .HasColumnType("datetime(6)") + .HasComment("วันที่ประกาศในราชกิจจาฯ"); + + b.Property("Insignia") + .HasColumnType("longtext") + .HasComment("ชื่อเครื่องราชฯ"); + + b.Property("InsigniaId") + .HasColumnType("char(36)"); + + b.Property("InsigniaType") + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("Issue") + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .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("No") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ลำดับที่"); + + b.Property("Page") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("หน้า"); + + b.Property("ProfileInsigniaId") + .HasColumnType("char(36)"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่"); + + b.Property("Section") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("ตอน"); + + b.Property("Volume") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่ม"); + + b.Property("VolumeNo") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่มที่"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีที่ยื่นขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileInsigniaId"); + + b.ToTable("ProfileInsigniaHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeave", 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("DateEndLeave") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี ที่สิ้นสุดลา"); + + b.Property("DateStartLeave") + .HasColumnType("datetime(6)") + .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("NumLeave") + .HasColumnType("double") + .HasComment("ลาครั้งที่"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะ"); + + b.Property("SumLeave") + .HasColumnType("double") + .HasComment("ลามาแล้ว"); + + b.Property("TotalLeave") + .HasColumnType("double") + .HasComment("รวมเป็น"); + + b.Property("TypeLeaveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.HasIndex("TypeLeaveId"); + + b.ToTable("ProfileLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeaveHistory", 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("DateEndLeave") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี ที่สิ้นสุดลา"); + + b.Property("DateStartLeave") + .HasColumnType("datetime(6)") + .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("NumLeave") + .HasColumnType("double") + .HasComment("ลาครั้งที่"); + + b.Property("ProfileLeaveId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะ"); + + b.Property("SumLeave") + .HasColumnType("double") + .HasComment("ลามาแล้ว"); + + b.Property("TotalLeave") + .HasColumnType("double") + .HasComment("รวมเป็น"); + + b.Property("TypeLeaveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileLeaveId"); + + b.HasIndex("TypeLeaveId"); + + b.ToTable("ProfileLeaveHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileMotherHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Career") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileMotherHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaid", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileNopaids"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaidHistory", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileNopaidId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileNopaidId"); + + b.ToTable("ProfileNopaidHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOrganization", 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("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("OrganizationId") + .HasColumnType("char(36)") + .HasComment("Id หน่วยงานที่สังกัด"); + + b.Property("UserId") + .HasColumnType("char(36)") + .HasComment("User Id KeyCloak"); + + b.HasKey("Id"); + + b.ToTable("ProfileOrganizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOther", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileOthers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOtherHistory", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileOtherId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileOtherId"); + + b.ToTable("ProfileOtherHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfilePaper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CategoryName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .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") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("ชื่อไฟล์"); + + 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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfilePapers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileRegistrationAddressHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.Property("SubDistrictId") + .HasColumnType("char(36)"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileRegistrationAddressHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalary", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("CommandNo") + .IsRequired() + .HasColumnType("longtext") + .HasComment("เลขที่คำสั่ง"); + + b.Property("CommandTypeName") + .IsRequired() + .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("Date") + .HasColumnType("datetime(6)") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("Order") + .HasColumnType("int") + .HasComment("ลำดับ"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("Id ชื่อย่อหน่วยงาน"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("PositionEmployeeGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มงาน"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับชั้นงาน"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านของตำแหน่ง"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("Id ประเภทตำแหน่ง"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileSalaries"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("Oc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("OrganizationShortName") + .HasColumnType("longtext"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("PosNo") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("Position") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeeGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มงาน"); + + b.Property("PositionEmployeeGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มงาน"); + + b.Property("PositionEmployeeLevel") + .HasColumnType("longtext") + .HasComment("ระดับชั้นงาน"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับชั้นงาน"); + + b.Property("PositionEmployeePosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionEmployeePositionSide") + .HasColumnType("longtext") + .HasComment("ด้านของตำแหน่ง"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านของตำแหน่ง"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext") + .HasComment("ด้านทางการบริหาร"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับ"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับ"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionPathSide") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขา"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("Id ประเภทตำแหน่ง"); + + b.Property("ProfileSalaryId") + .HasColumnType("char(36)"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileSalaryId"); + + b.ToTable("ProfileSalaryHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryOrganization", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryOrganizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPosition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("PositionId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PositionId"); + + b.ToTable("ProfileSalaryPositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPositionLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryPositionLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPositionNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryPositionsNumbers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPositionType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryPositionTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTraining", 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("DateOrder") + .HasColumnType("datetime(6)") + .HasComment("คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"); + + b.Property("Department") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน"); + + b.Property("Duration") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("รวมระยะเวลาในการฝึกอบรม/ดูงาน"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .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") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ชื่อโครงการ/หลักสูตรการฝึกอบรม"); + + b.Property("NumberOrder") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"); + + b.Property("Place") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สถานที่ฝึกอบรม/ดูงาน"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันเริ่มต้นการฝึกอบรม/ดูงาน"); + + b.Property("Topic") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวข้อการฝึกอบรม/ดูงาน"); + + b.Property("Yearly") + .HasMaxLength(200) + .HasColumnType("int") + .HasComment("ปีที่อบรม (พ.ศ.)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileTrainings"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTrainingHistory", 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("DateOrder") + .HasColumnType("datetime(6)") + .HasComment("คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"); + + b.Property("Department") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน"); + + b.Property("Duration") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("รวมระยะเวลาในการฝึกอบรม/ดูงาน"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .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") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ชื่อโครงการ/หลักสูตรการฝึกอบรม"); + + b.Property("NumberOrder") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"); + + b.Property("Place") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สถานที่ฝึกอบรม/ดูงาน"); + + b.Property("ProfileTrainingId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันเริ่มต้นการฝึกอบรม/ดูงาน"); + + b.Property("Topic") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวข้อการฝึกอบรม/ดูงาน"); + + b.Property("Yearly") + .HasMaxLength(200) + .HasColumnType("int") + .HasComment("ปีที่อบรม (พ.ศ.)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileTrainingId"); + + b.ToTable("ProfileTrainingHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.TypeLeave", 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("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") + .HasColumnType("longtext") + .HasComment("ประเภทการลา"); + + b.HasKey("Id"); + + b.ToTable("TypeLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + 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("EndDate") + .HasColumnType("datetime(6)"); + + 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(200) + .HasColumnType("varchar(200)"); + + b.Property("ReliefDocId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ReliefDocId"); + + b.ToTable("InsigniaPeriods"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", 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("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("OrganizationId") + .HasColumnType("char(36)"); + + b.Property("PeriodId") + .HasColumnType("char(36)"); + + b.Property("RequestNote") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestStatus") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationId"); + + b.HasIndex("PeriodId"); + + b.ToTable("InsigniaRequests"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequestProfile", 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("DocumentStatus") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("IsApprove") + .HasColumnType("tinyint(1)"); + + 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("MatchingConditions") + .HasColumnType("text"); + + b.Property("Note") + .HasColumnType("text"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("QualificationStatus") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("RequestDate") + .HasColumnType("datetime(6)"); + + b.Property("RequestId") + .HasColumnType("char(36)"); + + b.Property("RequestInsigniaId") + .HasColumnType("char(36)"); + + b.Property("Salary") + .HasColumnType("double"); + + b.Property("Special") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.HasIndex("RequestId"); + + b.HasIndex("RequestInsigniaId"); + + b.ToTable("InsigniaRequestProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.BloodGroup", 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(2) + .HasColumnType("varchar(2)") + .HasColumnOrder(1) + .HasComment("ชื่อหมู่โลหิต"); + + b.HasKey("Id"); + + b.ToTable("BloodGroups"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.Gender", 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(20) + .HasColumnType("varchar(20)") + .HasColumnOrder(1) + .HasComment("เพศ"); + + b.HasKey("Id"); + + b.ToTable("Genders"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Holiday", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Category") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("ประเภทของวันหยุดสำหรับ ทำงาน 5 วัน=`NORMAL`,ทำงาน 6 วัน=`6DAYS`"); + + 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("HolidayDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันหยุด"); + + b.Property("IsSpecial") + .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(250) + .HasColumnType("varchar(250)") + .HasColumnOrder(4) + .HasComment("ชื่อวันหยุด"); + + b.Property("OriginalDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันหยุด(Original)"); + + b.Property("Year") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ประจำปี"); + + b.HasKey("Id"); + + b.ToTable("Holidays"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Insignia", 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("InsigniaTypeId") + .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("Level") + .HasColumnType("int") + .HasColumnOrder(4) + .HasComment("ลำดับชั้นของเครื่องราชย์ เอาไว้ตรวจสอบเวลาขอว่าต้องได้ชั้นที่สูงกว่าที่เคยได้รับแล้วเท่านั้น"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อเครื่องราชย์"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(5) + .HasComment("หมายเหตุ"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasColumnOrder(2) + .HasComment("ชื่อย่อเครื่องราชย์"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaTypeId"); + + b.ToTable("Insignias"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.InsigniaType", 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("InsigniaTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationAgency", 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("OrganizationAgencys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationFax", 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("OrganizationFaxs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationGovernmentAgency", 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("OrganizationGovernmentAgencys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationLevel", 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("OrganizationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("OrganizationOrganizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AgencyCode") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(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("GovernmentCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ข้อมูลโครงสร้างหน่วยงานชื่อ รหัสส่วนราชการ"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(4) + .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(3) + .HasComment("ข้อมูลโครงสร้างหน่วยงานชื่อ ตัวย่อหน่วยงาน"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(5) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("OrganizationShortNames"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationStatus", 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("OrganizationStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationTelExternal", 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("OrganizationTelExternals"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationTelInternal", 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("OrganizationTelInternals"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationType", 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("OrganizationTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PhysicalStatus", 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("PhysicalStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Position", 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("ExecutiveName") + .IsRequired() + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .HasColumnOrder(3) + .HasComment("ชื่อตำแหน่งทางการบริหาร"); + + b.Property("ExecutiveSideId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(9) + .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(300) + .HasColumnType("varchar(300)") + .HasColumnOrder(1) + .HasComment("ชื่อตำแหน่ง"); + + b.Property("PathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionCategory") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(8) + .HasComment("ตำแหน่งสำหรับข้าราชการหรือลูกจ้าง officer/employee"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ExecutiveSideId"); + + b.HasIndex("PathSideId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionTypeId"); + + b.ToTable("Positions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeGroup", 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("PositionEmployeeGroups"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLevel", 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(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ชื่อระดับชั้นงานข้อมูลตำแหน่งของลูกจ้างกรุงเทพ"); + + b.Property("Order") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ลำดับ"); + + b.HasKey("Id"); + + b.ToTable("PositionEmployeeLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLine", 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("PositionEmployeeLines"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeePosition", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionEmployeePositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeePositionSide", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionEmployeePositionSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeStatus", 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("PositionEmployeeStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionExecutive", 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("PositionExecutives"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionExecutiveSide", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionExecutiveSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionLevel", 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(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("Level") + .HasColumnType("int") + .HasColumnOrder(4) + .HasComment("ลำดับชั้นของระดับตำแหน่ง"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("Order") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ลำดับ"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(3) + .HasComment("ชื่อย่อระดับตำแหน่ง"); + + b.HasKey("Id"); + + b.ToTable("PositionLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionLine", 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("PositionLines"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionPath", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionPaths"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionPathSide", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionPathSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionStatus", 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("PositionStatuss"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionType", 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(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("Order") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ลำดับ"); + + b.HasKey("Id"); + + b.ToTable("PositionTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.Royal", 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(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อประเภทข้อมูลเหรียญตรา"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("ชื่อย่อเหรียญตรา"); + + b.HasKey("Id"); + + b.ToTable("Royals"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.RoyalHierarchy", 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("RoyalHierarchys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.RoyalType", 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("RoyalTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.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.Domain.Models.Notifications.Inbox", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Body") + .IsRequired() + .HasColumnType("text") + .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("IsOpen") + .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("OpenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เปิดอ่าน"); + + b.Property("Payload") + .IsRequired() + .HasColumnType("text") + .HasComment("สิงที่แนบมาด้วย"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("ReceiverUserId") + .HasColumnType("char(36)") + .HasComment("รหัสผู้รับข้อความ"); + + b.Property("Subject") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวเรื่อง"); + + b.HasKey("Id"); + + b.ToTable("Inboxes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Notifications.MessageQueueEntity", 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("IsSend") + .HasColumnType("tinyint(1)") + .HasComment("ทำการส่งข้อความแล้วหรือยัง?"); + + b.Property("IsSendEmail") + .HasColumnType("tinyint(1)") + .HasComment("ส่งอีเมลล์หรือไม่?"); + + b.Property("IsSendInbox") + .HasColumnType("tinyint(1)") + .HasComment("ส่งไปที่กล่องข้อความหรือไม่?"); + + b.Property("IsSendNotification") + .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("MessageContent") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รายละเอียดข้อความ"); + + b.Property("MessagePayLoad") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สิ่งที่แนบมาด้วย"); + + b.Property("ReceiverEmailAddress") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("อีเมล์ของผู้รับ"); + + b.Property("ReceiverUserId") + .HasColumnType("char(36)") + .HasComment("รหัสของผู้รับข้อความ"); + + b.Property("SenderSystem") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ส่งจากระบบงาน"); + + b.Property("Subject") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวเรื่อง"); + + b.HasKey("Id"); + + b.ToTable("MessageQueues"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Notifications.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Body") + .IsRequired() + .HasColumnType("text") + .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("IsOpen") + .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("OpenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เปิดอ่าน"); + + b.Property("Payload") + .IsRequired() + .HasColumnType("text") + .HasComment("สิงที่แนบมาด้วย"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("ReceiverUserId") + .HasColumnType("char(36)") + .HasComment("รหัสผู้รับข้อความ"); + + b.Property("Type") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภทการแจ้งเตือน"); + + b.HasKey("Id"); + + b.ToTable("Notifications"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Agency") + .HasColumnType("longtext"); + + b.Property("ConditionNote") + .HasColumnType("longtext"); + + 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("Department") + .HasColumnType("longtext"); + + b.Property("Government") + .HasColumnType("longtext"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsCondition") + .HasColumnType("tinyint(1)"); + + b.Property("IsDirector") + .HasColumnType("tinyint(1)"); + + 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("OrganizationAgencyId") + .HasColumnType("char(36)"); + + b.Property("OrganizationFaxId") + .HasColumnType("char(36)"); + + b.Property("OrganizationGovernmentAgencyId") + .HasColumnType("char(36)"); + + b.Property("OrganizationLevelId") + .HasColumnType("char(36)"); + + b.Property("OrganizationOrder") + .HasColumnType("longtext"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelExternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelInternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTypeId") + .HasColumnType("char(36)"); + + b.Property("OrganizationUserNote") + .HasColumnType("longtext"); + + b.Property("Pile") + .HasColumnType("longtext"); + + b.Property("PosNo") + .HasColumnType("longtext"); + + b.Property("PositionCondition") + .HasColumnType("longtext"); + + b.Property("PositionEmployeeLineId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeStatusId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterUserNote") + .HasColumnType("longtext"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Qualification") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationAgencyId"); + + b.HasIndex("OrganizationFaxId"); + + b.HasIndex("OrganizationGovernmentAgencyId"); + + b.HasIndex("OrganizationLevelId"); + + b.HasIndex("OrganizationOrganizationId"); + + b.HasIndex("OrganizationShortNameId"); + + b.HasIndex("OrganizationTelExternalId"); + + b.HasIndex("OrganizationTelInternalId"); + + b.HasIndex("OrganizationTypeId"); + + b.HasIndex("PositionEmployeeLineId"); + + b.HasIndex("PositionEmployeePositionId"); + + b.HasIndex("PositionEmployeeStatusId"); + + b.HasIndex("ProfileId"); + + b.ToTable("OrganizationEmployees"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeeLevel", 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("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("OrganizationEmployeeId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationEmployeeId"); + + b.HasIndex("PositionEmployeeLevelId"); + + b.ToTable("OrganizationPositionEmployeeLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeePositionSide", 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("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("OrganizationEmployeeId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationEmployeeId"); + + b.HasIndex("PositionEmployeePositionSideId"); + + b.ToTable("OrganizationPositionEmployeePositionSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.AvailablePositionLevelEntity", 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("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("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionMasterId"); + + b.ToTable("AvailablePositionLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Agency") + .HasColumnType("longtext") + .HasColumnOrder(14) + .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("Department") + .HasColumnType("longtext") + .HasColumnOrder(16) + .HasComment("ฝ่าย/ส่วน"); + + b.Property("Government") + .HasColumnType("longtext") + .HasColumnOrder(15) + .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("OrganizationAgencyId") + .HasColumnType("char(36)") + .HasColumnOrder(10) + .HasComment("OrganizationAgencyId"); + + b.Property("OrganizationFaxId") + .HasColumnType("char(36)"); + + b.Property("OrganizationGovernmentAgencyId") + .HasColumnType("char(36)") + .HasColumnOrder(11) + .HasComment("OrganizationGovernmentAgencyId"); + + b.Property("OrganizationLevelId") + .HasColumnType("char(36)"); + + b.Property("OrganizationOrder") + .HasColumnType("int") + .HasColumnOrder(12) + .HasComment("OrganizationOrder"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("OrganizationStatusId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelExternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelInternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTypeId") + .HasColumnType("char(36)"); + + b.Property("OrganizationUserNote") + .HasColumnType("longtext") + .HasColumnOrder(13) + .HasComment("OrganizationUserNote"); + + b.Property("ParentId") + .HasColumnType("char(36)"); + + b.Property("Pile") + .HasColumnType("longtext") + .HasColumnOrder(17) + .HasComment("กอง"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationFaxId"); + + b.HasIndex("OrganizationLevelId"); + + b.HasIndex("OrganizationOrganizationId"); + + b.HasIndex("OrganizationShortNameId"); + + b.HasIndex("OrganizationStatusId"); + + b.HasIndex("OrganizationTelExternalId"); + + b.HasIndex("OrganizationTelInternalId"); + + b.HasIndex("OrganizationTypeId"); + + b.HasIndex("ParentId"); + + b.ToTable("Organizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", 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("IsDirector") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("Is Director"); + + 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("OrganizationId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionUserNote") + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("positionUserNote"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationId"); + + b.HasIndex("PositionMasterId"); + + b.HasIndex("PositionNumberId"); + + b.ToTable("OrganizationPositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationPublishHistoryEntity", 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(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("ObjectValue") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(2) + .HasComment("เก็บ Object ที่มีการอัพเดตในระบบ"); + + b.HasKey("Id"); + + b.ToTable("OrganizationPublishHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", 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("IsDirector") + .HasColumnType("tinyint(1)") + .HasColumnOrder(14) + .HasComment("IsDirector"); + + 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("PositionCondition") + .HasColumnType("longtext") + .HasColumnOrder(11) + .HasComment("PositionCondition"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)"); + + b.Property("PositionExecutiveSideObject") + .HasColumnType("longtext"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasColumnOrder(2) + .HasComment("PositionId"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterUserNote") + .HasColumnType("longtext") + .HasColumnOrder(13) + .HasComment("PositionMasterUserNote"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideObject") + .HasColumnType("longtext"); + + b.Property("PositionStatusId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("Qualification") + .HasColumnType("longtext") + .HasColumnOrder(15) + .HasComment("คุณวุฒิ"); + + b.HasKey("Id"); + + b.HasIndex("PositionExecutiveId"); + + b.HasIndex("PositionExecutiveSideId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionStatusId"); + + b.HasIndex("PositionTypeId"); + + b.ToTable("PositionMasters"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterHistoryEntity", 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("IsDirector") + .HasColumnType("tinyint(1)") + .HasColumnOrder(14) + .HasComment("IsDirector"); + + 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("Position") + .HasColumnType("longtext") + .HasColumnOrder(2) + .HasComment("Position"); + + b.Property("PositionCondition") + .HasColumnType("longtext") + .HasColumnOrder(11) + .HasComment("PositionCondition"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasColumnOrder(5) + .HasComment("PositionExecutive"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("PositionExecutiveSide"); + + b.Property("PositionExecutiveSideObject") + .HasColumnType("longtext"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasColumnOrder(12) + .HasComment("PositionLevel"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasColumnOrder(8) + .HasComment("PositionLine"); + + b.Property("PositionMasterEntityId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterUserNote") + .HasColumnType("longtext") + .HasColumnOrder(13) + .HasComment("PositionMasterUserNote"); + + b.Property("PositionPath") + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("PositionPath"); + + b.Property("PositionPathSide") + .HasColumnType("longtext") + .HasColumnOrder(7) + .HasComment("PositionPathSide"); + + b.Property("PositionPathSideObject") + .HasColumnType("longtext"); + + b.Property("PositionStatus") + .HasColumnType("longtext") + .HasColumnOrder(10) + .HasComment("PositionStatus"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("PositionType"); + + b.Property("Qualification") + .HasColumnType("longtext") + .HasColumnOrder(15) + .HasComment("คุณวุฒิ"); + + b.HasKey("Id"); + + b.HasIndex("PositionMasterEntityId"); + + b.ToTable("PositionMasterHistoryEntity"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", 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("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") + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .HasColumnOrder(2) + .HasComment("ชื่อ"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationShortNameId"); + + b.ToTable("PositionNumbers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.ProfilePosition", 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("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("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfilePositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2", 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("GovernmentCode") + .HasColumnType("longtext"); + + b.Property("GovernmentCodeOld") + .HasColumnType("longtext"); + + 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("OrganizationOrganization") + .HasColumnType("longtext"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)") + .HasComment("ชื่อหน่วยงาน"); + + b.Property("OrganizationOrganizationOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงานเดิม"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortName") + .HasColumnType("longtext"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการ"); + + b.Property("OrganizationShortNameOld") + .HasColumnType("longtext") + .HasComment("รหัสส่วนราชการเดิม"); + + b.Property("PositionExecutive") + .HasColumnType("longtext"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหารเดิม"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("ด้านทางบริหาร"); + + b.Property("PositionExecutiveSideOld") + .HasColumnType("longtext") + .HasComment("ด้านทางบริหารเดิม"); + + b.Property("PositionLevel") + .HasColumnType("longtext"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)") + .HasComment("ระดับตำแหน่ง"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ระดับตำแหน่งเดิม"); + + b.Property("PositionNum") + .HasColumnType("longtext"); + + b.Property("PositionNumId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งเลขที่"); + + b.Property("PositionNumOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเลขที่เดิม"); + + b.Property("PositionPath") + .HasColumnType("longtext"); + + b.Property("PositionPathId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งในสายงาน"); + + b.Property("PositionPathOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งในสายงานเดิม"); + + b.Property("PositionPathSide") + .HasColumnType("longtext"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("ด้าน/สาขา"); + + b.Property("PositionPathSideOld") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขาเดิม"); + + b.Property("PositionType") + .HasColumnType("longtext"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่งเดิม"); + + b.Property("ProfilePositionId") + .HasColumnType("char(36)") + .HasComment("สังกัดที่ถือครอง"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะการเปลี่ยนแปลง"); + + b.HasKey("Id"); + + b.ToTable("Report2s"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2DetailHistory", 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") + .HasColumnType("longtext"); + + 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.ToTable("Report2DetailHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2History", 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("Education") + .HasColumnType("longtext") + .HasComment("คุณวุฒิ"); + + b.Property("FullName") + .HasColumnType("longtext") + .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("NewGovernmentCode") + .HasColumnType("longtext"); + + b.Property("NewOrganizationOrganization") + .HasColumnType("longtext"); + + b.Property("NewOrganizationOrganizationId") + .HasColumnType("char(36)") + .HasComment("ชื่อหน่วยงาน กำหนดใหม่"); + + b.Property("NewOrganizationShortName") + .HasColumnType("longtext"); + + b.Property("NewOrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการ กำหนดใหม่"); + + b.Property("NewPositionExecutive") + .HasColumnType("longtext"); + + b.Property("NewPositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งทางการบริหาร กำหนดใหม่"); + + b.Property("NewPositionExecutiveSide") + .HasColumnType("longtext"); + + b.Property("NewPositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("ด้านทางบริหาร กำหนดใหม่"); + + b.Property("NewPositionLevel") + .HasColumnType("longtext"); + + b.Property("NewPositionLevelId") + .HasColumnType("char(36)") + .HasComment("ระดับตำแหน่ง กำหนดใหม่"); + + b.Property("NewPositionNum") + .HasColumnType("longtext"); + + b.Property("NewPositionNumId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งเลขที่ กำหนดใหม่"); + + b.Property("NewPositionPath") + .HasColumnType("longtext"); + + b.Property("NewPositionPathId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งในสายงาน กำหนดใหม่"); + + b.Property("NewPositionPathSide") + .HasColumnType("longtext"); + + b.Property("NewPositionPathSideId") + .HasColumnType("char(36)") + .HasComment("ด้าน/สาขา กำหนดใหม่"); + + b.Property("NewPositionType") + .HasColumnType("longtext"); + + b.Property("NewPositionTypeId") + .HasColumnType("char(36)") + .HasComment("ประเภทตำแหน่ง กำหนดใหม่"); + + b.Property("OldGovernmentCode") + .HasColumnType("longtext"); + + b.Property("OldOrganizationOrganization") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน กำหนดเดิม"); + + b.Property("OldOrganizationShortName") + .HasColumnType("longtext") + .HasComment("รหัสส่วนราชการ กำหนดเดิม"); + + b.Property("OldPositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร กำหนดเดิม"); + + b.Property("OldPositionExecutiveSide") + .HasColumnType("longtext") + .HasComment("ด้านทางบริหาร กำหนดเดิม"); + + b.Property("OldPositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับตำแหน่ง กำหนดเดิม"); + + b.Property("OldPositionNum") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเลขที่ กำหนดเดิม"); + + b.Property("OldPositionPath") + .HasColumnType("longtext") + .HasComment("ตำแหน่งในสายงาน กำหนดเดิม"); + + b.Property("OldPositionPathSide") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขา กำหนดเดิม"); + + b.Property("OldPositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง กำหนดเดิม"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("ProfilePositionId") + .HasColumnType("char(36)") + .HasComment("สังกัดที่ถือครอง"); + + b.Property("Report2DetailHistoryId") + .HasColumnType("char(36)"); + + b.Property("Salary") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("SalaryMonth") + .HasColumnType("double") + .HasComment("เงินตอบแทนรายเดือน"); + + b.Property("SalaryPosition") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะการเปลี่ยนแปลง"); + + b.HasKey("Id"); + + b.HasIndex("Report2DetailHistoryId"); + + b.ToTable("Report2Histories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.Placement", 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("EndDate") + .HasColumnType("datetime(6)") + .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() + .HasColumnType("longtext") + .HasComment("รอบการสอบ"); + + b.Property("Number") + .HasMaxLength(10) + .HasColumnType("int") + .HasComment("จำนวนผู้สอบได้"); + + b.Property("PlacementTypeId") + .HasColumnType("char(36)"); + + b.Property("Round") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ครั้งที่"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มบัญชีบัญชี"); + + b.Property("Year") + .HasMaxLength(5) + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.HasIndex("PlacementTypeId"); + + b.ToTable("Placements"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementCertificate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CertificateNo") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่ใบอนุญาต"); + + b.Property("CertificateType") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("ExpireDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่หมดอายุ"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกใบอนุญาต"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("PlacementProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PlacementProfileId"); + + b.ToTable("PlacementCertificates"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementEducation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Country") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Degree") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("วุฒิการศึกษา"); + + b.Property("Duration") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ระยะเวลา"); + + b.Property("DurationYear") + .HasColumnType("int") + .HasComment("ระยะเวลาหลักสูตร"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasComment("ถึง"); + + b.Property("Field") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สาขาวิชา/ทาง"); + + b.Property("FinishDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สำเร็จการศึกษา"); + + b.Property("FundName") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ทุน"); + + b.Property("Gpa") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เกรดเฉลี่ย"); + + b.Property("Institute") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("สถานศึกษา"); + + b.Property("IsDate") + .HasColumnType("tinyint(1)") + .HasComment("ประเภทช่วงเวลาการศึกษา"); + + b.Property("IsEducation") + .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("Other") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ข้อมูลการติดต่อ"); + + b.Property("PlacementProfileId") + .HasColumnType("char(36)"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("ตั้งแต่"); + + b.HasKey("Id"); + + b.HasIndex("EducationLevelId"); + + b.HasIndex("PlacementProfileId"); + + b.HasIndex("PositionPathId"); + + b.ToTable("PlacementEducations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementIsProperty", 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)") + .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") + .HasComment("ชื่อคุณสมบัติ"); + + b.HasKey("Id"); + + b.ToTable("PlacementIsProperties"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + 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("Draft") + .HasColumnType("tinyint(1)") + .HasComment("ข้อมูลตำแหน่ง Draft"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("ExamNumber") + .HasColumnType("int") + .HasComment("ลำดับที่สอบได้"); + + b.Property("ExamRound") + .HasColumnType("int") + .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") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + b.Property("IsOfficer") + .HasColumnType("tinyint(1)") + .HasComment("ข้าราชการฯ กทม."); + + b.Property("IsProperty") + .HasColumnType("longtext") + .HasComment("การคัดกรองคุณสมบัติ"); + + b.Property("IsRelief") + .HasColumnType("tinyint(1)") + .HasComment("ผ่อนผัน"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .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("Lastname") + .HasColumnType("longtext") + .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(200) + .HasColumnType("varchar(200)") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .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(200) + .HasColumnType("varchar(200)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("Pass") + .HasColumnType("longtext") + .HasComment("ผลสมัครสอบ"); + + b.Property("PlacementId") + .HasColumnType("char(36)"); + + b.Property("PlacementStatus") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะการบรรจุ"); + + b.Property("PointA") + .HasColumnType("double") + .HasComment("คะแนนภาค ก"); + + b.Property("PointB") + .HasColumnType("double") + .HasComment("คะแนนภาค ข"); + + b.Property("PointC") + .HasColumnType("double") + .HasComment("คะแนนภาค ค"); + + b.Property("PointTotalA") + .HasColumnType("double") + .HasComment("คะแนนเต็มภาค ก"); + + b.Property("PointTotalB") + .HasColumnType("double") + .HasComment("คะแนนเต็มภาค ข"); + + b.Property("PointTotalC") + .HasColumnType("double") + .HasComment("คะแนนเต็มภาค ค"); + + b.Property("PositionCandidateId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("เชื้อชาติ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + 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("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลสละสิทธิ์"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReliefDocId") + .HasColumnType("char(36)"); + + b.Property("ReliefReason") + .HasColumnType("longtext") + .HasComment("เหตุผลผ่อนผัน"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("ReportingDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่รายงานตัว"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("Telephone") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("โทรศัพท์"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("GenderId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PlacementId"); + + b.HasIndex("PositionCandidateId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReliefDocId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Firstname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + 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("Lastname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับโอนราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("GenderId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementReceives"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceiveDoc", 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("PlacementReceiveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementReceiveId"); + + b.ToTable("PlacementReceiveDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ขอโอนไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("PlacementTransfers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransferDoc", 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("PlacementTransferId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementTransferId"); + + b.ToTable("PlacementTransferDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementType", 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)") + .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") + .HasComment("ชื่อประเภทบรรจุ"); + + b.HasKey("Id"); + + b.ToTable("PlacementTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDeceased", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่เสียชีวิต"); + + b.Property("DocumentId") + .HasColumnType("char(36)"); + + 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("Location") + .HasColumnType("longtext") + .HasComment("สถานที่ออกใบมรณบัตร"); + + b.Property("Number") + .HasColumnType("longtext") + .HasComment("เลขที่ใบมรณบัตร"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลการเสียชีวิต"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementDeceaseds"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", 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("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("Round") + .HasColumnType("int") + .HasComment("ครั้งที่"); + + b.Property("Type") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("TypeReport") + .HasColumnType("longtext") + .HasComment("ประเภทคำสั่ง"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.ToTable("RetirementPeriods"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriodHistory", 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("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("ProfileFile") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รายชื่อเกษียญ"); + + b.Property("RetirementPeriodId") + .HasColumnType("char(36)"); + + b.Property("Round") + .HasColumnType("int") + .HasComment("ครั้งที่"); + + b.Property("Total") + .HasColumnType("int") + .HasComment("จำนวนคน"); + + b.Property("Type") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("TypeReport") + .HasColumnType("longtext") + .HasComment("ประเภทคำสั่ง"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.HasIndex("RetirementPeriodId"); + + b.ToTable("RetirementPeriodHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementProfile", 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("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("Order") + .HasColumnType("int") + .HasComment("ลำดับที่"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Remove") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ลบออกจากเกษียญ"); + + b.Property("RetirementPeriodId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.HasIndex("RetirementPeriodId"); + + b.ToTable("RetirementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResign", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("ActiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ขอออกราชการ"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("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("Location") + .HasColumnType("longtext") + .HasComment("สถานที่ยื่นขอลาออกราชการ"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ลาออกจากราชการ"); + + b.Property("SendDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยื่นขอออกราชการ"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะลาออก"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementResigns"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandStatus", "CommandStatus") + .WithMany() + .HasForeignKey("CommandStatusId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandType", "CommandType") + .WithMany() + .HasForeignKey("CommandTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.Placement", "Placement") + .WithMany() + .HasForeignKey("PlacementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CommandStatus"); + + b.Navigation("CommandType"); + + b.Navigation("Placement"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDeployment", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.Command", "Command") + .WithMany("Deployments") + .HasForeignKey("CommandId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Command"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDocument", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.Command", "Command") + .WithMany("Documents") + .HasForeignKey("CommandId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Command"); + + b.Navigation("Document"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandReceiver", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.Command", "Command") + .WithMany("Receivers") + .HasForeignKey("CommandId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Command"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.LimitTypeLeave", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.LimitLeave", "LimitLeave") + .WithMany("LimitTypeLeaves") + .HasForeignKey("LimitLeaveId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany("LimitTypeLeaves") + .HasForeignKey("TypeLeaveId"); + + b.Navigation("LimitLeave"); + + b.Navigation("TypeLeave"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.Profile", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Avatar") + .WithMany() + .HasForeignKey("AvatarId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.LimitLeave", "LimitLeave") + .WithMany("Profiles") + .HasForeignKey("LimitLeaveId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PosNo") + .WithMany() + .HasForeignKey("PosNoId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.Navigation("Avatar"); + + b.Navigation("Gender"); + + b.Navigation("LimitLeave"); + + b.Navigation("PosNo"); + + b.Navigation("Position"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbility", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Abilitys") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbilityHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileAbility", "ProfileAbility") + .WithMany("ProfileAbilityHistorys") + .HasForeignKey("ProfileAbilityId"); + + b.Navigation("ProfileAbility"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAddressHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("AddressHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessment", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Assessments") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessmentHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileAssessment", "ProfileAssessment") + .WithMany("ProfileAssessmentHistorys") + .HasForeignKey("ProfileAssessmentId"); + + b.Navigation("ProfileAssessment"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAvatarHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "AvatarFile") + .WithMany() + .HasForeignKey("AvatarFileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("AvatarHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AvatarFile"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificate", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Certificates") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificateHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileCertificate", "ProfileCertificate") + .WithMany("ProfileCertificateHistorys") + .HasForeignKey("ProfileCertificateId"); + + b.Navigation("ProfileCertificate"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeName", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("ChangeNames") + .HasForeignKey("ProfileId"); + + b.Navigation("Document"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeNameHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileChangeName", "ProfileChangeName") + .WithMany("ProfileChangeNameHistorys") + .HasForeignKey("ProfileChangeNameId"); + + b.Navigation("Document"); + + b.Navigation("ProfileChangeName"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildren", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Childrens") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildrenHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileChildren", null) + .WithMany("ProfileChildrenHistorys") + .HasForeignKey("ProfileChildrenId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", null) + .WithMany("Childrens") + .HasForeignKey("ProfileFamilyHistoryId"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCoupleHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("CoupleHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCurrentAddressHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("CurrentAddressHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDiscipline", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Disciplines") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDisciplineHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileDiscipline", "ProfileDiscipline") + .WithMany("ProfileDisciplineHistorys") + .HasForeignKey("ProfileDisciplineId"); + + b.Navigation("ProfileDiscipline"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDuty", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Dutys") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDutyHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileDuty", "ProfileDuty") + .WithMany("ProfileDutyHistorys") + .HasForeignKey("ProfileDutyId"); + + b.Navigation("ProfileDuty"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducation", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Educations") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducationHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileEducation", "ProfileEducation") + .WithMany("ProfileEducationHistorys") + .HasForeignKey("ProfileEducationId"); + + b.Navigation("ProfileEducation"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("FamilyHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFatherHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("FatherHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileGovernmentHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("GovernmentHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("ProfileHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonor", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Honors") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonorHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileHonor", "ProfileHonor") + .WithMany("ProfileHonorHistorys") + .HasForeignKey("ProfileHonorId"); + + b.Navigation("ProfileHonor"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsignia", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Insignia", "Insignia") + .WithMany() + .HasForeignKey("InsigniaId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Insignias") + .HasForeignKey("ProfileId"); + + b.Navigation("Insignia"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsigniaHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileInsignia", "ProfileInsignia") + .WithMany("ProfileInsigniaHistorys") + .HasForeignKey("ProfileInsigniaId"); + + b.Navigation("ProfileInsignia"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeave", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Leaves") + .HasForeignKey("ProfileId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany() + .HasForeignKey("TypeLeaveId"); + + b.Navigation("Profile"); + + b.Navigation("TypeLeave"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeaveHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileLeave", "ProfileLeave") + .WithMany("ProfileLeaveHistorys") + .HasForeignKey("ProfileLeaveId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany() + .HasForeignKey("TypeLeaveId"); + + b.Navigation("ProfileLeave"); + + b.Navigation("TypeLeave"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileMotherHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("MotherHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaid", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Nopaids") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaidHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileNopaid", "ProfileNopaid") + .WithMany("ProfileNopaidHistorys") + .HasForeignKey("ProfileNopaidId"); + + b.Navigation("ProfileNopaid"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOther", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Others") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOtherHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileOther", "ProfileOther") + .WithMany("ProfileOtherHistorys") + .HasForeignKey("ProfileOtherId"); + + b.Navigation("ProfileOther"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfilePaper", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Papers") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileRegistrationAddressHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("RegistrationAddressHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalary", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Salaries") + .HasForeignKey("ProfileId"); + + b.Navigation("PositionLevel"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileSalary", "ProfileSalary") + .WithMany("ProfileSalaryHistorys") + .HasForeignKey("ProfileSalaryId"); + + b.Navigation("ProfileSalary"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPosition", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Position", "Position") + .WithMany() + .HasForeignKey("PositionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Position"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTraining", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Trainings") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTrainingHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileTraining", "ProfileTraining") + .WithMany("ProfileTrainingHistorys") + .HasForeignKey("ProfileTrainingId"); + + b.Navigation("ProfileTraining"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "ReliefDoc") + .WithMany() + .HasForeignKey("ReliefDocId"); + + b.Navigation("ReliefDoc"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "Organization") + .WithMany() + .HasForeignKey("OrganizationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", "Period") + .WithMany("InsigniaRequests") + .HasForeignKey("PeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Organization"); + + b.Navigation("Period"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequestProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", "Request") + .WithMany("RequestProfiles") + .HasForeignKey("RequestId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Insignia", "RequestInsignia") + .WithMany() + .HasForeignKey("RequestInsigniaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + + b.Navigation("Request"); + + b.Navigation("RequestInsignia"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.District", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Insignia", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.InsigniaType", "InsigniaType") + .WithMany() + .HasForeignKey("InsigniaTypeId"); + + b.Navigation("InsigniaType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Position", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutiveSide", "ExecutiveSide") + .WithMany() + .HasForeignKey("ExecutiveSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PathSide") + .WithMany() + .HasForeignKey("PathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.Navigation("ExecutiveSide"); + + b.Navigation("PathSide"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.SubDistrict", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "OrganizationAgency") + .WithMany() + .HasForeignKey("OrganizationAgencyId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationFax", "OrganizationFax") + .WithMany() + .HasForeignKey("OrganizationFaxId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "OrganizationGovernmentAgency") + .WithMany() + .HasForeignKey("OrganizationGovernmentAgencyId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationLevel", "OrganizationLevel") + .WithMany() + .HasForeignKey("OrganizationLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "OrganizationOrganization") + .WithMany() + .HasForeignKey("OrganizationOrganizationId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", "OrganizationShortName") + .WithMany() + .HasForeignKey("OrganizationShortNameId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelExternal", "OrganizationTelExternal") + .WithMany() + .HasForeignKey("OrganizationTelExternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelInternal", "OrganizationTelInternal") + .WithMany() + .HasForeignKey("OrganizationTelInternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationType", "OrganizationType") + .WithMany() + .HasForeignKey("OrganizationTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLine", "PositionEmployeeLine") + .WithMany() + .HasForeignKey("PositionEmployeeLineId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeePosition", "PositionEmployeePosition") + .WithMany() + .HasForeignKey("PositionEmployeePositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeStatus", "PositionEmployeeStatus") + .WithMany() + .HasForeignKey("PositionEmployeeStatusId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId"); + + b.Navigation("OrganizationAgency"); + + b.Navigation("OrganizationFax"); + + b.Navigation("OrganizationGovernmentAgency"); + + b.Navigation("OrganizationLevel"); + + b.Navigation("OrganizationOrganization"); + + b.Navigation("OrganizationShortName"); + + b.Navigation("OrganizationTelExternal"); + + b.Navigation("OrganizationTelInternal"); + + b.Navigation("OrganizationType"); + + b.Navigation("PositionEmployeeLine"); + + b.Navigation("PositionEmployeePosition"); + + b.Navigation("PositionEmployeeStatus"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeeLevel", b => + { + b.HasOne("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", "OrganizationEmployee") + .WithMany("OrganizationPositionEmployeeLevels") + .HasForeignKey("OrganizationEmployeeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLevel", "PositionEmployeeLevel") + .WithMany() + .HasForeignKey("PositionEmployeeLevelId"); + + b.Navigation("OrganizationEmployee"); + + b.Navigation("PositionEmployeeLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeePositionSide", b => + { + b.HasOne("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", "OrganizationEmployee") + .WithMany("OrganizationPositionEmployeePositionSides") + .HasForeignKey("OrganizationEmployeeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeePositionSide", "PositionEmployeePositionSide") + .WithMany() + .HasForeignKey("PositionEmployeePositionSideId"); + + b.Navigation("OrganizationEmployee"); + + b.Navigation("PositionEmployeePositionSide"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.AvailablePositionLevelEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", "PositionMaster") + .WithMany() + .HasForeignKey("PositionMasterId"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionMaster"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationFax", "OrganizationFax") + .WithMany() + .HasForeignKey("OrganizationFaxId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationLevel", "OrganizationLevel") + .WithMany() + .HasForeignKey("OrganizationLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "OrganizationOrganization") + .WithMany() + .HasForeignKey("OrganizationOrganizationId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", "OrganizationShortName") + .WithMany() + .HasForeignKey("OrganizationShortNameId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationStatus", "OrganizationStatus") + .WithMany() + .HasForeignKey("OrganizationStatusId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelExternal", "OrganizationTelExternal") + .WithMany() + .HasForeignKey("OrganizationTelExternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelInternal", "OrganizationTelInternal") + .WithMany() + .HasForeignKey("OrganizationTelInternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationType", "OrganizationType") + .WithMany() + .HasForeignKey("OrganizationTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "Parent") + .WithMany("Organizations") + .HasForeignKey("ParentId"); + + b.Navigation("OrganizationFax"); + + b.Navigation("OrganizationLevel"); + + b.Navigation("OrganizationOrganization"); + + b.Navigation("OrganizationShortName"); + + b.Navigation("OrganizationStatus"); + + b.Navigation("OrganizationTelExternal"); + + b.Navigation("OrganizationTelInternal"); + + b.Navigation("OrganizationType"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "Organization") + .WithMany() + .HasForeignKey("OrganizationId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", "PositionMaster") + .WithMany() + .HasForeignKey("PositionMasterId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.Navigation("Organization"); + + b.Navigation("PositionMaster"); + + b.Navigation("PositionNumber"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutive", "PositionExecutive") + .WithMany() + .HasForeignKey("PositionExecutiveId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutiveSide", "PositionExecutiveSide") + .WithMany() + .HasForeignKey("PositionExecutiveSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionStatus", "PositionStatus") + .WithMany() + .HasForeignKey("PositionStatusId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.Navigation("PositionExecutive"); + + b.Navigation("PositionExecutiveSide"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionStatus"); + + b.Navigation("PositionType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterHistoryEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", "PositionMasterEntity") + .WithMany("PositionMasterHistorys") + .HasForeignKey("PositionMasterEntityId"); + + b.Navigation("PositionMasterEntity"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", "OrganizationShortName") + .WithMany() + .HasForeignKey("OrganizationShortNameId"); + + b.Navigation("OrganizationShortName"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.ProfilePosition", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2History", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.Report2.Report2DetailHistory", "Report2DetailHistory") + .WithMany() + .HasForeignKey("Report2DetailHistoryId"); + + b.Navigation("Report2DetailHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.Placement", b => + { + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementType", "PlacementType") + .WithMany() + .HasForeignKey("PlacementTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PlacementType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementCertificate", b => + { + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementProfile", "PlacementProfile") + .WithMany("PlacementCertificates") + .HasForeignKey("PlacementProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PlacementProfile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementEducation", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementProfile", "PlacementProfile") + .WithMany("PlacementEducations") + .HasForeignKey("PlacementProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.Navigation("EducationLevel"); + + b.Navigation("PlacementProfile"); + + b.Navigation("PositionPath"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.Placement.Placement", "Placement") + .WithMany("PlacementProfiles") + .HasForeignKey("PlacementId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionCandidate") + .WithMany() + .HasForeignKey("PositionCandidateId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "ReliefDoc") + .WithMany() + .HasForeignKey("ReliefDocId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("Gender"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("Placement"); + + b.Navigation("PositionCandidate"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + + b.Navigation("ReliefDoc"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("Gender"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("Relationship"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceiveDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementReceive", "PlacementReceive") + .WithMany("PlacementReceiveDocs") + .HasForeignKey("PlacementReceiveId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementReceive"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransferDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementTransfer", "PlacementTransfer") + .WithMany("PlacementTransferDocs") + .HasForeignKey("PlacementTransferId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementTransfer"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDeceased", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriodHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") + .WithMany("RetirementPeriodHistorys") + .HasForeignKey("RetirementPeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RetirementPeriod"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") + .WithMany("RetirementProfiles") + .HasForeignKey("RetirementPeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + + b.Navigation("RetirementPeriod"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResign", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b => + { + b.Navigation("Deployments"); + + b.Navigation("Documents"); + + b.Navigation("Receivers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.LimitLeave", b => + { + b.Navigation("LimitTypeLeaves"); + + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.Profile", b => + { + b.Navigation("Abilitys"); + + b.Navigation("AddressHistory"); + + b.Navigation("Assessments"); + + b.Navigation("AvatarHistory"); + + b.Navigation("Certificates"); + + b.Navigation("ChangeNames"); + + b.Navigation("Childrens"); + + b.Navigation("CoupleHistory"); + + b.Navigation("CurrentAddressHistory"); + + b.Navigation("Disciplines"); + + b.Navigation("Dutys"); + + b.Navigation("Educations"); + + b.Navigation("FamilyHistory"); + + b.Navigation("FatherHistory"); + + b.Navigation("GovernmentHistory"); + + b.Navigation("Honors"); + + b.Navigation("Insignias"); + + b.Navigation("Leaves"); + + b.Navigation("MotherHistory"); + + b.Navigation("Nopaids"); + + b.Navigation("Others"); + + b.Navigation("Papers"); + + b.Navigation("ProfileHistory"); + + b.Navigation("RegistrationAddressHistory"); + + b.Navigation("Salaries"); + + b.Navigation("Trainings"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbility", b => + { + b.Navigation("ProfileAbilityHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessment", b => + { + b.Navigation("ProfileAssessmentHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificate", b => + { + b.Navigation("ProfileCertificateHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeName", b => + { + b.Navigation("ProfileChangeNameHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildren", b => + { + b.Navigation("ProfileChildrenHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDiscipline", b => + { + b.Navigation("ProfileDisciplineHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDuty", b => + { + b.Navigation("ProfileDutyHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducation", b => + { + b.Navigation("ProfileEducationHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", b => + { + b.Navigation("Childrens"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonor", b => + { + b.Navigation("ProfileHonorHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsignia", b => + { + b.Navigation("ProfileInsigniaHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeave", b => + { + b.Navigation("ProfileLeaveHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaid", b => + { + b.Navigation("ProfileNopaidHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOther", b => + { + b.Navigation("ProfileOtherHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalary", b => + { + b.Navigation("ProfileSalaryHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTraining", b => + { + b.Navigation("ProfileTrainingHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.TypeLeave", b => + { + b.Navigation("LimitTypeLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", b => + { + b.Navigation("InsigniaRequests"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", b => + { + b.Navigation("RequestProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Province", b => + { + b.Navigation("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", b => + { + b.Navigation("OrganizationPositionEmployeeLevels"); + + b.Navigation("OrganizationPositionEmployeePositionSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", b => + { + b.Navigation("Organizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", b => + { + b.Navigation("PositionMasterHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.Placement", b => + { + b.Navigation("PlacementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => + { + b.Navigation("PlacementCertificates"); + + b.Navigation("PlacementEducations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.Navigation("PlacementReceiveDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.Navigation("PlacementTransferDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", b => + { + b.Navigation("RetirementPeriodHistorys"); + + b.Navigation("RetirementProfiles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.cs b/BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.cs new file mode 100644 index 00000000..d53c9582 --- /dev/null +++ b/BMA.EHR.Infrastructure/Migrations/20230810064535_update table PlacementRecives add positionOld.cs @@ -0,0 +1,488 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Infrastructure.Migrations +{ + /// + public partial class updatetablePlacementRecivesaddpositionOld : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropForeignKey( + name: "FK_PlacementTransfers_OrganizationPositions_OrganizationPositio~", + table: "PlacementTransfers"); + + migrationBuilder.DropForeignKey( + name: "FK_PlacementTransfers_PositionLevels_PositionLevelOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropForeignKey( + name: "FK_PlacementTransfers_PositionNumbers_PositionNumberOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropForeignKey( + name: "FK_PlacementTransfers_PositionTypes_PositionTypeOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropForeignKey( + name: "FK_RetirementResigns_OrganizationOrganizations_OrganizationOrga~", + table: "RetirementResigns"); + + migrationBuilder.DropForeignKey( + name: "FK_RetirementResigns_PositionExecutives_PositionExecutiveId", + table: "RetirementResigns"); + + migrationBuilder.DropForeignKey( + name: "FK_RetirementResigns_PositionLevels_PositionLevelId", + table: "RetirementResigns"); + + migrationBuilder.DropForeignKey( + name: "FK_RetirementResigns_PositionLines_PositionLineId", + table: "RetirementResigns"); + + migrationBuilder.DropForeignKey( + name: "FK_RetirementResigns_PositionTypes_PositionTypeId", + table: "RetirementResigns"); + + migrationBuilder.DropIndex( + name: "IX_RetirementResigns_OrganizationOrganizationId", + table: "RetirementResigns"); + + migrationBuilder.DropIndex( + name: "IX_RetirementResigns_PositionExecutiveId", + table: "RetirementResigns"); + + migrationBuilder.DropIndex( + name: "IX_RetirementResigns_PositionLevelId", + table: "RetirementResigns"); + + migrationBuilder.DropIndex( + name: "IX_RetirementResigns_PositionLineId", + table: "RetirementResigns"); + + migrationBuilder.DropIndex( + name: "IX_RetirementResigns_PositionTypeId", + table: "RetirementResigns"); + + migrationBuilder.DropIndex( + name: "IX_PlacementTransfers_OrganizationPositionOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropIndex( + name: "IX_PlacementTransfers_PositionLevelOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropIndex( + name: "IX_PlacementTransfers_PositionNumberOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropIndex( + name: "IX_PlacementTransfers_PositionTypeOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "OrganizationOrganizationId", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionExecutiveId", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionLevelId", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionLineId", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionTypeId", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "OrganizationPositionOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "PositionLevelOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "PositionNumberOldId", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "PositionTypeOldId", + table: "PlacementTransfers"); + + migrationBuilder.AddColumn( + name: "AmountOld", + table: "RetirementResigns", + type: "double", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"); + + migrationBuilder.AddColumn( + name: "OrganizationPositionOld", + table: "RetirementResigns", + type: "longtext", + nullable: true, + comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionLevelOld", + table: "RetirementResigns", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionNumberOld", + table: "RetirementResigns", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionTypeOld", + table: "RetirementResigns", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "OrganizationPositionOld", + table: "PlacementTransfers", + type: "longtext", + nullable: true, + comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionLevelOld", + table: "PlacementTransfers", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionNumberOld", + table: "PlacementTransfers", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionTypeOld", + table: "PlacementTransfers", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "AmountOld", + table: "PlacementReceives", + type: "double", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"); + + migrationBuilder.AddColumn( + name: "EducationOld", + table: "PlacementReceives", + type: "longtext", + nullable: true, + comment: "วุฒิ/สาขาเดิม") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "OrganizationPositionOld", + table: "PlacementReceives", + type: "longtext", + nullable: true, + comment: "สังกัดเดิม") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionLevelOld", + table: "PlacementReceives", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionNumberOld", + table: "PlacementReceives", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "PositionTypeOld", + table: "PlacementReceives", + type: "longtext", + nullable: true, + comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "Reason", + table: "PlacementReceives", + type: "longtext", + nullable: true, + comment: "เหตุผลที่รับโอนราชการ") + .Annotation("MySql:CharSet", "utf8mb4"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "AmountOld", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "OrganizationPositionOld", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionLevelOld", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionNumberOld", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "PositionTypeOld", + table: "RetirementResigns"); + + migrationBuilder.DropColumn( + name: "OrganizationPositionOld", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "PositionLevelOld", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "PositionNumberOld", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "PositionTypeOld", + table: "PlacementTransfers"); + + migrationBuilder.DropColumn( + name: "AmountOld", + table: "PlacementReceives"); + + migrationBuilder.DropColumn( + name: "EducationOld", + table: "PlacementReceives"); + + migrationBuilder.DropColumn( + name: "OrganizationPositionOld", + table: "PlacementReceives"); + + migrationBuilder.DropColumn( + name: "PositionLevelOld", + table: "PlacementReceives"); + + migrationBuilder.DropColumn( + name: "PositionNumberOld", + table: "PlacementReceives"); + + migrationBuilder.DropColumn( + name: "PositionTypeOld", + table: "PlacementReceives"); + + migrationBuilder.DropColumn( + name: "Reason", + table: "PlacementReceives"); + + migrationBuilder.AddColumn( + name: "OrganizationOrganizationId", + table: "RetirementResigns", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionExecutiveId", + table: "RetirementResigns", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionLevelId", + table: "RetirementResigns", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionLineId", + table: "RetirementResigns", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionTypeId", + table: "RetirementResigns", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "OrganizationPositionOldId", + table: "PlacementTransfers", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionLevelOldId", + table: "PlacementTransfers", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionNumberOldId", + table: "PlacementTransfers", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "PositionTypeOldId", + table: "PlacementTransfers", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementResigns_OrganizationOrganizationId", + table: "RetirementResigns", + column: "OrganizationOrganizationId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementResigns_PositionExecutiveId", + table: "RetirementResigns", + column: "PositionExecutiveId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementResigns_PositionLevelId", + table: "RetirementResigns", + column: "PositionLevelId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementResigns_PositionLineId", + table: "RetirementResigns", + column: "PositionLineId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementResigns_PositionTypeId", + table: "RetirementResigns", + column: "PositionTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementTransfers_OrganizationPositionOldId", + table: "PlacementTransfers", + column: "OrganizationPositionOldId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementTransfers_PositionLevelOldId", + table: "PlacementTransfers", + column: "PositionLevelOldId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementTransfers_PositionNumberOldId", + table: "PlacementTransfers", + column: "PositionNumberOldId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementTransfers_PositionTypeOldId", + table: "PlacementTransfers", + column: "PositionTypeOldId"); + + migrationBuilder.AddForeignKey( + name: "FK_PlacementTransfers_OrganizationPositions_OrganizationPositio~", + table: "PlacementTransfers", + column: "OrganizationPositionOldId", + principalTable: "OrganizationPositions", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_PlacementTransfers_PositionLevels_PositionLevelOldId", + table: "PlacementTransfers", + column: "PositionLevelOldId", + principalTable: "PositionLevels", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_PlacementTransfers_PositionNumbers_PositionNumberOldId", + table: "PlacementTransfers", + column: "PositionNumberOldId", + principalTable: "PositionNumbers", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_PlacementTransfers_PositionTypes_PositionTypeOldId", + table: "PlacementTransfers", + column: "PositionTypeOldId", + principalTable: "PositionTypes", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_RetirementResigns_OrganizationOrganizations_OrganizationOrga~", + table: "RetirementResigns", + column: "OrganizationOrganizationId", + principalTable: "OrganizationOrganizations", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_RetirementResigns_PositionExecutives_PositionExecutiveId", + table: "RetirementResigns", + column: "PositionExecutiveId", + principalTable: "PositionExecutives", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_RetirementResigns_PositionLevels_PositionLevelId", + table: "RetirementResigns", + column: "PositionLevelId", + principalTable: "PositionLevels", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_RetirementResigns_PositionLines_PositionLineId", + table: "RetirementResigns", + column: "PositionLineId", + principalTable: "PositionLines", + principalColumn: "Id"); + + migrationBuilder.AddForeignKey( + name: "FK_RetirementResigns_PositionTypes_PositionTypeId", + table: "RetirementResigns", + column: "PositionTypeId", + principalTable: "PositionTypes", + principalColumn: "Id"); + } + } +} diff --git a/BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.Designer.cs b/BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.Designer.cs new file mode 100644 index 00000000..e6cfb34e --- /dev/null +++ b/BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.Designer.cs @@ -0,0 +1,14506 @@ +// +using System; +using BMA.EHR.Infrastructure.Persistence; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Infrastructure.Migrations +{ + [DbContext(typeof(ApplicationDBContext))] + [Migration("20230810184658_add table PlacementAppointment")] + partial class addtablePlacementAppointment + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.9") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AuthorizedPosition") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ตำแหน่งผู้มีอำนาจลงนาม"); + + b.Property("AuthorizedUserFullName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อผู้มีอำนาจลงนาม"); + + b.Property("AuthorizedUserId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงผู้มีอำนาจลงนาม"); + + b.Property("CommandAffectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่คำสั่งมีผล"); + + b.Property("CommandExcecuteDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกคำสั่ง"); + + b.Property("CommandNo") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("เลขที่คำสั่ง"); + + b.Property("CommandStatusId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงสถานะคำสั่ง"); + + b.Property("CommandSubject") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("คำสั่งเรื่อง"); + + b.Property("CommandTypeId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงประเภทคำสั่ง"); + + b.Property("CommandYear") + .IsRequired() + .HasMaxLength(4) + .HasColumnType("varchar(4)") + .HasComment("ปีที่ออกคำสั่ง"); + + b.Property("ConclusionRegisterDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง รับสมัครสอบฯ)"); + + b.Property("ConclusionRegisterNo") + .IsRequired() + .HasColumnType("longtext") + .HasComment("มติ กก. ครั้งที่ (เรื่อง รับสมัครสอบฯ)"); + + b.Property("ConclusionResultDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง ผลการสอบแข่งขัน)"); + + b.Property("ConclusionResultNo") + .IsRequired() + .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("IssuerOrganizationId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงหน่วยงานที่ออกคำสั่ง"); + + b.Property("IssuerOrganizationName") + .IsRequired() + .HasColumnType("longtext") + .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("OwnerGovId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการผู้ออกคำสั่ง"); + + b.Property("PlacementId") + .HasColumnType("char(36)") + .HasComment("อ้างอิงรอบการสอบ"); + + b.Property("PositionName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ตำแหน่งที่บรรจุ"); + + b.HasKey("Id"); + + b.HasIndex("CommandStatusId"); + + b.HasIndex("CommandTypeId"); + + b.HasIndex("PlacementId"); + + b.ToTable("Commands"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDeployment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CommandId") + .HasColumnType("char(36)") + .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("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("IsSendInbox") + .HasColumnType("tinyint(1)") + .HasComment("ส่งกล่องข้อความหรือไม่?"); + + b.Property("IsSendMail") + .HasColumnType("tinyint(1)") + .HasComment("ส่งอีเมล์หรือไม่?"); + + b.Property("IsSendNotification") + .HasColumnType("tinyint(1)") + .HasComment("ส่งแจ้งเตือนหรือไม่?"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("OrganizationName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงานของผู้รับสำเนาคำสั่ง"); + + b.Property("PositionName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งของผู้รับสำเนาคำสั่ง"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("คำนำหน้านาม"); + + b.Property("ReceiveUserId") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รหัสอ้างอิงผู้ใช้งานระบบ"); + + b.Property("Sequence") + .HasColumnType("int") + .HasComment("ลำดับ"); + + b.HasKey("Id"); + + b.HasIndex("CommandId"); + + b.ToTable("CommandDeployments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Category") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภทเอกสาร"); + + b.Property("CommandId") + .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("CommandId"); + + b.HasIndex("DocumentId"); + + b.ToTable("CommandDocuments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandReceiver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CommandId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงคำสั่ง"); + + b.Property("Comment") + .IsRequired() + .HasColumnType("text") + .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("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("คำนำหน้านาม"); + + b.Property("RefPlacementProfileId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงไปยังข้อมูลผู้บรรจุ"); + + b.Property("Sequence") + .HasColumnType("int") + .HasComment("ลำดับในบัญชีแนบท้าย"); + + b.HasKey("Id"); + + b.HasIndex("CommandId"); + + b.ToTable("CommandReceivers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandStatus", 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("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)") + .HasComment("สถานะของคำสั่ง"); + + b.Property("Sequence") + .HasColumnType("int") + .HasComment("ลำดับการทำงาน"); + + b.HasKey("Id"); + + b.ToTable("CommandStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Category") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ประเภทคำสั่ง"); + + b.Property("CommandCode") + .IsRequired() + .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("Name") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ชื่อคำสั่ง"); + + b.HasKey("Id"); + + b.ToTable("CommandTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.DeploymentChannel", 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("IsSendEmail") + .HasColumnType("tinyint(1)"); + + b.Property("IsSendInbox") + .HasColumnType("tinyint(1)"); + + 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.ToTable("DeploymentChannels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.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.Domain.Models.HR.LimitLeave", 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("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") + .HasColumnType("longtext") + .HasComment("ยังไม่ชัวใช้อะไรเป็นkey"); + + b.HasKey("Id"); + + b.ToTable("LimitLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.LimitTypeLeave", 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("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("LimitLeaveId") + .HasColumnType("char(36)"); + + b.Property("NumLeave") + .HasColumnType("double") + .HasComment("จำนวนที่ลาได้"); + + b.Property("TypeLeaveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("LimitLeaveId"); + + b.HasIndex("TypeLeaveId"); + + b.ToTable("LimitTypeLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.Profile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Ability") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("AvatarId") + .HasColumnType("char(36)"); + + b.Property("AvatarRef") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("BirthDate") + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มเลือด"); + + b.Property("CitizenId") + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .HasComment("รหัสบัตรประชาชน"); + + b.Property("Couple") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("CoupleCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("อาชีพคู่สมรส"); + + b.Property("CoupleFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อคู่สมรส"); + + b.Property("CoupleLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("CoupleLastNameOld") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส(เดิม)"); + + b.Property("CouplePrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้าคู่สมรส"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUser") + .IsRequired() + .HasMaxLength(250) + .HasColumnType("varchar(250)"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตปัจจุบัน"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดปัจจุบัน"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)") + .HasComment("Id แขวงปัจจุบัน"); + + b.Property("CurrentZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(5)") + .HasComment("รหัสไปรษณีย์ปัจจุบัน"); + + b.Property("DateAppoint") + .HasColumnType("datetime(6)"); + + b.Property("DateRetire") + .HasColumnType("datetime(6)"); + + b.Property("DateStart") + .HasColumnType("datetime(6)"); + + b.Property("EmployeeClass") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทลูกจ้าง"); + + b.Property("EmployeeType") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทการจ้าง"); + + b.Property("EntryStatus") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.Property("FatherCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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)") + .HasComment("Id คำนำหน้าบิดา"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("FirstNameOld") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ(เดิม)"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + b.Property("GovAgeAbsent") + .HasColumnType("int"); + + b.Property("GovAgePlus") + .HasColumnType("int"); + + b.Property("GovernmentCode") + .HasColumnType("longtext"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsLeave") + .HasColumnType("tinyint(1)"); + + b.Property("IsProbation") + .HasColumnType("tinyint(1)"); + + b.Property("IsTransfer") + .HasColumnType("tinyint(1)"); + + b.Property("IsVerified") + .HasColumnType("tinyint(1)"); + + b.Property("KeycloakId") + .HasColumnType("char(36)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุล"); + + b.Property("LastNameOld") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("LeaveDate") + .HasColumnType("datetime(6)"); + + b.Property("LeaveDateOrder") + .HasColumnType("datetime(6)"); + + b.Property("LeaveDetail") + .HasColumnType("longtext"); + + b.Property("LeaveNumberOrder") + .HasColumnType("longtext"); + + b.Property("LeaveReason") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)"); + + b.Property("LimitLeaveId") + .HasColumnType("char(36)"); + + b.Property("ModifiedDate") + .HasColumnType("datetime(6)"); + + b.Property("MotherCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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)") + .HasComment("Id คำนำหน้ามารดา"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("Oc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("OrganizationOrganization") + .HasColumnType("longtext"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortName") + .HasColumnType("longtext"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("Physical") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สถานภาพทางกาย"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มงาน"); + + b.Property("PositionEmployeeGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มงาน"); + + b.Property("PositionEmployeeLevel") + .HasColumnType("longtext") + .HasComment("ระดับชั้นงาน"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับชั้นงาน"); + + b.Property("PositionEmployeePosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionEmployeePositionSide") + .HasColumnType("longtext") + .HasComment("ด้านของตำแหน่ง"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านของตำแหน่ง"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext") + .HasComment("ด้านทางการบริหาร"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionPathSide") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขา"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("PrefixOldId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า(เดิม)"); + + b.Property("ProfileType") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("ReasonSameDate") + .HasColumnType("longtext"); + + b.Property("RegistrationAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("Id แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตตามทะเบียนบ้าน"); + + b.Property("RegistrationProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดตามทะเบียนบ้าน"); + + b.Property("RegistrationSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันตรงกับที่อยู่ตามทะเบียนบ้านหรือไม่"); + + b.Property("RegistrationSubDistrictId") + .HasColumnType("char(36)") + .HasComment("แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(5)") + .HasComment("รหัสไปรษณีย์ตามทะเบียนบ้าน"); + + b.Property("RelationshipId") + .HasColumnType("char(36)") + .HasComment("Id สถานะภาพ"); + + b.Property("ReligionId") + .HasColumnType("char(36)") + .HasComment("Id ศาสนา"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.Property("TransferDate") + .HasColumnType("datetime(6)"); + + b.Property("VerifiedDate") + .HasColumnType("datetime(6)"); + + b.Property("VerifiedUser") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.HasKey("Id"); + + b.HasIndex("AvatarId"); + + b.HasIndex("GenderId"); + + b.HasIndex("LimitLeaveId"); + + b.HasIndex("PosNoId"); + + b.HasIndex("PositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.ToTable("Profiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbility", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .HasComment("รายละเอียด"); + + b.Property("Field") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("Remark") + .HasColumnType("longtext") + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAbilitys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbilityHistory", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .HasComment("รายละเอียด"); + + b.Property("Field") + .HasColumnType("longtext") + .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("ProfileAbilityId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("Remark") + .HasColumnType("longtext") + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileAbilityId"); + + b.ToTable("ProfileAbilityHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAddressHistory", 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("CurrentAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrict") + .HasColumnType("longtext") + .HasComment("เขตปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตปัจจุบัน"); + + b.Property("CurrentProvince") + .HasColumnType("longtext") + .HasComment("จังหวัดปัจจุบัน"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดปัจจุบัน"); + + b.Property("CurrentSubDistrict") + .HasColumnType("longtext") + .HasComment("แขวงปัจจุบัน"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)") + .HasComment("Id แขวงปัจจุบัน"); + + b.Property("CurrentZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("RegistrationAddress") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistrationDistrict") + .HasColumnType("longtext") + .HasComment("เขตตามทะเบียนบ้าน"); + + b.Property("RegistrationDistrictId") + .HasColumnType("char(36)") + .HasComment("Id เขตตามทะเบียนบ้าน"); + + b.Property("RegistrationProvince") + .HasColumnType("longtext") + .HasComment("จังหวัดตามทะเบียนบ้าน"); + + b.Property("RegistrationProvinceId") + .HasColumnType("char(36)") + .HasComment("Id จังหวัดตามทะเบียนบ้าน"); + + b.Property("RegistrationSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันตรงกับที่อยู่ตามทะเบียนบ้านหรือไม่"); + + b.Property("RegistrationSubDistrict") + .HasColumnType("longtext") + .HasComment("แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationSubDistrictId") + .HasColumnType("char(36)") + .HasComment("Id แขวงตามทะเบียนบ้าน"); + + b.Property("RegistrationZipCode") + .HasMaxLength(5) + .HasColumnType("varchar(5)") + .HasComment("รหัสไปรษณีย์ตามทะเบียนบ้าน"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAddressHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessment", 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("Date") + .HasColumnType("datetime(6)") + .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") + .HasColumnType("longtext") + .HasComment("ชื่อแบบประเมิน"); + + b.Property("Point1") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่1 (คะแนน)"); + + b.Property("Point1Total") + .HasColumnType("double") + .HasComment("ส่วนที่1 (คะแนน)"); + + b.Property("Point2") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่2 (คะแนน)"); + + b.Property("Point2Total") + .HasColumnType("double") + .HasComment("ส่วนที่2 (คะแนน)"); + + b.Property("PointSum") + .HasColumnType("double") + .HasComment("ผลประเมินรวม (คะแนน)"); + + b.Property("PointSumTotal") + .HasColumnType("double") + .HasComment("ผลรวม (คะแนน)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAssessments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessmentHistory", 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("Date") + .HasColumnType("datetime(6)") + .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") + .HasColumnType("longtext") + .HasComment("ชื่อแบบประเมิน"); + + b.Property("Point1") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่1 (คะแนน)"); + + b.Property("Point1Total") + .HasColumnType("double") + .HasComment("ส่วนที่1 (คะแนน)"); + + b.Property("Point2") + .HasColumnType("double") + .HasComment("ผลประเมินส่วนที่2 (คะแนน)"); + + b.Property("Point2Total") + .HasColumnType("double") + .HasComment("ส่วนที่2 (คะแนน)"); + + b.Property("PointSum") + .HasColumnType("double") + .HasComment("ผลประเมินรวม (คะแนน)"); + + b.Property("PointSumTotal") + .HasColumnType("double") + .HasComment("ผลรวม (คะแนน)"); + + b.Property("ProfileAssessmentId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileAssessmentId"); + + b.ToTable("ProfileAssessmentHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAvatarHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AvatarFileId") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("AvatarFileId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileAvatarHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CertificateNo") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่ใบอนุญาต"); + + b.Property("CertificateType") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("ExpireDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่หมดอายุ"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกใบอนุญาต"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileCertificates"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificateHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CertificateNo") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่ใบอนุญาต"); + + b.Property("CertificateType") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("ExpireDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่หมดอายุ"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกใบอนุญาต"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileCertificateId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileCertificateId"); + + b.ToTable("ProfileCertificateHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeName", 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("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("PrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Status") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สถานะ"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileChangeNames"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeNameHistory", 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("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("PrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileChangeNameId") + .HasColumnType("char(36)"); + + b.Property("Status") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สถานะ"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileChangeNameId"); + + b.ToTable("ProfileChangeNameHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildren", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("ChildrenCareer") + .HasColumnType("longtext") + .HasComment("อาชีพบุตร"); + + b.Property("ChildrenFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อบุตร"); + + b.Property("ChildrenLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลบุตร"); + + b.Property("ChildrenPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าบุตร"); + + b.Property("ChildrenPrefixId") + .HasColumnType("char(36)") + .HasComment("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("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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileChildrens"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildrenHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("ChildrenCareer") + .HasColumnType("longtext") + .HasComment("อาชีพบุตร"); + + b.Property("ChildrenFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อบุตร"); + + b.Property("ChildrenLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลบุตร"); + + b.Property("ChildrenPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าบุตร"); + + b.Property("ChildrenPrefixId") + .HasColumnType("char(36)") + .HasComment("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("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("ProfileChildrenId") + .HasColumnType("char(36)"); + + b.Property("ProfileFamilyHistoryId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileChildrenId"); + + b.HasIndex("ProfileFamilyHistoryId"); + + b.ToTable("ProfileChildrenHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCoupleHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Career") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileCoupleHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCurrentAddressHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.Property("SubDistrictId") + .HasColumnType("char(36)"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileCurrentAddressHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDiscipline", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("text") + .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("Level") + .HasColumnType("longtext") + .HasComment("ระดับความผิด"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("RefCommandDate") + .HasColumnType("datetime(6)") + .HasComment("เอกสารอ้างอิง (ลงวันที่)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileDisciplines"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDisciplineHistory", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("text") + .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("Level") + .HasColumnType("longtext") + .HasComment("ระดับความผิด"); + + b.Property("ProfileDisciplineId") + .HasColumnType("char(36)"); + + b.Property("RefCommandDate") + .HasColumnType("datetime(6)") + .HasComment("เอกสารอ้างอิง (ลงวันที่)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileDisciplineId"); + + b.ToTable("ProfileDisciplineHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDuty", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileDutys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDutyHistory", 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("สิ้นสุด"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("เริ่มต้น"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileDutyId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileDutyId"); + + b.ToTable("ProfileDutyHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Country") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Degree") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("วุฒิการศึกษา"); + + b.Property("Duration") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ระยะเวลา"); + + b.Property("DurationYear") + .HasColumnType("int") + .HasComment("ระยะเวลาหลักสูตร"); + + b.Property("EducationLevel") + .HasColumnType("longtext") + .HasComment("ระดับศึกษา"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)") + .HasComment("Id ระดับศึกษา"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasComment("ถึง"); + + b.Property("Field") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สาขาวิชา/ทาง"); + + b.Property("FinishDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สำเร็จการศึกษา"); + + b.Property("FundName") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ทุน"); + + b.Property("Gpa") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เกรดเฉลี่ย"); + + b.Property("Institute") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Other") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ข้อมูลการติดต่อ"); + + b.Property("PositionPath") + .HasColumnType("longtext") + .HasComment("เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("PositionPathId") + .HasColumnType("char(36)") + .HasComment("Id เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("ตั้งแต่"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileEducations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducationHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Country") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Degree") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("วุฒิการศึกษา"); + + b.Property("Duration") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ระยะเวลา"); + + b.Property("DurationYear") + .HasColumnType("int") + .HasComment("ระยะเวลาหลักสูตร"); + + b.Property("EducationLevel") + .HasColumnType("longtext") + .HasComment("ระดับศึกษา"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)") + .HasComment("Id ระดับศึกษา"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasComment("ถึง"); + + b.Property("Field") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สาขาวิชา/ทาง"); + + b.Property("FinishDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สำเร็จการศึกษา"); + + b.Property("FundName") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ทุน"); + + b.Property("Gpa") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เกรดเฉลี่ย"); + + b.Property("Institute") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Other") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ข้อมูลการติดต่อ"); + + b.Property("PositionPath") + .HasColumnType("longtext") + .HasComment("เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("PositionPathId") + .HasColumnType("char(36)") + .HasComment("Id เป็นวุฒิการศึกษาในตำแหน่ง"); + + b.Property("ProfileEducationId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("ตั้งแต่"); + + b.HasKey("Id"); + + b.HasIndex("ProfileEducationId"); + + b.ToTable("ProfileEducationHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Couple") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("CoupleCareer") + .HasColumnType("longtext") + .HasComment("อาชีพคู่สมรส"); + + b.Property("CoupleFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อคู่สมรส"); + + b.Property("CoupleLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("CoupleLastNameOld") + .HasColumnType("longtext") + .HasComment("นามสกุลคู่สมรส(เดิม)"); + + b.Property("CouplePrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าคู่สมรส"); + + b.Property("CouplePrefixId") + .HasColumnType("char(36)") + .HasComment("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("FatherCareer") + .HasColumnType("longtext") + .HasComment("อาชีพบิดา"); + + b.Property("FatherFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อบิดา"); + + b.Property("FatherLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้าบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)") + .HasComment("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("MotherCareer") + .HasColumnType("longtext") + .HasComment("อาชีพมารดา"); + + b.Property("MotherFirstName") + .HasColumnType("longtext") + .HasComment("ชื่อมารดา"); + + b.Property("MotherLastName") + .HasColumnType("longtext") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherPrefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้ามารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้ามารดา"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileFamilyHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFatherHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Career") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileFatherHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileGovernmentHistory", 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("DateAppoint") + .HasColumnType("datetime(6)") + .HasComment("วันที่สั่งบรรจุ"); + + b.Property("DateStart") + .HasColumnType("datetime(6)") + .HasComment("เริ่มปฎิบัติราชการ"); + + b.Property("GovAge") + .HasColumnType("longtext") + .HasComment("อายุราชการ"); + + b.Property("GovAgeAbsent") + .HasColumnType("int") + .HasComment("ขาดราชการ"); + + b.Property("GovAgePlus") + .HasColumnType("int") + .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("Oc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("PosNo") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("Position") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeeGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มงาน"); + + b.Property("PositionEmployeeLevel") + .HasColumnType("longtext") + .HasComment("ระดับชั้นงาน"); + + b.Property("PositionEmployeePosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeePositionSide") + .HasColumnType("longtext") + .HasComment("ด้านของตำแหน่ง"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับตำแหน่ง"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ReasonSameDate") + .HasColumnType("longtext") + .HasComment("เหตุผลกรณีไม่ตรงวัน"); + + b.Property("RetireDate") + .HasColumnType("longtext") + .HasComment("วันเกษียณอายุ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileGovernmentHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("BirthDate") + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("BloodGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มเลือด"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มเลือด"); + + b.Property("CitizenId") + .HasMaxLength(13) + .HasColumnType("varchar(13)") + .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("EmployeeClass") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทลูกจ้าง"); + + b.Property("EmployeeType") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทการจ้าง"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อ"); + + b.Property("Gender") + .HasColumnType("longtext") + .HasComment("เพศ"); + + b.Property("GenderId") + .HasColumnType("char(36)") + .HasComment("Id เพศ"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("Prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("PrefixId") + .HasColumnType("char(36)") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Relationship") + .HasColumnType("longtext") + .HasComment("สถานะภาพ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)") + .HasComment("Id สถานะภาพ"); + + b.Property("Religion") + .HasColumnType("longtext") + .HasComment("ศาสนา"); + + b.Property("ReligionId") + .HasColumnType("char(36)") + .HasComment("Id ศาสนา"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonor", 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") + .HasMaxLength(2000) + .HasColumnType("varchar(2000)") + .HasComment("รายละเอียด"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileHonors"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonorHistory", 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") + .HasMaxLength(2000) + .HasColumnType("varchar(2000)") + .HasComment("รายละเอียด"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("ProfileHonorId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileHonorId"); + + b.ToTable("ProfileHonorHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsignia", 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("DateAnnounce") + .HasColumnType("datetime(6)") + .HasComment("วันที่ประกาศในราชกิจจาฯ"); + + b.Property("InsigniaId") + .HasColumnType("char(36)"); + + b.Property("InsigniaType") + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("Issue") + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .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("No") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ลำดับที่"); + + b.Property("Page") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("หน้า"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่"); + + b.Property("RefCommandDate") + .HasColumnType("datetime(6)") + .HasComment("เอกสารอ้างอิง (ลงวันที่)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.Property("Section") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("ตอน"); + + b.Property("Volume") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่ม"); + + b.Property("VolumeNo") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่มที่"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีที่ยื่นขอ"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileInsignias"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsigniaHistory", 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("DateAnnounce") + .HasColumnType("datetime(6)") + .HasComment("วันที่ประกาศในราชกิจจาฯ"); + + b.Property("Insignia") + .HasColumnType("longtext") + .HasComment("ชื่อเครื่องราชฯ"); + + b.Property("InsigniaId") + .HasColumnType("char(36)"); + + b.Property("InsigniaType") + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("Issue") + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .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("No") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ลำดับที่"); + + b.Property("Page") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("หน้า"); + + b.Property("ProfileInsigniaId") + .HasColumnType("char(36)"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่"); + + b.Property("Section") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("ตอน"); + + b.Property("Volume") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่ม"); + + b.Property("VolumeNo") + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasComment("เล่มที่"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีที่ยื่นขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileInsigniaId"); + + b.ToTable("ProfileInsigniaHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeave", 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("DateEndLeave") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี ที่สิ้นสุดลา"); + + b.Property("DateStartLeave") + .HasColumnType("datetime(6)") + .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("NumLeave") + .HasColumnType("double") + .HasComment("ลาครั้งที่"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะ"); + + b.Property("SumLeave") + .HasColumnType("double") + .HasComment("ลามาแล้ว"); + + b.Property("TotalLeave") + .HasColumnType("double") + .HasComment("รวมเป็น"); + + b.Property("TypeLeaveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.HasIndex("TypeLeaveId"); + + b.ToTable("ProfileLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeaveHistory", 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("DateEndLeave") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี ที่สิ้นสุดลา"); + + b.Property("DateStartLeave") + .HasColumnType("datetime(6)") + .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("NumLeave") + .HasColumnType("double") + .HasComment("ลาครั้งที่"); + + b.Property("ProfileLeaveId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะ"); + + b.Property("SumLeave") + .HasColumnType("double") + .HasComment("ลามาแล้ว"); + + b.Property("TotalLeave") + .HasColumnType("double") + .HasComment("รวมเป็น"); + + b.Property("TypeLeaveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileLeaveId"); + + b.HasIndex("TypeLeaveId"); + + b.ToTable("ProfileLeaveHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileMotherHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Career") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("LastName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileMotherHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaid", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileNopaids"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaidHistory", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วัน เดือน ปี"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileNopaidId") + .HasColumnType("char(36)"); + + b.Property("Reference") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileNopaidId"); + + b.ToTable("ProfileNopaidHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOrganization", 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("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("OrganizationId") + .HasColumnType("char(36)") + .HasComment("Id หน่วยงานที่สังกัด"); + + b.Property("UserId") + .HasColumnType("char(36)") + .HasComment("User Id KeyCloak"); + + b.HasKey("Id"); + + b.ToTable("ProfileOrganizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOther", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileOthers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOtherHistory", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่"); + + b.Property("Detail") + .HasColumnType("longtext") + .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("ProfileOtherId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileOtherId"); + + b.ToTable("ProfileOtherHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfilePaper", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CategoryName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .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") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)") + .HasComment("ชื่อไฟล์"); + + 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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfilePapers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileRegistrationAddressHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Address") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.Property("SubDistrictId") + .HasColumnType("char(36)"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileRegistrationAddressHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalary", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("CommandNo") + .IsRequired() + .HasColumnType("longtext") + .HasComment("เลขที่คำสั่ง"); + + b.Property("CommandTypeName") + .IsRequired() + .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("Date") + .HasColumnType("datetime(6)") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("Order") + .HasColumnType("int") + .HasComment("ลำดับ"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("Id ชื่อย่อหน่วยงาน"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("PositionEmployeeGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มงาน"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับชั้นงาน"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านของตำแหน่ง"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("Id ประเภทตำแหน่ง"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileSalaries"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("Oc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("OrganizationShortName") + .HasColumnType("longtext"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("PosNo") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("Position") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeeGroup") + .HasColumnType("longtext") + .HasComment("กลุ่มงาน"); + + b.Property("PositionEmployeeGroupId") + .HasColumnType("char(36)") + .HasComment("Id กลุ่มงาน"); + + b.Property("PositionEmployeeLevel") + .HasColumnType("longtext") + .HasComment("ระดับชั้นงาน"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับชั้นงาน"); + + b.Property("PositionEmployeePosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionEmployeePositionSide") + .HasColumnType("longtext") + .HasComment("ด้านของตำแหน่ง"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านของตำแหน่ง"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext") + .HasComment("ด้านทางการบริหาร"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับ"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)") + .HasComment(" Id ระดับ"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionPathSide") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขา"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("Id ประเภทตำแหน่ง"); + + b.Property("ProfileSalaryId") + .HasColumnType("char(36)"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.HasKey("Id"); + + b.HasIndex("ProfileSalaryId"); + + b.ToTable("ProfileSalaryHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryOrganization", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryOrganizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPosition", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.Property("PositionId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PositionId"); + + b.ToTable("ProfileSalaryPositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPositionLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryPositionLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPositionNumber", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryPositionsNumbers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPositionType", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int") + .HasComment("ไม่ใช้"); + + b.Property("Comment") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)"); + + b.HasKey("Id"); + + b.ToTable("ProfileSalaryPositionTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTraining", 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("DateOrder") + .HasColumnType("datetime(6)") + .HasComment("คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"); + + b.Property("Department") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน"); + + b.Property("Duration") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("รวมระยะเวลาในการฝึกอบรม/ดูงาน"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .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") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ชื่อโครงการ/หลักสูตรการฝึกอบรม"); + + b.Property("NumberOrder") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"); + + b.Property("Place") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สถานที่ฝึกอบรม/ดูงาน"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันเริ่มต้นการฝึกอบรม/ดูงาน"); + + b.Property("Topic") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวข้อการฝึกอบรม/ดูงาน"); + + b.Property("Yearly") + .HasMaxLength(200) + .HasColumnType("int") + .HasComment("ปีที่อบรม (พ.ศ.)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileTrainings"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTrainingHistory", 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("DateOrder") + .HasColumnType("datetime(6)") + .HasComment("คำสั่งลงวันที่/หนังสืออนุมัติลงวันที่"); + + b.Property("Department") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หน่วยงานที่รับผิดชอบจัดการฝึกอบรม/ดูงาน"); + + b.Property("Duration") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("รวมระยะเวลาในการฝึกอบรม/ดูงาน"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .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") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ชื่อโครงการ/หลักสูตรการฝึกอบรม"); + + b.Property("NumberOrder") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("เลขที่คำสั่ง/เลขที่หนังสืออนุมัติ"); + + b.Property("Place") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สถานที่ฝึกอบรม/ดูงาน"); + + b.Property("ProfileTrainingId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันเริ่มต้นการฝึกอบรม/ดูงาน"); + + b.Property("Topic") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวข้อการฝึกอบรม/ดูงาน"); + + b.Property("Yearly") + .HasMaxLength(200) + .HasColumnType("int") + .HasComment("ปีที่อบรม (พ.ศ.)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileTrainingId"); + + b.ToTable("ProfileTrainingHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.TypeLeave", 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("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") + .HasColumnType("longtext") + .HasComment("ประเภทการลา"); + + b.HasKey("Id"); + + b.ToTable("TypeLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + 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("EndDate") + .HasColumnType("datetime(6)"); + + 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(200) + .HasColumnType("varchar(200)"); + + b.Property("ReliefDocId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)"); + + b.Property("Type") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("ReliefDocId"); + + b.ToTable("InsigniaPeriods"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", 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("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("OrganizationId") + .HasColumnType("char(36)"); + + b.Property("PeriodId") + .HasColumnType("char(36)"); + + b.Property("RequestNote") + .IsRequired() + .HasColumnType("text"); + + b.Property("RequestStatus") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationId"); + + b.HasIndex("PeriodId"); + + b.ToTable("InsigniaRequests"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequestProfile", 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("DocumentStatus") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("IsApprove") + .HasColumnType("tinyint(1)"); + + 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("MatchingConditions") + .HasColumnType("text"); + + b.Property("Note") + .HasColumnType("text"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("QualificationStatus") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.Property("RequestDate") + .HasColumnType("datetime(6)"); + + b.Property("RequestId") + .HasColumnType("char(36)"); + + b.Property("RequestInsigniaId") + .HasColumnType("char(36)"); + + b.Property("Salary") + .HasColumnType("double"); + + b.Property("Special") + .HasMaxLength(50) + .HasColumnType("varchar(50)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.HasIndex("RequestId"); + + b.HasIndex("RequestInsigniaId"); + + b.ToTable("InsigniaRequestProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.BloodGroup", 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(2) + .HasColumnType("varchar(2)") + .HasColumnOrder(1) + .HasComment("ชื่อหมู่โลหิต"); + + b.HasKey("Id"); + + b.ToTable("BloodGroups"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.Gender", 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(20) + .HasColumnType("varchar(20)") + .HasColumnOrder(1) + .HasComment("เพศ"); + + b.HasKey("Id"); + + b.ToTable("Genders"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Holiday", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Category") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("ประเภทของวันหยุดสำหรับ ทำงาน 5 วัน=`NORMAL`,ทำงาน 6 วัน=`6DAYS`"); + + 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("HolidayDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันหยุด"); + + b.Property("IsSpecial") + .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(250) + .HasColumnType("varchar(250)") + .HasColumnOrder(4) + .HasComment("ชื่อวันหยุด"); + + b.Property("OriginalDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันหยุด(Original)"); + + b.Property("Year") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ประจำปี"); + + b.HasKey("Id"); + + b.ToTable("Holidays"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Insignia", 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("InsigniaTypeId") + .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("Level") + .HasColumnType("int") + .HasColumnOrder(4) + .HasComment("ลำดับชั้นของเครื่องราชย์ เอาไว้ตรวจสอบเวลาขอว่าต้องได้ชั้นที่สูงกว่าที่เคยได้รับแล้วเท่านั้น"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อเครื่องราชย์"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(5) + .HasComment("หมายเหตุ"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(30) + .HasColumnType("varchar(30)") + .HasColumnOrder(2) + .HasComment("ชื่อย่อเครื่องราชย์"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaTypeId"); + + b.ToTable("Insignias"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.InsigniaType", 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("InsigniaTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationAgency", 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("OrganizationAgencys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationFax", 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("OrganizationFaxs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationGovernmentAgency", 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("OrganizationGovernmentAgencys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationLevel", 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("OrganizationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("OrganizationOrganizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AgencyCode") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(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("GovernmentCode") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ข้อมูลโครงสร้างหน่วยงานชื่อ รหัสส่วนราชการ"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(4) + .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(3) + .HasComment("ข้อมูลโครงสร้างหน่วยงานชื่อ ตัวย่อหน่วยงาน"); + + b.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(5) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("OrganizationShortNames"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationStatus", 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("OrganizationStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationTelExternal", 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("OrganizationTelExternals"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationTelInternal", 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("OrganizationTelInternals"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.OrganizationType", 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("OrganizationTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PhysicalStatus", 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("PhysicalStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Position", 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("ExecutiveName") + .IsRequired() + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .HasColumnOrder(3) + .HasComment("ชื่อตำแหน่งทางการบริหาร"); + + b.Property("ExecutiveSideId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(9) + .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(300) + .HasColumnType("varchar(300)") + .HasColumnOrder(1) + .HasComment("ชื่อตำแหน่ง"); + + b.Property("PathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionCategory") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(8) + .HasComment("ตำแหน่งสำหรับข้าราชการหรือลูกจ้าง officer/employee"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ExecutiveSideId"); + + b.HasIndex("PathSideId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionTypeId"); + + b.ToTable("Positions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeGroup", 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("PositionEmployeeGroups"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLevel", 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(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ชื่อระดับชั้นงานข้อมูลตำแหน่งของลูกจ้างกรุงเทพ"); + + b.Property("Order") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ลำดับ"); + + b.HasKey("Id"); + + b.ToTable("PositionEmployeeLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLine", 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("PositionEmployeeLines"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeePosition", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionEmployeePositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeePositionSide", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionEmployeePositionSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionEmployeeStatus", 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("PositionEmployeeStatuses"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionExecutive", 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("PositionExecutives"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionExecutiveSide", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionExecutiveSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionLevel", 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(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("Level") + .HasColumnType("int") + .HasColumnOrder(4) + .HasComment("ลำดับชั้นของระดับตำแหน่ง"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("Order") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ลำดับ"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(3) + .HasComment("ชื่อย่อระดับตำแหน่ง"); + + b.HasKey("Id"); + + b.ToTable("PositionLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionLine", 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("PositionLines"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionPath", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionPaths"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionPathSide", 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.Property("Note") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.ToTable("PositionPathSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionStatus", 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("PositionStatuss"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.PositionType", 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(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("Order") + .HasColumnType("int") + .HasColumnOrder(1) + .HasComment("ลำดับ"); + + b.HasKey("Id"); + + b.ToTable("PositionTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.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.Domain.Models.MetaData.Royal", 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(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อประเภทข้อมูลเหรียญตรา"); + + b.Property("ShortName") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("ชื่อย่อเหรียญตรา"); + + b.HasKey("Id"); + + b.ToTable("Royals"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.RoyalHierarchy", 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("RoyalHierarchys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.RoyalType", 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("RoyalTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.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.Domain.Models.Notifications.Inbox", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Body") + .IsRequired() + .HasColumnType("text") + .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("IsOpen") + .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("OpenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เปิดอ่าน"); + + b.Property("Payload") + .IsRequired() + .HasColumnType("text") + .HasComment("สิงที่แนบมาด้วย"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("ReceiverUserId") + .HasColumnType("char(36)") + .HasComment("รหัสผู้รับข้อความ"); + + b.Property("Subject") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวเรื่อง"); + + b.HasKey("Id"); + + b.ToTable("Inboxes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Notifications.MessageQueueEntity", 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("IsSend") + .HasColumnType("tinyint(1)") + .HasComment("ทำการส่งข้อความแล้วหรือยัง?"); + + b.Property("IsSendEmail") + .HasColumnType("tinyint(1)") + .HasComment("ส่งอีเมลล์หรือไม่?"); + + b.Property("IsSendInbox") + .HasColumnType("tinyint(1)") + .HasComment("ส่งไปที่กล่องข้อความหรือไม่?"); + + b.Property("IsSendNotification") + .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("MessageContent") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รายละเอียดข้อความ"); + + b.Property("MessagePayLoad") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สิ่งที่แนบมาด้วย"); + + b.Property("ReceiverEmailAddress") + .IsRequired() + .HasMaxLength(500) + .HasColumnType("varchar(500)") + .HasComment("อีเมล์ของผู้รับ"); + + b.Property("ReceiverUserId") + .HasColumnType("char(36)") + .HasComment("รหัสของผู้รับข้อความ"); + + b.Property("SenderSystem") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("ส่งจากระบบงาน"); + + b.Property("Subject") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("หัวเรื่อง"); + + b.HasKey("Id"); + + b.ToTable("MessageQueues"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Notifications.Notification", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Body") + .IsRequired() + .HasColumnType("text") + .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("IsOpen") + .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("OpenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เปิดอ่าน"); + + b.Property("Payload") + .IsRequired() + .HasColumnType("text") + .HasComment("สิงที่แนบมาด้วย"); + + b.Property("ReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับ"); + + b.Property("ReceiverUserId") + .HasColumnType("char(36)") + .HasComment("รหัสผู้รับข้อความ"); + + b.Property("Type") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภทการแจ้งเตือน"); + + b.HasKey("Id"); + + b.ToTable("Notifications"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Agency") + .HasColumnType("longtext"); + + b.Property("ConditionNote") + .HasColumnType("longtext"); + + 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("Department") + .HasColumnType("longtext"); + + b.Property("Government") + .HasColumnType("longtext"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsCondition") + .HasColumnType("tinyint(1)"); + + b.Property("IsDirector") + .HasColumnType("tinyint(1)"); + + 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("OrganizationAgencyId") + .HasColumnType("char(36)"); + + b.Property("OrganizationFaxId") + .HasColumnType("char(36)"); + + b.Property("OrganizationGovernmentAgencyId") + .HasColumnType("char(36)"); + + b.Property("OrganizationLevelId") + .HasColumnType("char(36)"); + + b.Property("OrganizationOrder") + .HasColumnType("longtext"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelExternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelInternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTypeId") + .HasColumnType("char(36)"); + + b.Property("OrganizationUserNote") + .HasColumnType("longtext"); + + b.Property("Pile") + .HasColumnType("longtext"); + + b.Property("PosNo") + .HasColumnType("longtext"); + + b.Property("PositionCondition") + .HasColumnType("longtext"); + + b.Property("PositionEmployeeLineId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeStatusId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterUserNote") + .HasColumnType("longtext"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Qualification") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationAgencyId"); + + b.HasIndex("OrganizationFaxId"); + + b.HasIndex("OrganizationGovernmentAgencyId"); + + b.HasIndex("OrganizationLevelId"); + + b.HasIndex("OrganizationOrganizationId"); + + b.HasIndex("OrganizationShortNameId"); + + b.HasIndex("OrganizationTelExternalId"); + + b.HasIndex("OrganizationTelInternalId"); + + b.HasIndex("OrganizationTypeId"); + + b.HasIndex("PositionEmployeeLineId"); + + b.HasIndex("PositionEmployeePositionId"); + + b.HasIndex("PositionEmployeeStatusId"); + + b.HasIndex("ProfileId"); + + b.ToTable("OrganizationEmployees"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeeLevel", 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("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("OrganizationEmployeeId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationEmployeeId"); + + b.HasIndex("PositionEmployeeLevelId"); + + b.ToTable("OrganizationPositionEmployeeLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeePositionSide", 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("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("OrganizationEmployeeId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationEmployeeId"); + + b.HasIndex("PositionEmployeePositionSideId"); + + b.ToTable("OrganizationPositionEmployeePositionSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.AvailablePositionLevelEntity", 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("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("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionMasterId"); + + b.ToTable("AvailablePositionLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Agency") + .HasColumnType("longtext") + .HasColumnOrder(14) + .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("Department") + .HasColumnType("longtext") + .HasColumnOrder(16) + .HasComment("ฝ่าย/ส่วน"); + + b.Property("Government") + .HasColumnType("longtext") + .HasColumnOrder(15) + .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("OrganizationAgencyId") + .HasColumnType("char(36)") + .HasColumnOrder(10) + .HasComment("OrganizationAgencyId"); + + b.Property("OrganizationFaxId") + .HasColumnType("char(36)"); + + b.Property("OrganizationGovernmentAgencyId") + .HasColumnType("char(36)") + .HasColumnOrder(11) + .HasComment("OrganizationGovernmentAgencyId"); + + b.Property("OrganizationLevelId") + .HasColumnType("char(36)"); + + b.Property("OrganizationOrder") + .HasColumnType("int") + .HasColumnOrder(12) + .HasComment("OrganizationOrder"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.Property("OrganizationStatusId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelExternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTelInternalId") + .HasColumnType("char(36)"); + + b.Property("OrganizationTypeId") + .HasColumnType("char(36)"); + + b.Property("OrganizationUserNote") + .HasColumnType("longtext") + .HasColumnOrder(13) + .HasComment("OrganizationUserNote"); + + b.Property("ParentId") + .HasColumnType("char(36)"); + + b.Property("Pile") + .HasColumnType("longtext") + .HasColumnOrder(17) + .HasComment("กอง"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationFaxId"); + + b.HasIndex("OrganizationLevelId"); + + b.HasIndex("OrganizationOrganizationId"); + + b.HasIndex("OrganizationShortNameId"); + + b.HasIndex("OrganizationStatusId"); + + b.HasIndex("OrganizationTelExternalId"); + + b.HasIndex("OrganizationTelInternalId"); + + b.HasIndex("OrganizationTypeId"); + + b.HasIndex("ParentId"); + + b.ToTable("Organizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", 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("IsDirector") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("Is Director"); + + 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("OrganizationId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionUserNote") + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("positionUserNote"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationId"); + + b.HasIndex("PositionMasterId"); + + b.HasIndex("PositionNumberId"); + + b.ToTable("OrganizationPositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationPublishHistoryEntity", 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(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("ObjectValue") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(2) + .HasComment("เก็บ Object ที่มีการอัพเดตในระบบ"); + + b.HasKey("Id"); + + b.ToTable("OrganizationPublishHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", 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("IsDirector") + .HasColumnType("tinyint(1)") + .HasColumnOrder(14) + .HasComment("IsDirector"); + + 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("PositionCondition") + .HasColumnType("longtext") + .HasColumnOrder(11) + .HasComment("PositionCondition"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)"); + + b.Property("PositionExecutiveSideObject") + .HasColumnType("longtext"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasColumnOrder(2) + .HasComment("PositionId"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterUserNote") + .HasColumnType("longtext") + .HasColumnOrder(13) + .HasComment("PositionMasterUserNote"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideObject") + .HasColumnType("longtext"); + + b.Property("PositionStatusId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("Qualification") + .HasColumnType("longtext") + .HasColumnOrder(15) + .HasComment("คุณวุฒิ"); + + b.HasKey("Id"); + + b.HasIndex("PositionExecutiveId"); + + b.HasIndex("PositionExecutiveSideId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionStatusId"); + + b.HasIndex("PositionTypeId"); + + b.ToTable("PositionMasters"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterHistoryEntity", 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("IsDirector") + .HasColumnType("tinyint(1)") + .HasColumnOrder(14) + .HasComment("IsDirector"); + + 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("Position") + .HasColumnType("longtext") + .HasColumnOrder(2) + .HasComment("Position"); + + b.Property("PositionCondition") + .HasColumnType("longtext") + .HasColumnOrder(11) + .HasComment("PositionCondition"); + + b.Property("PositionExecutive") + .HasColumnType("longtext") + .HasColumnOrder(5) + .HasComment("PositionExecutive"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("PositionExecutiveSide"); + + b.Property("PositionExecutiveSideObject") + .HasColumnType("longtext"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasColumnOrder(12) + .HasComment("PositionLevel"); + + b.Property("PositionLine") + .HasColumnType("longtext") + .HasColumnOrder(8) + .HasComment("PositionLine"); + + b.Property("PositionMasterEntityId") + .HasColumnType("char(36)"); + + b.Property("PositionMasterUserNote") + .HasColumnType("longtext") + .HasColumnOrder(13) + .HasComment("PositionMasterUserNote"); + + b.Property("PositionPath") + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("PositionPath"); + + b.Property("PositionPathSide") + .HasColumnType("longtext") + .HasColumnOrder(7) + .HasComment("PositionPathSide"); + + b.Property("PositionPathSideObject") + .HasColumnType("longtext"); + + b.Property("PositionStatus") + .HasColumnType("longtext") + .HasColumnOrder(10) + .HasComment("PositionStatus"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("PositionType"); + + b.Property("Qualification") + .HasColumnType("longtext") + .HasColumnOrder(15) + .HasComment("คุณวุฒิ"); + + b.HasKey("Id"); + + b.HasIndex("PositionMasterEntityId"); + + b.ToTable("PositionMasterHistoryEntity"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", 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("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") + .HasMaxLength(300) + .HasColumnType("varchar(300)") + .HasColumnOrder(2) + .HasComment("ชื่อ"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationShortNameId"); + + b.ToTable("PositionNumbers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.ProfilePosition", 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("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("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfilePositions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2", 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("GovernmentCode") + .HasColumnType("longtext"); + + b.Property("GovernmentCodeOld") + .HasColumnType("longtext"); + + 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("OrganizationOrganization") + .HasColumnType("longtext"); + + b.Property("OrganizationOrganizationId") + .HasColumnType("char(36)") + .HasComment("ชื่อหน่วยงาน"); + + b.Property("OrganizationOrganizationOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงานเดิม"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationShortName") + .HasColumnType("longtext"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการ"); + + b.Property("OrganizationShortNameOld") + .HasColumnType("longtext") + .HasComment("รหัสส่วนราชการเดิม"); + + b.Property("PositionExecutive") + .HasColumnType("longtext"); + + b.Property("PositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งทางการบริหาร"); + + b.Property("PositionExecutiveOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหารเดิม"); + + b.Property("PositionExecutiveSide") + .HasColumnType("longtext"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("ด้านทางบริหาร"); + + b.Property("PositionExecutiveSideOld") + .HasColumnType("longtext") + .HasComment("ด้านทางบริหารเดิม"); + + b.Property("PositionLevel") + .HasColumnType("longtext"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)") + .HasComment("ระดับตำแหน่ง"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ระดับตำแหน่งเดิม"); + + b.Property("PositionNum") + .HasColumnType("longtext"); + + b.Property("PositionNumId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งเลขที่"); + + b.Property("PositionNumOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเลขที่เดิม"); + + b.Property("PositionPath") + .HasColumnType("longtext"); + + b.Property("PositionPathId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งในสายงาน"); + + b.Property("PositionPathOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งในสายงานเดิม"); + + b.Property("PositionPathSide") + .HasColumnType("longtext"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("ด้าน/สาขา"); + + b.Property("PositionPathSideOld") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขาเดิม"); + + b.Property("PositionType") + .HasColumnType("longtext"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่งเดิม"); + + b.Property("ProfilePositionId") + .HasColumnType("char(36)") + .HasComment("สังกัดที่ถือครอง"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะการเปลี่ยนแปลง"); + + b.HasKey("Id"); + + b.ToTable("Report2s"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2DetailHistory", 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") + .HasColumnType("longtext"); + + 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.ToTable("Report2DetailHistories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2History", 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("Education") + .HasColumnType("longtext") + .HasComment("คุณวุฒิ"); + + b.Property("FullName") + .HasColumnType("longtext") + .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("NewGovernmentCode") + .HasColumnType("longtext"); + + b.Property("NewOrganizationOrganization") + .HasColumnType("longtext"); + + b.Property("NewOrganizationOrganizationId") + .HasColumnType("char(36)") + .HasComment("ชื่อหน่วยงาน กำหนดใหม่"); + + b.Property("NewOrganizationShortName") + .HasColumnType("longtext"); + + b.Property("NewOrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการ กำหนดใหม่"); + + b.Property("NewPositionExecutive") + .HasColumnType("longtext"); + + b.Property("NewPositionExecutiveId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งทางการบริหาร กำหนดใหม่"); + + b.Property("NewPositionExecutiveSide") + .HasColumnType("longtext"); + + b.Property("NewPositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("ด้านทางบริหาร กำหนดใหม่"); + + b.Property("NewPositionLevel") + .HasColumnType("longtext"); + + b.Property("NewPositionLevelId") + .HasColumnType("char(36)") + .HasComment("ระดับตำแหน่ง กำหนดใหม่"); + + b.Property("NewPositionNum") + .HasColumnType("longtext"); + + b.Property("NewPositionNumId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งเลขที่ กำหนดใหม่"); + + b.Property("NewPositionPath") + .HasColumnType("longtext"); + + b.Property("NewPositionPathId") + .HasColumnType("char(36)") + .HasComment("ตำแหน่งในสายงาน กำหนดใหม่"); + + b.Property("NewPositionPathSide") + .HasColumnType("longtext"); + + b.Property("NewPositionPathSideId") + .HasColumnType("char(36)") + .HasComment("ด้าน/สาขา กำหนดใหม่"); + + b.Property("NewPositionType") + .HasColumnType("longtext"); + + b.Property("NewPositionTypeId") + .HasColumnType("char(36)") + .HasComment("ประเภทตำแหน่ง กำหนดใหม่"); + + b.Property("OldGovernmentCode") + .HasColumnType("longtext"); + + b.Property("OldOrganizationOrganization") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน กำหนดเดิม"); + + b.Property("OldOrganizationShortName") + .HasColumnType("longtext") + .HasComment("รหัสส่วนราชการ กำหนดเดิม"); + + b.Property("OldPositionExecutive") + .HasColumnType("longtext") + .HasComment("ตำแหน่งทางการบริหาร กำหนดเดิม"); + + b.Property("OldPositionExecutiveSide") + .HasColumnType("longtext") + .HasComment("ด้านทางบริหาร กำหนดเดิม"); + + b.Property("OldPositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับตำแหน่ง กำหนดเดิม"); + + b.Property("OldPositionNum") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเลขที่ กำหนดเดิม"); + + b.Property("OldPositionPath") + .HasColumnType("longtext") + .HasComment("ตำแหน่งในสายงาน กำหนดเดิม"); + + b.Property("OldPositionPathSide") + .HasColumnType("longtext") + .HasComment("ด้าน/สาขา กำหนดเดิม"); + + b.Property("OldPositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง กำหนดเดิม"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("ProfilePositionId") + .HasColumnType("char(36)") + .HasComment("สังกัดที่ถือครอง"); + + b.Property("Report2DetailHistoryId") + .HasColumnType("char(36)"); + + b.Property("Salary") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("SalaryMonth") + .HasColumnType("double") + .HasComment("เงินตอบแทนรายเดือน"); + + b.Property("SalaryPosition") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะการเปลี่ยนแปลง"); + + b.HasKey("Id"); + + b.HasIndex("Report2DetailHistoryId"); + + b.ToTable("Report2Histories"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.Placement", 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("EndDate") + .HasColumnType("datetime(6)") + .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() + .HasColumnType("longtext") + .HasComment("รอบการสอบ"); + + b.Property("Number") + .HasMaxLength(10) + .HasColumnType("int") + .HasComment("จำนวนผู้สอบได้"); + + b.Property("PlacementTypeId") + .HasColumnType("char(36)"); + + b.Property("Round") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ครั้งที่"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มบัญชีบัญชี"); + + b.Property("Year") + .HasMaxLength(5) + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.HasIndex("PlacementTypeId"); + + b.ToTable("Placements"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CommandTypeId") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Firstname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + 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("Lastname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionDate") + .HasColumnType("datetime(6)") + .HasComment("ดำรงตำแหน่งในระดับปัจจุบันเมื่อ"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับย้ายราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("CommandTypeId"); + + b.HasIndex("GenderId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementAppointments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointmentDoc", 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("PlacementAppointmentId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementAppointmentId"); + + b.ToTable("PlacementAppointmentDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementCertificate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CertificateNo") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่ใบอนุญาต"); + + b.Property("CertificateType") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .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("ExpireDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่หมดอายุ"); + + b.Property("IssueDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกใบอนุญาต"); + + b.Property("Issuer") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .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("PlacementProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PlacementProfileId"); + + b.ToTable("PlacementCertificates"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementEducation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Country") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .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("Degree") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("วุฒิการศึกษา"); + + b.Property("Duration") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ระยะเวลา"); + + b.Property("DurationYear") + .HasColumnType("int") + .HasComment("ระยะเวลาหลักสูตร"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("EndDate") + .HasColumnType("datetime(6)") + .HasComment("ถึง"); + + b.Property("Field") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("สาขาวิชา/ทาง"); + + b.Property("FinishDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สำเร็จการศึกษา"); + + b.Property("FundName") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ทุน"); + + b.Property("Gpa") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เกรดเฉลี่ย"); + + b.Property("Institute") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("สถานศึกษา"); + + b.Property("IsDate") + .HasColumnType("tinyint(1)") + .HasComment("ประเภทช่วงเวลาการศึกษา"); + + b.Property("IsEducation") + .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("Other") + .HasMaxLength(1000) + .HasColumnType("varchar(1000)") + .HasComment("ข้อมูลการติดต่อ"); + + b.Property("PlacementProfileId") + .HasColumnType("char(36)"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("ตั้งแต่"); + + b.HasKey("Id"); + + b.HasIndex("EducationLevelId"); + + b.HasIndex("PlacementProfileId"); + + b.HasIndex("PositionPathId"); + + b.ToTable("PlacementEducations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementIsProperty", 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)") + .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") + .HasComment("ชื่อคุณสมบัติ"); + + b.HasKey("Id"); + + b.ToTable("PlacementIsProperties"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementOfficer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ช่วยราชการไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("PlacementOfficers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + 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("Draft") + .HasColumnType("tinyint(1)") + .HasComment("ข้อมูลตำแหน่ง Draft"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("ExamNumber") + .HasColumnType("int") + .HasComment("ลำดับที่สอบได้"); + + b.Property("ExamRound") + .HasColumnType("int") + .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") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + b.Property("IsOfficer") + .HasColumnType("tinyint(1)") + .HasComment("ข้าราชการฯ กทม."); + + b.Property("IsProperty") + .HasColumnType("longtext") + .HasComment("การคัดกรองคุณสมบัติ"); + + b.Property("IsRelief") + .HasColumnType("tinyint(1)") + .HasComment("ผ่อนผัน"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .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("Lastname") + .HasColumnType("longtext") + .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(200) + .HasColumnType("varchar(200)") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .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(200) + .HasColumnType("varchar(200)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("Pass") + .HasColumnType("longtext") + .HasComment("ผลสมัครสอบ"); + + b.Property("PlacementId") + .HasColumnType("char(36)"); + + b.Property("PlacementStatus") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะการบรรจุ"); + + b.Property("PointA") + .HasColumnType("double") + .HasComment("คะแนนภาค ก"); + + b.Property("PointB") + .HasColumnType("double") + .HasComment("คะแนนภาค ข"); + + b.Property("PointC") + .HasColumnType("double") + .HasComment("คะแนนภาค ค"); + + b.Property("PointTotalA") + .HasColumnType("double") + .HasComment("คะแนนเต็มภาค ก"); + + b.Property("PointTotalB") + .HasColumnType("double") + .HasComment("คะแนนเต็มภาค ข"); + + b.Property("PointTotalC") + .HasColumnType("double") + .HasComment("คะแนนเต็มภาค ค"); + + b.Property("PositionCandidateId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("เชื้อชาติ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + 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("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลสละสิทธิ์"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReliefDocId") + .HasColumnType("char(36)"); + + b.Property("ReliefReason") + .HasColumnType("longtext") + .HasComment("เหตุผลผ่อนผัน"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("ReportingDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่รายงานตัว"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("Telephone") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("โทรศัพท์"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("GenderId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PlacementId"); + + b.HasIndex("PositionCandidateId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReliefDocId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Firstname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + 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("Lastname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับโอนราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("GenderId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementReceives"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceiveDoc", 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("PlacementReceiveId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementReceiveId"); + + b.ToTable("PlacementReceiveDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Firstname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + 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("Lastname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ย้ายราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("GenderId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementRelocations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocationDoc", 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("PlacementRelocationId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementRelocationId"); + + b.ToTable("PlacementRelocationDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRepatriation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ส่งตัวกลับไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("PlacementRepatriations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ขอโอนไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("PlacementTransfers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransferDoc", 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("PlacementTransferId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementTransferId"); + + b.ToTable("PlacementTransferDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementType", 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)") + .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") + .HasComment("ชื่อประเภทบรรจุ"); + + b.HasKey("Id"); + + b.ToTable("PlacementTypes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDeceased", 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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่เสียชีวิต"); + + b.Property("DocumentId") + .HasColumnType("char(36)"); + + 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("Location") + .HasColumnType("longtext") + .HasComment("สถานที่ออกใบมรณบัตร"); + + b.Property("Number") + .HasColumnType("longtext") + .HasComment("เลขที่ใบมรณบัตร"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลการเสียชีวิต"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementDeceaseds"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDischarge", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ปลดออกไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementDischarges"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementExpulsion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ไล่ออกไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementExpulsions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOther", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("CommandTypeId") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่อื่นๆไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("CommandTypeId"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementOthers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOut", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ให้ออกไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementOuts"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", 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("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("Round") + .HasColumnType("int") + .HasComment("ครั้งที่"); + + b.Property("Type") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("TypeReport") + .HasColumnType("longtext") + .HasComment("ประเภทคำสั่ง"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.ToTable("RetirementPeriods"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriodHistory", 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("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("ProfileFile") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รายชื่อเกษียญ"); + + b.Property("RetirementPeriodId") + .HasColumnType("char(36)"); + + b.Property("Round") + .HasColumnType("int") + .HasComment("ครั้งที่"); + + b.Property("Total") + .HasColumnType("int") + .HasComment("จำนวนคน"); + + b.Property("Type") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("TypeReport") + .HasColumnType("longtext") + .HasComment("ประเภทคำสั่ง"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.HasIndex("RetirementPeriodId"); + + b.ToTable("RetirementPeriodHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementProfile", 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("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("Order") + .HasColumnType("int") + .HasComment("ลำดับที่"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Remove") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ลบออกจากเกษียญ"); + + b.Property("RetirementPeriodId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.HasIndex("RetirementPeriodId"); + + b.ToTable("RetirementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResign", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("ActiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ขอออกราชการ"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("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("Location") + .HasColumnType("longtext") + .HasComment("สถานที่ยื่นขอลาออกราชการ"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ลาออกจากราชการ"); + + b.Property("SendDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยื่นขอออกราชการ"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะลาออก"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementResigns"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandStatus", "CommandStatus") + .WithMany() + .HasForeignKey("CommandStatusId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandType", "CommandType") + .WithMany() + .HasForeignKey("CommandTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.Placement", "Placement") + .WithMany() + .HasForeignKey("PlacementId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CommandStatus"); + + b.Navigation("CommandType"); + + b.Navigation("Placement"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDeployment", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.Command", "Command") + .WithMany("Deployments") + .HasForeignKey("CommandId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Command"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandDocument", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.Command", "Command") + .WithMany("Documents") + .HasForeignKey("CommandId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Command"); + + b.Navigation("Document"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.CommandReceiver", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.Command", "Command") + .WithMany("Receivers") + .HasForeignKey("CommandId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Command"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.LimitTypeLeave", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.LimitLeave", "LimitLeave") + .WithMany("LimitTypeLeaves") + .HasForeignKey("LimitLeaveId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany("LimitTypeLeaves") + .HasForeignKey("TypeLeaveId"); + + b.Navigation("LimitLeave"); + + b.Navigation("TypeLeave"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.Profile", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Avatar") + .WithMany() + .HasForeignKey("AvatarId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.LimitLeave", "LimitLeave") + .WithMany("Profiles") + .HasForeignKey("LimitLeaveId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PosNo") + .WithMany() + .HasForeignKey("PosNoId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "Position") + .WithMany() + .HasForeignKey("PositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.Navigation("Avatar"); + + b.Navigation("Gender"); + + b.Navigation("LimitLeave"); + + b.Navigation("PosNo"); + + b.Navigation("Position"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbility", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Abilitys") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbilityHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileAbility", "ProfileAbility") + .WithMany("ProfileAbilityHistorys") + .HasForeignKey("ProfileAbilityId"); + + b.Navigation("ProfileAbility"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAddressHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("AddressHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessment", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Assessments") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessmentHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileAssessment", "ProfileAssessment") + .WithMany("ProfileAssessmentHistorys") + .HasForeignKey("ProfileAssessmentId"); + + b.Navigation("ProfileAssessment"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAvatarHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "AvatarFile") + .WithMany() + .HasForeignKey("AvatarFileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("AvatarHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("AvatarFile"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificate", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Certificates") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificateHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileCertificate", "ProfileCertificate") + .WithMany("ProfileCertificateHistorys") + .HasForeignKey("ProfileCertificateId"); + + b.Navigation("ProfileCertificate"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeName", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("ChangeNames") + .HasForeignKey("ProfileId"); + + b.Navigation("Document"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeNameHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileChangeName", "ProfileChangeName") + .WithMany("ProfileChangeNameHistorys") + .HasForeignKey("ProfileChangeNameId"); + + b.Navigation("Document"); + + b.Navigation("ProfileChangeName"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildren", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Childrens") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildrenHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileChildren", null) + .WithMany("ProfileChildrenHistorys") + .HasForeignKey("ProfileChildrenId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", null) + .WithMany("Childrens") + .HasForeignKey("ProfileFamilyHistoryId"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCoupleHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("CoupleHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCurrentAddressHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("CurrentAddressHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDiscipline", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Disciplines") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDisciplineHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileDiscipline", "ProfileDiscipline") + .WithMany("ProfileDisciplineHistorys") + .HasForeignKey("ProfileDisciplineId"); + + b.Navigation("ProfileDiscipline"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDuty", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Dutys") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDutyHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileDuty", "ProfileDuty") + .WithMany("ProfileDutyHistorys") + .HasForeignKey("ProfileDutyId"); + + b.Navigation("ProfileDuty"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducation", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Educations") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducationHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileEducation", "ProfileEducation") + .WithMany("ProfileEducationHistorys") + .HasForeignKey("ProfileEducationId"); + + b.Navigation("ProfileEducation"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("FamilyHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFatherHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("FatherHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileGovernmentHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("GovernmentHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("ProfileHistory") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonor", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Honors") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonorHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileHonor", "ProfileHonor") + .WithMany("ProfileHonorHistorys") + .HasForeignKey("ProfileHonorId"); + + b.Navigation("ProfileHonor"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsignia", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Insignia", "Insignia") + .WithMany() + .HasForeignKey("InsigniaId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Insignias") + .HasForeignKey("ProfileId"); + + b.Navigation("Insignia"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsigniaHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileInsignia", "ProfileInsignia") + .WithMany("ProfileInsigniaHistorys") + .HasForeignKey("ProfileInsigniaId"); + + b.Navigation("ProfileInsignia"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeave", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Leaves") + .HasForeignKey("ProfileId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany() + .HasForeignKey("TypeLeaveId"); + + b.Navigation("Profile"); + + b.Navigation("TypeLeave"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeaveHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileLeave", "ProfileLeave") + .WithMany("ProfileLeaveHistorys") + .HasForeignKey("ProfileLeaveId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany() + .HasForeignKey("TypeLeaveId"); + + b.Navigation("ProfileLeave"); + + b.Navigation("TypeLeave"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileMotherHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("MotherHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaid", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Nopaids") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaidHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileNopaid", "ProfileNopaid") + .WithMany("ProfileNopaidHistorys") + .HasForeignKey("ProfileNopaidId"); + + b.Navigation("ProfileNopaid"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOther", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Others") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOtherHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileOther", "ProfileOther") + .WithMany("ProfileOtherHistorys") + .HasForeignKey("ProfileOtherId"); + + b.Navigation("ProfileOther"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfilePaper", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Papers") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileRegistrationAddressHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("RegistrationAddressHistory") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalary", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Salaries") + .HasForeignKey("ProfileId"); + + b.Navigation("PositionLevel"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileSalary", "ProfileSalary") + .WithMany("ProfileSalaryHistorys") + .HasForeignKey("ProfileSalaryId"); + + b.Navigation("ProfileSalary"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalaryPosition", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Position", "Position") + .WithMany() + .HasForeignKey("PositionId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Position"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTraining", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Trainings") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTrainingHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileTraining", "ProfileTraining") + .WithMany("ProfileTrainingHistorys") + .HasForeignKey("ProfileTrainingId"); + + b.Navigation("ProfileTraining"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "ReliefDoc") + .WithMany() + .HasForeignKey("ReliefDocId"); + + b.Navigation("ReliefDoc"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "Organization") + .WithMany() + .HasForeignKey("OrganizationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", "Period") + .WithMany("InsigniaRequests") + .HasForeignKey("PeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Organization"); + + b.Navigation("Period"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequestProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", "Request") + .WithMany("RequestProfiles") + .HasForeignKey("RequestId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Insignia", "RequestInsignia") + .WithMany() + .HasForeignKey("RequestInsigniaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + + b.Navigation("Request"); + + b.Navigation("RequestInsignia"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.District", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Insignia", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.InsigniaType", "InsigniaType") + .WithMany() + .HasForeignKey("InsigniaTypeId"); + + b.Navigation("InsigniaType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Position", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutiveSide", "ExecutiveSide") + .WithMany() + .HasForeignKey("ExecutiveSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PathSide") + .WithMany() + .HasForeignKey("PathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.Navigation("ExecutiveSide"); + + b.Navigation("PathSide"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.SubDistrict", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "OrganizationAgency") + .WithMany() + .HasForeignKey("OrganizationAgencyId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationFax", "OrganizationFax") + .WithMany() + .HasForeignKey("OrganizationFaxId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "OrganizationGovernmentAgency") + .WithMany() + .HasForeignKey("OrganizationGovernmentAgencyId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationLevel", "OrganizationLevel") + .WithMany() + .HasForeignKey("OrganizationLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "OrganizationOrganization") + .WithMany() + .HasForeignKey("OrganizationOrganizationId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", "OrganizationShortName") + .WithMany() + .HasForeignKey("OrganizationShortNameId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelExternal", "OrganizationTelExternal") + .WithMany() + .HasForeignKey("OrganizationTelExternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelInternal", "OrganizationTelInternal") + .WithMany() + .HasForeignKey("OrganizationTelInternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationType", "OrganizationType") + .WithMany() + .HasForeignKey("OrganizationTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLine", "PositionEmployeeLine") + .WithMany() + .HasForeignKey("PositionEmployeeLineId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeePosition", "PositionEmployeePosition") + .WithMany() + .HasForeignKey("PositionEmployeePositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeStatus", "PositionEmployeeStatus") + .WithMany() + .HasForeignKey("PositionEmployeeStatusId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId"); + + b.Navigation("OrganizationAgency"); + + b.Navigation("OrganizationFax"); + + b.Navigation("OrganizationGovernmentAgency"); + + b.Navigation("OrganizationLevel"); + + b.Navigation("OrganizationOrganization"); + + b.Navigation("OrganizationShortName"); + + b.Navigation("OrganizationTelExternal"); + + b.Navigation("OrganizationTelInternal"); + + b.Navigation("OrganizationType"); + + b.Navigation("PositionEmployeeLine"); + + b.Navigation("PositionEmployeePosition"); + + b.Navigation("PositionEmployeeStatus"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeeLevel", b => + { + b.HasOne("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", "OrganizationEmployee") + .WithMany("OrganizationPositionEmployeeLevels") + .HasForeignKey("OrganizationEmployeeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLevel", "PositionEmployeeLevel") + .WithMany() + .HasForeignKey("PositionEmployeeLevelId"); + + b.Navigation("OrganizationEmployee"); + + b.Navigation("PositionEmployeeLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrganizationPositionEmployeePositionSide", b => + { + b.HasOne("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", "OrganizationEmployee") + .WithMany("OrganizationPositionEmployeePositionSides") + .HasForeignKey("OrganizationEmployeeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeePositionSide", "PositionEmployeePositionSide") + .WithMany() + .HasForeignKey("PositionEmployeePositionSideId"); + + b.Navigation("OrganizationEmployee"); + + b.Navigation("PositionEmployeePositionSide"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.AvailablePositionLevelEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", "PositionMaster") + .WithMany() + .HasForeignKey("PositionMasterId"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionMaster"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationFax", "OrganizationFax") + .WithMany() + .HasForeignKey("OrganizationFaxId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationLevel", "OrganizationLevel") + .WithMany() + .HasForeignKey("OrganizationLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "OrganizationOrganization") + .WithMany() + .HasForeignKey("OrganizationOrganizationId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", "OrganizationShortName") + .WithMany() + .HasForeignKey("OrganizationShortNameId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationStatus", "OrganizationStatus") + .WithMany() + .HasForeignKey("OrganizationStatusId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelExternal", "OrganizationTelExternal") + .WithMany() + .HasForeignKey("OrganizationTelExternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationTelInternal", "OrganizationTelInternal") + .WithMany() + .HasForeignKey("OrganizationTelInternalId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationType", "OrganizationType") + .WithMany() + .HasForeignKey("OrganizationTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "Parent") + .WithMany("Organizations") + .HasForeignKey("ParentId"); + + b.Navigation("OrganizationFax"); + + b.Navigation("OrganizationLevel"); + + b.Navigation("OrganizationOrganization"); + + b.Navigation("OrganizationShortName"); + + b.Navigation("OrganizationStatus"); + + b.Navigation("OrganizationTelExternal"); + + b.Navigation("OrganizationTelInternal"); + + b.Navigation("OrganizationType"); + + b.Navigation("Parent"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "Organization") + .WithMany() + .HasForeignKey("OrganizationId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", "PositionMaster") + .WithMany() + .HasForeignKey("PositionMasterId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.Navigation("Organization"); + + b.Navigation("PositionMaster"); + + b.Navigation("PositionNumber"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutive", "PositionExecutive") + .WithMany() + .HasForeignKey("PositionExecutiveId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutiveSide", "PositionExecutiveSide") + .WithMany() + .HasForeignKey("PositionExecutiveSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionStatus", "PositionStatus") + .WithMany() + .HasForeignKey("PositionStatusId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.Navigation("PositionExecutive"); + + b.Navigation("PositionExecutiveSide"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionStatus"); + + b.Navigation("PositionType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterHistoryEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", "PositionMasterEntity") + .WithMany("PositionMasterHistorys") + .HasForeignKey("PositionMasterEntityId"); + + b.Navigation("PositionMasterEntity"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationShortName", "OrganizationShortName") + .WithMany() + .HasForeignKey("OrganizationShortNameId"); + + b.Navigation("OrganizationShortName"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.ProfilePosition", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.Report2.Report2History", b => + { + b.HasOne("BMA.EHR.Domain.Models.Organizations.Report2.Report2DetailHistory", "Report2DetailHistory") + .WithMany() + .HasForeignKey("Report2DetailHistoryId"); + + b.Navigation("Report2DetailHistory"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.Placement", b => + { + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementType", "PlacementType") + .WithMany() + .HasForeignKey("PlacementTypeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PlacementType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointment", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandType", "CommandType") + .WithMany() + .HasForeignKey("CommandTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("CommandType"); + + b.Navigation("Gender"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("Relationship"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointmentDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementAppointment", "PlacementAppointment") + .WithMany("PlacementAppointmentDocs") + .HasForeignKey("PlacementAppointmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementAppointment"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementCertificate", b => + { + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementProfile", "PlacementProfile") + .WithMany("PlacementCertificates") + .HasForeignKey("PlacementProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PlacementProfile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementEducation", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementProfile", "PlacementProfile") + .WithMany("PlacementEducations") + .HasForeignKey("PlacementProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.Navigation("EducationLevel"); + + b.Navigation("PlacementProfile"); + + b.Navigation("PositionPath"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementOfficer", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.Placement.Placement", "Placement") + .WithMany("PlacementProfiles") + .HasForeignKey("PlacementId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionCandidate") + .WithMany() + .HasForeignKey("PositionCandidateId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "ReliefDoc") + .WithMany() + .HasForeignKey("ReliefDocId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("Gender"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("Placement"); + + b.Navigation("PositionCandidate"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + + b.Navigation("ReliefDoc"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("Gender"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("Relationship"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceiveDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementReceive", "PlacementReceive") + .WithMany("PlacementReceiveDocs") + .HasForeignKey("PlacementReceiveId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementReceive"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocation", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("Gender"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("Relationship"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocationDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementRelocation", "PlacementRelocation") + .WithMany("PlacementRelocationDocs") + .HasForeignKey("PlacementRelocationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementRelocation"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRepatriation", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransferDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementTransfer", "PlacementTransfer") + .WithMany("PlacementTransferDocs") + .HasForeignKey("PlacementTransferId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementTransfer"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDeceased", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDischarge", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementExpulsion", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOther", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandType", "CommandType") + .WithMany() + .HasForeignKey("CommandTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CommandType"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOut", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriodHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") + .WithMany("RetirementPeriodHistorys") + .HasForeignKey("RetirementPeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RetirementPeriod"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") + .WithMany("RetirementProfiles") + .HasForeignKey("RetirementPeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + + b.Navigation("RetirementPeriod"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResign", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Commands.Core.Command", b => + { + b.Navigation("Deployments"); + + b.Navigation("Documents"); + + b.Navigation("Receivers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.LimitLeave", b => + { + b.Navigation("LimitTypeLeaves"); + + b.Navigation("Profiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.Profile", b => + { + b.Navigation("Abilitys"); + + b.Navigation("AddressHistory"); + + b.Navigation("Assessments"); + + b.Navigation("AvatarHistory"); + + b.Navigation("Certificates"); + + b.Navigation("ChangeNames"); + + b.Navigation("Childrens"); + + b.Navigation("CoupleHistory"); + + b.Navigation("CurrentAddressHistory"); + + b.Navigation("Disciplines"); + + b.Navigation("Dutys"); + + b.Navigation("Educations"); + + b.Navigation("FamilyHistory"); + + b.Navigation("FatherHistory"); + + b.Navigation("GovernmentHistory"); + + b.Navigation("Honors"); + + b.Navigation("Insignias"); + + b.Navigation("Leaves"); + + b.Navigation("MotherHistory"); + + b.Navigation("Nopaids"); + + b.Navigation("Others"); + + b.Navigation("Papers"); + + b.Navigation("ProfileHistory"); + + b.Navigation("RegistrationAddressHistory"); + + b.Navigation("Salaries"); + + b.Navigation("Trainings"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAbility", b => + { + b.Navigation("ProfileAbilityHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileAssessment", b => + { + b.Navigation("ProfileAssessmentHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileCertificate", b => + { + b.Navigation("ProfileCertificateHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChangeName", b => + { + b.Navigation("ProfileChangeNameHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileChildren", b => + { + b.Navigation("ProfileChildrenHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDiscipline", b => + { + b.Navigation("ProfileDisciplineHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileDuty", b => + { + b.Navigation("ProfileDutyHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEducation", b => + { + b.Navigation("ProfileEducationHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileFamilyHistory", b => + { + b.Navigation("Childrens"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileHonor", b => + { + b.Navigation("ProfileHonorHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileInsignia", b => + { + b.Navigation("ProfileInsigniaHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileLeave", b => + { + b.Navigation("ProfileLeaveHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileNopaid", b => + { + b.Navigation("ProfileNopaidHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileOther", b => + { + b.Navigation("ProfileOtherHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileSalary", b => + { + b.Navigation("ProfileSalaryHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileTraining", b => + { + b.Navigation("ProfileTrainingHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.TypeLeave", b => + { + b.Navigation("LimitTypeLeaves"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", b => + { + b.Navigation("InsigniaRequests"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequest", b => + { + b.Navigation("RequestProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.MetaData.Province", b => + { + b.Navigation("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", b => + { + b.Navigation("OrganizationPositionEmployeeLevels"); + + b.Navigation("OrganizationPositionEmployeePositionSides"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", b => + { + b.Navigation("Organizations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Organizations.PositionMasterEntity", b => + { + b.Navigation("PositionMasterHistorys"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.Placement", b => + { + b.Navigation("PlacementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointment", b => + { + b.Navigation("PlacementAppointmentDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => + { + b.Navigation("PlacementCertificates"); + + b.Navigation("PlacementEducations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.Navigation("PlacementReceiveDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocation", b => + { + b.Navigation("PlacementRelocationDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.Navigation("PlacementTransferDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", b => + { + b.Navigation("RetirementPeriodHistorys"); + + b.Navigation("RetirementProfiles"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.cs b/BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.cs new file mode 100644 index 00000000..8f6203e5 --- /dev/null +++ b/BMA.EHR.Infrastructure/Migrations/20230810184658_add table PlacementAppointment.cs @@ -0,0 +1,840 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Infrastructure.Migrations +{ + /// + public partial class addtablePlacementAppointment : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "PlacementAppointments", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + CitizenId = table.Column(type: "varchar(20)", maxLength: 20, nullable: false, comment: "เลขประจำตัวประชาชน") + .Annotation("MySql:CharSet", "utf8mb4"), + PrefixId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Firstname = table.Column(type: "longtext", nullable: false, comment: "ชื่อ") + .Annotation("MySql:CharSet", "utf8mb4"), + Lastname = table.Column(type: "longtext", nullable: false, comment: "นามสกุล") + .Annotation("MySql:CharSet", "utf8mb4"), + DateOfBirth = table.Column(type: "datetime(6)", maxLength: 40, nullable: false, comment: "วันเกิด"), + GenderId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + Nationality = table.Column(type: "varchar(100)", maxLength: 100, nullable: true, comment: "สัญชาติ") + .Annotation("MySql:CharSet", "utf8mb4"), + Race = table.Column(type: "varchar(100)", maxLength: 100, nullable: true, comment: "เชื้อชาติ") + .Annotation("MySql:CharSet", "utf8mb4"), + ReligionId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + BloodGroupId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RelationshipId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + TelephoneNumber = table.Column(type: "varchar(50)", maxLength: 50, nullable: true, comment: "เบอร์โทร") + .Annotation("MySql:CharSet", "utf8mb4"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RecruitDate = table.Column(type: "datetime(6)", nullable: true, comment: "วันที่บรรจุ"), + PositionNumberId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionPathId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionPathSideId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionTypeId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionLineId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionLevelId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผลที่รับย้ายราชการ") + .Annotation("MySql:CharSet", "utf8mb4"), + EducationOld = table.Column(type: "longtext", nullable: true, comment: "วุฒิ/สาขาเดิม") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัดเดิม") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน"), + CommandTypeId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionDate = table.Column(type: "datetime(6)", nullable: true, comment: "ดำรงตำแหน่งในระดับปัจจุบันเมื่อ") + }, + constraints: table => + { + table.PrimaryKey("PK_PlacementAppointments", x => x.Id); + table.ForeignKey( + name: "FK_PlacementAppointments_BloodGroups_BloodGroupId", + column: x => x.BloodGroupId, + principalTable: "BloodGroups", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_CommandTypes_CommandTypeId", + column: x => x.CommandTypeId, + principalTable: "CommandTypes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_Genders_GenderId", + column: x => x.GenderId, + principalTable: "Genders", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_OrganizationPositions_OrganizationPosi~", + column: x => x.OrganizationPositionId, + principalTable: "OrganizationPositions", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_PositionLevels_PositionLevelId", + column: x => x.PositionLevelId, + principalTable: "PositionLevels", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_PositionLines_PositionLineId", + column: x => x.PositionLineId, + principalTable: "PositionLines", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_PositionNumbers_PositionNumberId", + column: x => x.PositionNumberId, + principalTable: "PositionNumbers", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_PositionPathSides_PositionPathSideId", + column: x => x.PositionPathSideId, + principalTable: "PositionPathSides", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_PositionPaths_PositionPathId", + column: x => x.PositionPathId, + principalTable: "PositionPaths", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_PositionTypes_PositionTypeId", + column: x => x.PositionTypeId, + principalTable: "PositionTypes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_Prefixes_PrefixId", + column: x => x.PrefixId, + principalTable: "Prefixes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PlacementAppointments_Relationships_RelationshipId", + column: x => x.RelationshipId, + principalTable: "Relationships", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementAppointments_Religions_ReligionId", + column: x => x.ReligionId, + principalTable: "Religions", + principalColumn: "Id"); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "PlacementOfficers", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + ProfileId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Organization = table.Column(type: "longtext", nullable: true, comment: "หน่วยงานที่ช่วยราชการไป") + .Annotation("MySql:CharSet", "utf8mb4"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผล") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"), + Date = table.Column(type: "datetime(6)", nullable: true, comment: "ตั้งแต่วันที่"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน") + }, + constraints: table => + { + table.PrimaryKey("PK_PlacementOfficers", x => x.Id); + table.ForeignKey( + name: "FK_PlacementOfficers_Profiles_ProfileId", + column: x => x.ProfileId, + principalTable: "Profiles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "PlacementRelocations", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + CitizenId = table.Column(type: "varchar(20)", maxLength: 20, nullable: false, comment: "เลขประจำตัวประชาชน") + .Annotation("MySql:CharSet", "utf8mb4"), + PrefixId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Firstname = table.Column(type: "longtext", nullable: false, comment: "ชื่อ") + .Annotation("MySql:CharSet", "utf8mb4"), + Lastname = table.Column(type: "longtext", nullable: false, comment: "นามสกุล") + .Annotation("MySql:CharSet", "utf8mb4"), + DateOfBirth = table.Column(type: "datetime(6)", maxLength: 40, nullable: false, comment: "วันเกิด"), + GenderId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + Nationality = table.Column(type: "varchar(100)", maxLength: 100, nullable: true, comment: "สัญชาติ") + .Annotation("MySql:CharSet", "utf8mb4"), + Race = table.Column(type: "varchar(100)", maxLength: 100, nullable: true, comment: "เชื้อชาติ") + .Annotation("MySql:CharSet", "utf8mb4"), + ReligionId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + BloodGroupId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RelationshipId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + TelephoneNumber = table.Column(type: "varchar(50)", maxLength: 50, nullable: true, comment: "เบอร์โทร") + .Annotation("MySql:CharSet", "utf8mb4"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + RecruitDate = table.Column(type: "datetime(6)", nullable: true, comment: "วันที่บรรจุ"), + PositionNumberId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionPathId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionPathSideId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionTypeId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionLineId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + PositionLevelId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผลที่ย้ายราชการ") + .Annotation("MySql:CharSet", "utf8mb4"), + EducationOld = table.Column(type: "longtext", nullable: true, comment: "วุฒิ/สาขาเดิม") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัดเดิม") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน") + }, + constraints: table => + { + table.PrimaryKey("PK_PlacementRelocations", x => x.Id); + table.ForeignKey( + name: "FK_PlacementRelocations_BloodGroups_BloodGroupId", + column: x => x.BloodGroupId, + principalTable: "BloodGroups", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_Genders_GenderId", + column: x => x.GenderId, + principalTable: "Genders", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_OrganizationPositions_OrganizationPosit~", + column: x => x.OrganizationPositionId, + principalTable: "OrganizationPositions", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_PositionLevels_PositionLevelId", + column: x => x.PositionLevelId, + principalTable: "PositionLevels", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_PositionLines_PositionLineId", + column: x => x.PositionLineId, + principalTable: "PositionLines", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_PositionNumbers_PositionNumberId", + column: x => x.PositionNumberId, + principalTable: "PositionNumbers", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_PositionPathSides_PositionPathSideId", + column: x => x.PositionPathSideId, + principalTable: "PositionPathSides", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_PositionPaths_PositionPathId", + column: x => x.PositionPathId, + principalTable: "PositionPaths", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_PositionTypes_PositionTypeId", + column: x => x.PositionTypeId, + principalTable: "PositionTypes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_Prefixes_PrefixId", + column: x => x.PrefixId, + principalTable: "Prefixes", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PlacementRelocations_Relationships_RelationshipId", + column: x => x.RelationshipId, + principalTable: "Relationships", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PlacementRelocations_Religions_ReligionId", + column: x => x.ReligionId, + principalTable: "Religions", + principalColumn: "Id"); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "PlacementRepatriations", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + ProfileId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Organization = table.Column(type: "longtext", nullable: true, comment: "หน่วยงานที่ส่งตัวกลับไป") + .Annotation("MySql:CharSet", "utf8mb4"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผล") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"), + Date = table.Column(type: "datetime(6)", nullable: true, comment: "ตั้งแต่วันที่"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน") + }, + constraints: table => + { + table.PrimaryKey("PK_PlacementRepatriations", x => x.Id); + table.ForeignKey( + name: "FK_PlacementRepatriations_Profiles_ProfileId", + column: x => x.ProfileId, + principalTable: "Profiles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "RetirementDischarges", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + ProfileId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Organization = table.Column(type: "longtext", nullable: true, comment: "หน่วยงานที่ปลดออกไป") + .Annotation("MySql:CharSet", "utf8mb4"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผล") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"), + Date = table.Column(type: "datetime(6)", nullable: true, comment: "ตั้งแต่วันที่"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน") + }, + constraints: table => + { + table.PrimaryKey("PK_RetirementDischarges", x => x.Id); + table.ForeignKey( + name: "FK_RetirementDischarges_Profiles_ProfileId", + column: x => x.ProfileId, + principalTable: "Profiles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "RetirementExpulsions", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + ProfileId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Organization = table.Column(type: "longtext", nullable: true, comment: "หน่วยงานที่ไล่ออกไป") + .Annotation("MySql:CharSet", "utf8mb4"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผล") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"), + Date = table.Column(type: "datetime(6)", nullable: true, comment: "ตั้งแต่วันที่"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน") + }, + constraints: table => + { + table.PrimaryKey("PK_RetirementExpulsions", x => x.Id); + table.ForeignKey( + name: "FK_RetirementExpulsions_Profiles_ProfileId", + column: x => x.ProfileId, + principalTable: "Profiles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "RetirementOthers", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + ProfileId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Organization = table.Column(type: "longtext", nullable: true, comment: "หน่วยงานที่อื่นๆไป") + .Annotation("MySql:CharSet", "utf8mb4"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผล") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"), + Date = table.Column(type: "datetime(6)", nullable: true, comment: "ตั้งแต่วันที่"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน"), + CommandTypeId = table.Column(type: "char(36)", nullable: true, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_RetirementOthers", x => x.Id); + table.ForeignKey( + name: "FK_RetirementOthers_CommandTypes_CommandTypeId", + column: x => x.CommandTypeId, + principalTable: "CommandTypes", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_RetirementOthers_Profiles_ProfileId", + column: x => x.ProfileId, + principalTable: "Profiles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "RetirementOuts", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + ProfileId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + Organization = table.Column(type: "longtext", nullable: true, comment: "หน่วยงานที่ให้ออกไป") + .Annotation("MySql:CharSet", "utf8mb4"), + Reason = table.Column(type: "longtext", nullable: true, comment: "เหตุผล") + .Annotation("MySql:CharSet", "utf8mb4"), + OrganizationPositionOld = table.Column(type: "longtext", nullable: true, comment: "สังกัด") + .Annotation("MySql:CharSet", "utf8mb4"), + Date = table.Column(type: "datetime(6)", nullable: true, comment: "ตั้งแต่วันที่"), + PositionTypeOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionLevelOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม ระดับ") + .Annotation("MySql:CharSet", "utf8mb4"), + PositionNumberOld = table.Column(type: "longtext", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เลขที่") + .Annotation("MySql:CharSet", "utf8mb4"), + AmountOld = table.Column(type: "double", nullable: true, comment: "ข้อมูลหน่วยงานเดิม เงินเดือน"), + Status = table.Column(type: "longtext", nullable: false, comment: "สถานะคำขอ") + .Annotation("MySql:CharSet", "utf8mb4"), + IsActive = table.Column(type: "tinyint(1)", nullable: false, comment: "สถานะการใช้งาน") + }, + constraints: table => + { + table.PrimaryKey("PK_RetirementOuts", x => x.Id); + table.ForeignKey( + name: "FK_RetirementOuts_Profiles_ProfileId", + column: x => x.ProfileId, + principalTable: "Profiles", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "PlacementAppointmentDocs", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + DocumentId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + PlacementAppointmentId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_PlacementAppointmentDocs", x => x.Id); + table.ForeignKey( + name: "FK_PlacementAppointmentDocs_Documents_DocumentId", + column: x => x.DocumentId, + principalTable: "Documents", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PlacementAppointmentDocs_PlacementAppointments_PlacementAppo~", + column: x => x.PlacementAppointmentId, + principalTable: "PlacementAppointments", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "PlacementRelocationDocs", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + 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"), + DocumentId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + PlacementRelocationId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_PlacementRelocationDocs", x => x.Id); + table.ForeignKey( + name: "FK_PlacementRelocationDocs_Documents_DocumentId", + column: x => x.DocumentId, + principalTable: "Documents", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PlacementRelocationDocs_PlacementRelocations_PlacementReloca~", + column: x => x.PlacementRelocationId, + principalTable: "PlacementRelocations", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointmentDocs_DocumentId", + table: "PlacementAppointmentDocs", + column: "DocumentId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointmentDocs_PlacementAppointmentId", + table: "PlacementAppointmentDocs", + column: "PlacementAppointmentId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_BloodGroupId", + table: "PlacementAppointments", + column: "BloodGroupId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_CommandTypeId", + table: "PlacementAppointments", + column: "CommandTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_GenderId", + table: "PlacementAppointments", + column: "GenderId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_OrganizationPositionId", + table: "PlacementAppointments", + column: "OrganizationPositionId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PositionLevelId", + table: "PlacementAppointments", + column: "PositionLevelId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PositionLineId", + table: "PlacementAppointments", + column: "PositionLineId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PositionNumberId", + table: "PlacementAppointments", + column: "PositionNumberId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PositionPathId", + table: "PlacementAppointments", + column: "PositionPathId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PositionPathSideId", + table: "PlacementAppointments", + column: "PositionPathSideId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PositionTypeId", + table: "PlacementAppointments", + column: "PositionTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_PrefixId", + table: "PlacementAppointments", + column: "PrefixId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_RelationshipId", + table: "PlacementAppointments", + column: "RelationshipId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementAppointments_ReligionId", + table: "PlacementAppointments", + column: "ReligionId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementOfficers_ProfileId", + table: "PlacementOfficers", + column: "ProfileId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocationDocs_DocumentId", + table: "PlacementRelocationDocs", + column: "DocumentId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocationDocs_PlacementRelocationId", + table: "PlacementRelocationDocs", + column: "PlacementRelocationId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_BloodGroupId", + table: "PlacementRelocations", + column: "BloodGroupId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_GenderId", + table: "PlacementRelocations", + column: "GenderId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_OrganizationPositionId", + table: "PlacementRelocations", + column: "OrganizationPositionId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PositionLevelId", + table: "PlacementRelocations", + column: "PositionLevelId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PositionLineId", + table: "PlacementRelocations", + column: "PositionLineId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PositionNumberId", + table: "PlacementRelocations", + column: "PositionNumberId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PositionPathId", + table: "PlacementRelocations", + column: "PositionPathId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PositionPathSideId", + table: "PlacementRelocations", + column: "PositionPathSideId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PositionTypeId", + table: "PlacementRelocations", + column: "PositionTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_PrefixId", + table: "PlacementRelocations", + column: "PrefixId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_RelationshipId", + table: "PlacementRelocations", + column: "RelationshipId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRelocations_ReligionId", + table: "PlacementRelocations", + column: "ReligionId"); + + migrationBuilder.CreateIndex( + name: "IX_PlacementRepatriations_ProfileId", + table: "PlacementRepatriations", + column: "ProfileId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementDischarges_ProfileId", + table: "RetirementDischarges", + column: "ProfileId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementExpulsions_ProfileId", + table: "RetirementExpulsions", + column: "ProfileId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementOthers_CommandTypeId", + table: "RetirementOthers", + column: "CommandTypeId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementOthers_ProfileId", + table: "RetirementOthers", + column: "ProfileId"); + + migrationBuilder.CreateIndex( + name: "IX_RetirementOuts_ProfileId", + table: "RetirementOuts", + column: "ProfileId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "PlacementAppointmentDocs"); + + migrationBuilder.DropTable( + name: "PlacementOfficers"); + + migrationBuilder.DropTable( + name: "PlacementRelocationDocs"); + + migrationBuilder.DropTable( + name: "PlacementRepatriations"); + + migrationBuilder.DropTable( + name: "RetirementDischarges"); + + migrationBuilder.DropTable( + name: "RetirementExpulsions"); + + migrationBuilder.DropTable( + name: "RetirementOthers"); + + migrationBuilder.DropTable( + name: "RetirementOuts"); + + migrationBuilder.DropTable( + name: "PlacementAppointments"); + + migrationBuilder.DropTable( + name: "PlacementRelocations"); + } + } +} diff --git a/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs b/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs index 470b1aa3..0bbc5f48 100644 --- a/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs +++ b/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs @@ -9923,6 +9923,266 @@ namespace BMA.EHR.Infrastructure.Migrations b.ToTable("Placements"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CommandTypeId") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Firstname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + 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("Lastname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionDate") + .HasColumnType("datetime(6)") + .HasComment("ดำรงตำแหน่งในระดับปัจจุบันเมื่อ"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับย้ายราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("CommandTypeId"); + + b.HasIndex("GenderId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementAppointments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointmentDoc", 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("PlacementAppointmentId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementAppointmentId"); + + b.ToTable("PlacementAppointmentDocs"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementCertificate", b => { b.Property("Id") @@ -10195,6 +10455,104 @@ namespace BMA.EHR.Infrastructure.Migrations b.ToTable("PlacementIsProperties"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementOfficer", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ช่วยราชการไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("PlacementOfficers"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => { b.Property("Id") @@ -10642,6 +11000,10 @@ namespace BMA.EHR.Infrastructure.Migrations .HasComment("PrimaryKey") .HasAnnotation("Relational:JsonPropertyName", "id"); + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + b.Property("BloodGroupId") .HasColumnType("char(36)"); @@ -10675,6 +11037,10 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("datetime(6)") .HasComment("วันเกิด"); + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + b.Property("Firstname") .IsRequired() .HasColumnType("longtext") @@ -10719,15 +11085,27 @@ namespace BMA.EHR.Infrastructure.Migrations b.Property("OrganizationPositionId") .HasColumnType("char(36)"); + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + b.Property("PositionLevelId") .HasColumnType("char(36)"); + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + b.Property("PositionLineId") .HasColumnType("char(36)"); b.Property("PositionNumberId") .HasColumnType("char(36)"); + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + b.Property("PositionPathId") .HasColumnType("char(36)"); @@ -10737,6 +11115,10 @@ namespace BMA.EHR.Infrastructure.Migrations b.Property("PositionTypeId") .HasColumnType("char(36)"); + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + b.Property("PrefixId") .HasColumnType("char(36)"); @@ -10745,6 +11127,10 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("varchar(100)") .HasComment("เชื้อชาติ"); + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับโอนราชการ"); + b.Property("RecruitDate") .HasColumnType("datetime(6)") .HasComment("วันที่บรรจุ"); @@ -10856,6 +11242,355 @@ namespace BMA.EHR.Infrastructure.Migrations b.ToTable("PlacementReceiveDocs"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("BloodGroupId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Firstname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("GenderId") + .HasColumnType("char(36)"); + + 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("Lastname") + .IsRequired() + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationPositionId") + .HasColumnType("char(36)"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionLineId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberId") + .HasColumnType("char(36)"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionPathId") + .HasColumnType("char(36)"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ย้ายราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("ReligionId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.HasKey("Id"); + + b.HasIndex("BloodGroupId"); + + b.HasIndex("GenderId"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PositionLevelId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("PositionTypeId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("RelationshipId"); + + b.HasIndex("ReligionId"); + + b.ToTable("PlacementRelocations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocationDoc", 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("PlacementRelocationId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementRelocationId"); + + b.ToTable("PlacementRelocationDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRepatriation", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ส่งตัวกลับไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("PlacementRepatriations"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => { b.Property("Id") @@ -10919,17 +11654,21 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("longtext") .HasComment("หน่วยงานที่ขอโอนไป"); - b.Property("OrganizationPositionOldId") - .HasColumnType("char(36)"); + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); - b.Property("PositionLevelOldId") - .HasColumnType("char(36)"); + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); - b.Property("PositionNumberOldId") - .HasColumnType("char(36)"); + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); - b.Property("PositionTypeOldId") - .HasColumnType("char(36)"); + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); b.Property("ProfileId") .HasColumnType("char(36)"); @@ -10945,14 +11684,6 @@ namespace BMA.EHR.Infrastructure.Migrations b.HasKey("Id"); - b.HasIndex("OrganizationPositionOldId"); - - b.HasIndex("PositionLevelOldId"); - - b.HasIndex("PositionNumberOldId"); - - b.HasIndex("PositionTypeOldId"); - b.HasIndex("ProfileId"); b.ToTable("PlacementTransfers"); @@ -11163,6 +11894,403 @@ namespace BMA.EHR.Infrastructure.Migrations b.ToTable("RetirementDeceaseds"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDischarge", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ปลดออกไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementDischarges"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementExpulsion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ไล่ออกไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementExpulsions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOther", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("CommandTypeId") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่อื่นๆไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("CommandTypeId"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementOthers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOut", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AmountOld") + .HasColumnType("double") + .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("Date") + .HasColumnType("datetime(6)") + .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("Organization") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ให้ออกไป"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("RetirementOuts"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", b => { b.Property("Id") @@ -11404,6 +12532,10 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("datetime(6)") .HasComment("วันที่ขอออกราชการ"); + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + b.Property("CreatedAt") .HasColumnType("datetime(6)") .HasColumnOrder(100) @@ -11450,20 +12582,21 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("longtext") .HasComment("สถานที่ยื่นขอลาออกราชการ"); - b.Property("OrganizationOrganizationId") - .HasColumnType("char(36)"); + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); - b.Property("PositionExecutiveId") - .HasColumnType("char(36)"); + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); - b.Property("PositionLevelId") - .HasColumnType("char(36)"); + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); - b.Property("PositionLineId") - .HasColumnType("char(36)"); - - b.Property("PositionTypeId") - .HasColumnType("char(36)"); + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); b.Property("ProfileId") .HasColumnType("char(36)"); @@ -11482,16 +12615,6 @@ namespace BMA.EHR.Infrastructure.Migrations b.HasKey("Id"); - b.HasIndex("OrganizationOrganizationId"); - - b.HasIndex("PositionExecutiveId"); - - b.HasIndex("PositionLevelId"); - - b.HasIndex("PositionLineId"); - - b.HasIndex("PositionTypeId"); - b.HasIndex("ProfileId"); b.ToTable("RetirementResigns"); @@ -12496,6 +13619,108 @@ namespace BMA.EHR.Infrastructure.Migrations b.Navigation("PlacementType"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointment", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") + .WithMany() + .HasForeignKey("BloodGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandType", "CommandType") + .WithMany() + .HasForeignKey("CommandTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") + .WithMany() + .HasForeignKey("GenderId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") + .WithMany() + .HasForeignKey("OrganizationPositionId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") + .WithMany() + .HasForeignKey("PositionLevelId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("CommandType"); + + b.Navigation("Gender"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("Relationship"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointmentDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementAppointment", "PlacementAppointment") + .WithMany("PlacementAppointmentDocs") + .HasForeignKey("PlacementAppointmentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementAppointment"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementCertificate", b => { b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementProfile", "PlacementProfile") @@ -12530,6 +13755,17 @@ namespace BMA.EHR.Infrastructure.Migrations b.Navigation("PositionPath"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementOfficer", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => { b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") @@ -12785,37 +14021,120 @@ namespace BMA.EHR.Infrastructure.Migrations b.Navigation("PlacementReceive"); }); - modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocation", b => { - b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPositionOld") + b.HasOne("BMA.EHR.Domain.Models.MetaData.BloodGroup", "BloodGroup") .WithMany() - .HasForeignKey("OrganizationPositionOldId"); + .HasForeignKey("BloodGroupId"); - b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevelOld") + b.HasOne("BMA.EHR.Domain.Models.MetaData.Gender", "Gender") .WithMany() - .HasForeignKey("PositionLevelOldId"); + .HasForeignKey("GenderId"); - b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumberOld") + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationPositionEntity", "OrganizationPosition") .WithMany() - .HasForeignKey("PositionNumberOldId"); + .HasForeignKey("OrganizationPositionId"); - b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionTypeOld") + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") .WithMany() - .HasForeignKey("PositionTypeOldId"); + .HasForeignKey("PositionLevelId"); + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") + .WithMany() + .HasForeignKey("PositionLineId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.PositionNumberEntity", "PositionNumber") + .WithMany() + .HasForeignKey("PositionNumberId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPath", "PositionPath") + .WithMany() + .HasForeignKey("PositionPathId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionPathSide", "PositionPathSide") + .WithMany() + .HasForeignKey("PositionPathSideId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") + .WithMany() + .HasForeignKey("PositionTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Religion", "Religion") + .WithMany() + .HasForeignKey("ReligionId"); + + b.Navigation("BloodGroup"); + + b.Navigation("Gender"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("PositionLevel"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("PositionType"); + + b.Navigation("Prefix"); + + b.Navigation("Relationship"); + + b.Navigation("Religion"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocationDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementRelocation", "PlacementRelocation") + .WithMany("PlacementRelocationDocs") + .HasForeignKey("PlacementRelocationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementRelocation"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRepatriation", b => + { b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") .WithMany() .HasForeignKey("ProfileId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("OrganizationPositionOld"); + b.Navigation("Profile"); + }); - b.Navigation("PositionLevelOld"); - - b.Navigation("PositionNumberOld"); - - b.Navigation("PositionTypeOld"); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.Navigation("Profile"); }); @@ -12856,6 +14175,56 @@ namespace BMA.EHR.Infrastructure.Migrations b.Navigation("Profile"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDischarge", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementExpulsion", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOther", b => + { + b.HasOne("BMA.EHR.Domain.Models.Commands.Core.CommandType", "CommandType") + .WithMany() + .HasForeignKey("CommandTypeId"); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("CommandType"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOut", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Profile"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriodHistory", b => { b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") @@ -12888,42 +14257,12 @@ namespace BMA.EHR.Infrastructure.Migrations modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResign", b => { - b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "OrganizationOrganization") - .WithMany() - .HasForeignKey("OrganizationOrganizationId"); - - b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionExecutive", "PositionExecutive") - .WithMany() - .HasForeignKey("PositionExecutiveId"); - - b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLevel", "PositionLevel") - .WithMany() - .HasForeignKey("PositionLevelId"); - - b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionLine", "PositionLine") - .WithMany() - .HasForeignKey("PositionLineId"); - - b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionType", "PositionType") - .WithMany() - .HasForeignKey("PositionTypeId"); - b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") .WithMany() .HasForeignKey("ProfileId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("OrganizationOrganization"); - - b.Navigation("PositionExecutive"); - - b.Navigation("PositionLevel"); - - b.Navigation("PositionLine"); - - b.Navigation("PositionType"); - b.Navigation("Profile"); }); @@ -13125,6 +14464,11 @@ namespace BMA.EHR.Infrastructure.Migrations b.Navigation("PlacementProfiles"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementAppointment", b => + { + b.Navigation("PlacementAppointmentDocs"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfile", b => { b.Navigation("PlacementCertificates"); @@ -13137,6 +14481,11 @@ namespace BMA.EHR.Infrastructure.Migrations b.Navigation("PlacementReceiveDocs"); }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementRelocation", b => + { + b.Navigation("PlacementRelocationDocs"); + }); + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementTransfer", b => { b.Navigation("PlacementTransferDocs"); diff --git a/BMA.EHR.Infrastructure/Persistence/ApplicationDBContext.cs b/BMA.EHR.Infrastructure/Persistence/ApplicationDBContext.cs index e37ca214..67c6a38e 100644 --- a/BMA.EHR.Infrastructure/Persistence/ApplicationDBContext.cs +++ b/BMA.EHR.Infrastructure/Persistence/ApplicationDBContext.cs @@ -252,8 +252,14 @@ namespace BMA.EHR.Infrastructure.Persistence public DbSet PlacementTypes { get; set; } public DbSet PlacementTransfers { get; set; } public DbSet PlacementReceives { get; set; } + public DbSet PlacementRelocations { get; set; } + public DbSet PlacementAppointments { get; set; } public DbSet PlacementTransferDocs { get; set; } public DbSet PlacementReceiveDocs { get; set; } + public DbSet PlacementRelocationDocs { get; set; } + public DbSet PlacementAppointmentDocs { get; set; } + public DbSet PlacementOfficers { get; set; } + public DbSet PlacementRepatriations { get; set; } #endregion @@ -312,6 +318,10 @@ namespace BMA.EHR.Infrastructure.Persistence public DbSet RetirementProfiles { get; set; } public DbSet RetirementDeceaseds { get; set; } public DbSet RetirementResigns { get; set; } + public DbSet RetirementOuts { get; set; } + public DbSet RetirementDischarges { get; set; } + public DbSet RetirementExpulsions { get; set; } + public DbSet RetirementOthers { get; set; } #endregion diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs new file mode 100644 index 00000000..f88f6a3f --- /dev/null +++ b/BMA.EHR.Placement.Service/Controllers/PlacementAppointmentController.cs @@ -0,0 +1,520 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Placement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Placement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Placement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/placement/appointment")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบแต่งตั้ง-เลื่อน")] + public class PlacementAppointmentController : BaseController + { + private readonly PlacementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public PlacementAppointmentController(PlacementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการแต่งตั้ง-เลื่อน + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var placementAppointments = await _context.PlacementAppointments.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + p.CitizenId, + Prefix = p.Prefix == null ? null : p.Prefix.Name, + p.Firstname, + p.Lastname, + p.DateOfBirth, + Gender = p.Gender == null ? null : p.Gender.Name, + p.Status, + p.RecruitDate, + PositionNumber = p.PositionNumber == null ? null : p.PositionNumber.Name, + PositionPath = p.PositionPath == null ? null : p.PositionPath.Name, + PositionPathSide = p.PositionPathSide == null ? null : p.PositionPathSide.Name, + PositionType = p.PositionType == null ? null : p.PositionType.Name, + PositionLine = p.PositionLine == null ? null : p.PositionLine.Name, + PositionLevel = p.PositionLevel == null ? null : p.PositionLevel.Name, + PosNoId = p.PositionNumber == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumber.Id, + PositionId = p.PositionPath == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPath.Id, + PositionPathSideId = p.PositionPathSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPathSide.Id, + PositionTypeId = p.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionType.Id, + PositionLineId = p.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLine.Id, + PositionLevelId = p.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevel.Id, + OrganizationPositionId = p.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPosition.Id, + OrganizationName = p.OrganizationPosition == null ? null : (p.OrganizationPosition.Organization == null ? null : (p.OrganizationPosition.Organization.OrganizationOrganization == null ? null : p.OrganizationPosition.Organization.OrganizationOrganization.Name)),//// + OrganizationShortName = p.OrganizationPosition == null ? null : (p.OrganizationPosition.Organization == null ? null : (p.OrganizationPosition.Organization.OrganizationShortName == null ? null : p.OrganizationPosition.Organization.OrganizationShortName.Name)),//// + p.IsActive, + p.PositionDate, + p.Reason, + p.EducationOld, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.CreatedAt, + }) + .ToListAsync(); + if (PlacementAdmin == true) + placementAppointments.Where(x => x.Status.Trim().ToUpper().Contains("PENDING")); + + return Success(placementAppointments); + } + + /// + /// get รายละเอียดแต่งตั้ง-เลื่อน + /// + /// Id แต่งตั้ง-เลื่อน + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailByUser(Guid id) + { + var data = await _context.PlacementAppointments.AsQueryable() + .Where(x => x.Id == id) + .Select(p => new + { + p.Id, + p.CitizenId, + Prefix = p.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Prefix.Id, + p.Firstname, + p.Lastname, + p.DateOfBirth, + Gender = p.Gender == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Gender.Id, + p.Nationality, + p.Race, + Religion = p.Religion == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Religion.Id, + BloodGroup = p.BloodGroup == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.BloodGroup.Id, + Relationship = p.Relationship == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Relationship.Id, + p.TelephoneNumber, + p.Status, + p.RecruitDate, + PosNoId = p.PositionNumber == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumber.Id, + PositionId = p.PositionPath == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPath.Id, + PositionPathSideId = p.PositionPathSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPathSide.Id, + PositionTypeId = p.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionType.Id, + PositionLineId = p.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLine.Id, + PositionLevelId = p.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevel.Id, + OrganizationPositionId = p.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPosition.Id, + p.CreatedAt, + p.Reason, + p.EducationOld, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.PositionDate, + PlacementAppointmentDocs = p.PlacementAppointmentDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementAppointmentDocs = new List(); + foreach (var doc in data.PlacementAppointmentDocs) + { + var _doc = new + { + doc.FileName, + PathName = await _documentService.ImagesPath(doc.Id) + }; + placementAppointmentDocs.Add(_doc); + } + var _data = new + { + data.Id, + data.CitizenId, + data.Prefix, + data.Firstname, + data.Lastname, + data.DateOfBirth, + data.Gender, + data.Nationality, + data.Race, + data.Religion, + data.BloodGroup, + data.Relationship, + data.TelephoneNumber, + data.Status, + data.RecruitDate, + data.PosNoId, + data.PositionId, + data.PositionPathSideId, + data.PositionTypeId, + data.PositionLineId, + data.PositionLevelId, + data.OrganizationPositionId, + data.CreatedAt, + data.Reason, + data.EducationOld, + data.salary, + data.PositionTypeOld, + data.PositionLevelOld, + data.PositionNumberOld, + data.OrganizationPositionOld, + data.PositionDate, + Docs = placementAppointmentDocs, + }; + + return Success(_data); + } + + /// + /// สร้างแต่งตั้ง-เลื่อน + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] PlacementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Educations) + .Include(x => x.Position) + .Include(x => x.Gender) + .Include(x => x.Prefix) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementAppointment = new PlacementAppointment + { + CitizenId = profile.CitizenId, + Prefix = profile.Prefix, + Firstname = profile.FirstName, + Lastname = profile.LastName, + DateOfBirth = profile.BirthDate, + Gender = profile.Gender, + Nationality = profile.Nationality, + Race = profile.Race, + Religion = await _context.Religions.FindAsync(profile.ReligionId), + BloodGroup = await _context.BloodGroups.FindAsync(profile.BloodGroupId), + Relationship = await _context.Relationships.FindAsync(profile.RelationshipId), + TelephoneNumber = profile.TelephoneNumber, + EducationOld = profile.Educations.Count() == 0 ? null : $"{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Degree}-{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Field}", + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.PlacementAppointments.AddAsync(placementAppointment); + await _context.SaveChangesAsync(); + if (Request.Form.Files != null && Request.Form.Files.Count != 0) + { + foreach (var file in Request.Form.Files) + { + var fileExtension = Path.GetExtension(file.FileName); + + var doc = await _documentService.UploadFileAsync(file, file.FileName); + var _doc = await _context.Documents.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == doc.Id); + if (_doc != null) + { + var placementAppointmentDoc = new PlacementAppointmentDoc + { + PlacementAppointment = placementAppointment, + Document = _doc, + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.PlacementAppointmentDocs.AddAsync(placementAppointmentDoc); + + } + } + } + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// เลือกหน่วยงาน + /// + /// Id แต่งตั้ง-เลื่อน + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("position/{id:length(36)}")] + public async Task> UpdatePositionPlacementAppointment([FromBody] PersonSelectPositionAppointmentRequest req, Guid id) + { + var uppdated = await _context.PlacementAppointments + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementAppointmentNotFound, 404); + if (req.PosNoId != null) + { + var save_posNo = await _context.PositionNumbers.FindAsync(req.PosNoId); + if (save_posNo == null) + return Error(GlobalMessages.PositionPosNoNotFound, 404); + uppdated.PositionNumber = save_posNo; + + var save_orgPosition = await _context.OrganizationPositions.FirstOrDefaultAsync(x => x.PositionNumber == save_posNo); + if (save_orgPosition == null) + return Error(GlobalMessages.PositionPosNoNotFound, 404); + uppdated.OrganizationPosition = save_orgPosition; + } + + if (req.PositionId != null) + { + var save = await _context.PositionPaths.FindAsync(req.PositionId); + if (save == null) + return Error(GlobalMessages.PositionPathNotFound, 404); + uppdated.PositionPath = save; + } + + if (req.PositionLevelId != null) + { + var save = await _context.PositionLevels.FindAsync(req.PositionLevelId); + if (save == null) + return Error(GlobalMessages.PositionLevelNotFound, 404); + uppdated.PositionLevel = save; + } + + if (req.PositionLineId != null) + { + var save = await _context.PositionLines.FindAsync(req.PositionLineId); + if (save == null) + return Error(GlobalMessages.PositionLineNotFound, 404); + uppdated.PositionLine = save; + } + + if (req.PositionPathSideId != null) + { + var save = await _context.PositionPathSides.FindAsync(req.PositionPathSideId); + if (save == null) + return Error(GlobalMessages.PositionPathSideNotFound, 404); + uppdated.PositionPathSide = save; + } + + if (req.PositionTypeId != null) + { + var save = await _context.PositionTypes.FindAsync(req.PositionTypeId); + if (save == null) + return Error(GlobalMessages.PositionTypeNotFound, 404); + uppdated.PositionType = save; + } + + uppdated.RecruitDate = req.RecruitDate; + uppdated.Status = "PENDING"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขแต่งตั้ง-เลื่อน + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] PlacementAppointmentEditRequest req, Guid id) + { + var uppdated = await _context.PlacementAppointments + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementTransferNotFound, 404); + + + if (req.PrefixId != null) + { + var save = await _context.Prefixes.FindAsync(req.PrefixId); + if (save == null) + return Error(GlobalMessages.PrefixNotFound, 404); + uppdated.Prefix = save; + } + + if (req.RelationshipId != null) + { + var save = await _context.Relationships.FindAsync(req.RelationshipId); + if (save == null) + return Error(GlobalMessages.RelationshipNotFound, 404); + uppdated.Relationship = save; + } + + if (req.ReligionId != null) + { + var save = await _context.Religions.FindAsync(req.ReligionId); + if (save == null) + return Error(GlobalMessages.ReligionNotFound, 404); + uppdated.Religion = save; + } + + if (req.BloodGroupId != null) + { + var save = await _context.BloodGroups.FindAsync(req.BloodGroupId); + if (save == null) + return Error(GlobalMessages.BloodGroupNotFound, 404); + uppdated.BloodGroup = save; + } + + if (req.GenderId != null) + { + var save = await _context.Genders.FindAsync(req.GenderId); + if (save == null) + return Error(GlobalMessages.GenderNotFound, 404); + uppdated.Gender = save; + } + uppdated.CitizenId = req.CitizenId; + uppdated.Firstname = req.Firstname; + uppdated.Lastname = req.Lastname; + uppdated.DateOfBirth = req.DateOfBirth; + uppdated.Nationality = req.Nationality; + uppdated.Race = req.Race; + uppdated.TelephoneNumber = req.TelephoneNumber; + uppdated.EducationOld = req.EducationOld; + uppdated.Reason = req.Reason; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.AmountOld = req.AmountOld; + uppdated.PositionDate = req.PositionDate; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบแต่งตั้ง-เลื่อน + /// + /// Id แต่งตั้ง-เลื่อน + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.PlacementAppointments.AsQueryable() + .Include(x => x.PlacementAppointmentDocs) + .ThenInclude(x => x.Document) + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + var placementAppointmentDocs = new List(); + foreach (var doc in deleted.PlacementAppointmentDocs) + { + if (doc.Document != null) + placementAppointmentDocs.Add(doc.Document.Id); + } + _context.PlacementAppointmentDocs.RemoveRange(deleted.PlacementAppointmentDocs); + await _context.SaveChangesAsync(); + _context.PlacementAppointments.Remove(deleted); + foreach (var doc in placementAppointmentDocs) + { + if (doc != null) + await _documentService.DeleteFileAsync(doc); + } + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("report/{commandTypeId:length(36)}")] + public async Task> PostToReport([FromBody] PlacementProfileRequest req, Guid commandTypeId) + { + foreach (var item in req.Id) + { + var uppdated = await _context.PlacementAppointments + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + + uppdated.CommandType = await _context.CommandTypes.FindAsync(commandTypeId); + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementOfficerController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementOfficerController.cs new file mode 100644 index 00000000..570ca51b --- /dev/null +++ b/BMA.EHR.Placement.Service/Controllers/PlacementOfficerController.cs @@ -0,0 +1,290 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Placement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Placement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Placement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/placement/officer")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบช่วยราชการ")] + public class PlacementOfficerController : BaseController + { + private readonly PlacementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public PlacementOfficerController(PlacementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการช่วยราชการของ Admin + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var placementOfficers = await _context.PlacementOfficers.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + p.CreatedAt, + p.Organization, + p.Reason, + p.Status, + p.Date, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.IsActive, + }) + .ToListAsync(); + if (PlacementAdmin == true) + placementOfficers.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); + + return Success(placementOfficers); + } + + /// + /// get รายละเอียดช่วยราชการเจ้าหน้าที่ + /// + /// Id ช่วยราชการ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.PlacementOfficers.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + return Success(data); + } + + /// + /// สร้างช่วยราชการ + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] PlacementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementOfficer = new PlacementOfficer + { + Profile = profile, + Organization = Request.Form.ContainsKey("Organization") ? Request.Form["Organization"] : "", + Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", + // Date = req.Date, + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.PlacementOfficers.AddAsync(placementOfficer); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขช่วยราชการ + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] PlacementOfficerEditRequest req, Guid id) + { + var uppdated = await _context.PlacementOfficers + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementOfficerNotFound, 404); + + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.AmountOld = req.AmountOld; + uppdated.Organization = req.Organization; + uppdated.Reason = req.Reason; + uppdated.Date = req.Date; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// อนุมัติช่วยราชการ + /// + /// Id ช่วยราชการ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("confirm/{id:length(36)}")] + public async Task> AdminConfirm(Guid id) + { + var uppdated = await _context.PlacementOfficers + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementOfficerNotFound, 404); + + uppdated.Status = "APPROVE"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบช่วยราชการ + /// + /// Id ช่วยราชการ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.PlacementOfficers.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + _context.PlacementOfficers.Remove(deleted); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] PlacementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.PlacementOfficers + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementReceiveController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementReceiveController.cs index f31a0da5..067e7f98 100644 --- a/BMA.EHR.Placement.Service/Controllers/PlacementReceiveController.cs +++ b/BMA.EHR.Placement.Service/Controllers/PlacementReceiveController.cs @@ -87,11 +87,18 @@ namespace BMA.EHR.Placement.Service.Controllers OrganizationName = p.OrganizationPosition == null ? null : (p.OrganizationPosition.Organization == null ? null : (p.OrganizationPosition.Organization.OrganizationOrganization == null ? null : p.OrganizationPosition.Organization.OrganizationOrganization.Name)),//// OrganizationShortName = p.OrganizationPosition == null ? null : (p.OrganizationPosition.Organization == null ? null : (p.OrganizationPosition.Organization.OrganizationShortName == null ? null : p.OrganizationPosition.Organization.OrganizationShortName.Name)),//// p.IsActive, + p.Reason, + p.EducationOld, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, p.CreatedAt, }) .ToListAsync(); if (PlacementAdmin == true) - placementReceives.Where(x => x.Status.Trim().ToUpper().Contains("DONE")); + placementReceives.Where(x => x.Status.Trim().ToUpper().Contains("PENDING")); return Success(placementReceives); } @@ -135,6 +142,13 @@ namespace BMA.EHR.Placement.Service.Controllers PositionLevelId = p.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevel.Id, OrganizationPositionId = p.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPosition.Id, p.CreatedAt, + p.Reason, + p.EducationOld, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, PlacementReceiveDocs = p.PlacementReceiveDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), }) .FirstOrDefaultAsync(); @@ -176,6 +190,13 @@ namespace BMA.EHR.Placement.Service.Controllers data.PositionLevelId, data.OrganizationPositionId, data.CreatedAt, + data.Reason, + data.EducationOld, + data.salary, + data.PositionTypeOld, + data.PositionLevelOld, + data.PositionNumberOld, + data.OrganizationPositionOld, Docs = placementReceiveDocs, }; @@ -194,6 +215,12 @@ namespace BMA.EHR.Placement.Service.Controllers public async Task> Post([FromForm] PlacementReceiveRequest req) { var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Educations) + .Include(x => x.Position) .FirstOrDefaultAsync(x => x.KeycloakId == Guid.Parse(UserId)); if (profile == null) return Error(GlobalMessages.DataNotFound, 404); @@ -216,7 +243,13 @@ namespace BMA.EHR.Placement.Service.Controllers BloodGroup = await _context.BloodGroups.FindAsync(req.BloodGroup), Relationship = await _context.Relationships.FindAsync(req.Relationship), TelephoneNumber = req.TelephoneNumber, - Status = "PENDING", + EducationOld = profile.Educations.Count() == 0 ? null : $"{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Degree}-{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Field}", + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", CreatedUserId = FullName ?? "", CreatedFullName = UserId ?? "System Administrator", CreatedAt = DateTime.Now, @@ -328,7 +361,7 @@ namespace BMA.EHR.Placement.Service.Controllers } uppdated.RecruitDate = req.RecruitDate; - uppdated.Status = "DONE"; + uppdated.Status = "PENDING"; uppdated.LastUpdateFullName = FullName ?? "System Administrator"; uppdated.LastUpdateUserId = UserId ?? ""; uppdated.LastUpdatedAt = DateTime.Now; @@ -337,31 +370,83 @@ namespace BMA.EHR.Placement.Service.Controllers return Success(); } - // /// - // /// View หน่วยงาน - // /// - // /// Id รับโอน - // /// - // /// - // /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง - // /// ไม่ได้ Login เข้าระบบ - // /// เมื่อเกิดข้อผิดพลาดในการทำงาน - // [HttpGet("position/{id:length(36)}")] - // public async Task> GetPositionPlacementReceive(Guid id) - // { - // var uppdated = await _context.PlacementReceives - // .FirstOrDefaultAsync(x => x.Id == id); - // if (uppdated == null) - // return Error(GlobalMessages.PlacementReceiveNotFound, 404); + /// + /// แก้ไขรับโอน + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] PlacementReceiveEditRequest req, Guid id) + { + var uppdated = await _context.PlacementReceives + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementTransferNotFound, 404); - // uppdated.Status = "DONE"; - // uppdated.LastUpdateFullName = FullName ?? "System Administrator"; - // uppdated.LastUpdateUserId = UserId ?? ""; - // uppdated.LastUpdatedAt = DateTime.Now; - // await _context.SaveChangesAsync(); - // return Success(); - // } + if (req.PrefixId != null) + { + var save = await _context.Prefixes.FindAsync(req.PrefixId); + if (save == null) + return Error(GlobalMessages.PrefixNotFound, 404); + uppdated.Prefix = save; + } + + if (req.RelationshipId != null) + { + var save = await _context.Relationships.FindAsync(req.RelationshipId); + if (save == null) + return Error(GlobalMessages.RelationshipNotFound, 404); + uppdated.Relationship = save; + } + + if (req.ReligionId != null) + { + var save = await _context.Religions.FindAsync(req.ReligionId); + if (save == null) + return Error(GlobalMessages.ReligionNotFound, 404); + uppdated.Religion = save; + } + + if (req.BloodGroupId != null) + { + var save = await _context.BloodGroups.FindAsync(req.BloodGroupId); + if (save == null) + return Error(GlobalMessages.BloodGroupNotFound, 404); + uppdated.BloodGroup = save; + } + + if (req.GenderId != null) + { + var save = await _context.Genders.FindAsync(req.GenderId); + if (save == null) + return Error(GlobalMessages.GenderNotFound, 404); + uppdated.Gender = save; + } + uppdated.CitizenId = req.CitizenId; + uppdated.Firstname = req.Firstname; + uppdated.Lastname = req.Lastname; + uppdated.DateOfBirth = req.DateOfBirth; + uppdated.Nationality = req.Nationality; + uppdated.Race = req.Race; + uppdated.TelephoneNumber = req.TelephoneNumber; + uppdated.EducationOld = req.EducationOld; + uppdated.Reason = req.Reason; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.AmountOld = req.AmountOld; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } /// /// ลบรับโอน @@ -399,5 +484,33 @@ namespace BMA.EHR.Placement.Service.Controllers return Success(); } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] PlacementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.PlacementReceives + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } } } diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementRelocationController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementRelocationController.cs new file mode 100644 index 00000000..d39f72f1 --- /dev/null +++ b/BMA.EHR.Placement.Service/Controllers/PlacementRelocationController.cs @@ -0,0 +1,514 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Placement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Placement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Placement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/placement/relocation")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบย้าย")] + public class PlacementRelocationController : BaseController + { + private readonly PlacementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public PlacementRelocationController(PlacementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการย้าย + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var placementRelocations = await _context.PlacementRelocations.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + p.CitizenId, + Prefix = p.Prefix == null ? null : p.Prefix.Name, + p.Firstname, + p.Lastname, + p.DateOfBirth, + Gender = p.Gender == null ? null : p.Gender.Name, + p.Status, + p.RecruitDate, + PositionNumber = p.PositionNumber == null ? null : p.PositionNumber.Name, + PositionPath = p.PositionPath == null ? null : p.PositionPath.Name, + PositionPathSide = p.PositionPathSide == null ? null : p.PositionPathSide.Name, + PositionType = p.PositionType == null ? null : p.PositionType.Name, + PositionLine = p.PositionLine == null ? null : p.PositionLine.Name, + PositionLevel = p.PositionLevel == null ? null : p.PositionLevel.Name, + PosNoId = p.PositionNumber == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumber.Id, + PositionId = p.PositionPath == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPath.Id, + PositionPathSideId = p.PositionPathSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPathSide.Id, + PositionTypeId = p.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionType.Id, + PositionLineId = p.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLine.Id, + PositionLevelId = p.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevel.Id, + OrganizationPositionId = p.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPosition.Id, + OrganizationName = p.OrganizationPosition == null ? null : (p.OrganizationPosition.Organization == null ? null : (p.OrganizationPosition.Organization.OrganizationOrganization == null ? null : p.OrganizationPosition.Organization.OrganizationOrganization.Name)),//// + OrganizationShortName = p.OrganizationPosition == null ? null : (p.OrganizationPosition.Organization == null ? null : (p.OrganizationPosition.Organization.OrganizationShortName == null ? null : p.OrganizationPosition.Organization.OrganizationShortName.Name)),//// + p.IsActive, + p.Reason, + p.EducationOld, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.CreatedAt, + }) + .ToListAsync(); + if (PlacementAdmin == true) + placementRelocations.Where(x => x.Status.Trim().ToUpper().Contains("PENDING")); + + return Success(placementRelocations); + } + + /// + /// get รายละเอียดย้าย + /// + /// Id ย้าย + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailByUser(Guid id) + { + var data = await _context.PlacementRelocations.AsQueryable() + .Where(x => x.Id == id) + .Select(p => new + { + p.Id, + p.CitizenId, + Prefix = p.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Prefix.Id, + p.Firstname, + p.Lastname, + p.DateOfBirth, + Gender = p.Gender == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Gender.Id, + p.Nationality, + p.Race, + Religion = p.Religion == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Religion.Id, + BloodGroup = p.BloodGroup == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.BloodGroup.Id, + Relationship = p.Relationship == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Relationship.Id, + p.TelephoneNumber, + p.Status, + p.RecruitDate, + PosNoId = p.PositionNumber == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumber.Id, + PositionId = p.PositionPath == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPath.Id, + PositionPathSideId = p.PositionPathSide == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionPathSide.Id, + PositionTypeId = p.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionType.Id, + PositionLineId = p.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLine.Id, + PositionLevelId = p.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevel.Id, + OrganizationPositionId = p.OrganizationPosition == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPosition.Id, + p.CreatedAt, + p.Reason, + p.EducationOld, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + PlacementRelocationDocs = p.PlacementRelocationDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementRelocationDocs = new List(); + foreach (var doc in data.PlacementRelocationDocs) + { + var _doc = new + { + doc.FileName, + PathName = await _documentService.ImagesPath(doc.Id) + }; + placementRelocationDocs.Add(_doc); + } + var _data = new + { + data.Id, + data.CitizenId, + data.Prefix, + data.Firstname, + data.Lastname, + data.DateOfBirth, + data.Gender, + data.Nationality, + data.Race, + data.Religion, + data.BloodGroup, + data.Relationship, + data.TelephoneNumber, + data.Status, + data.RecruitDate, + data.PosNoId, + data.PositionId, + data.PositionPathSideId, + data.PositionTypeId, + data.PositionLineId, + data.PositionLevelId, + data.OrganizationPositionId, + data.CreatedAt, + data.Reason, + data.EducationOld, + data.salary, + data.PositionTypeOld, + data.PositionLevelOld, + data.PositionNumberOld, + data.OrganizationPositionOld, + Docs = placementRelocationDocs, + }; + + return Success(_data); + } + + /// + /// สร้างย้าย + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] PlacementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Educations) + .Include(x => x.Position) + .Include(x => x.Gender) + .Include(x => x.Prefix) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementRelocation = new PlacementRelocation + { + CitizenId = profile.CitizenId, + Prefix = profile.Prefix, + Firstname = profile.FirstName, + Lastname = profile.LastName, + DateOfBirth = profile.BirthDate, + Gender = profile.Gender, + Nationality = profile.Nationality, + Race = profile.Race, + Religion = await _context.Religions.FindAsync(profile.ReligionId), + BloodGroup = await _context.BloodGroups.FindAsync(profile.BloodGroupId), + Relationship = await _context.Relationships.FindAsync(profile.RelationshipId), + TelephoneNumber = profile.TelephoneNumber, + EducationOld = profile.Educations.Count() == 0 ? null : $"{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Degree}-{profile.Educations.OrderByDescending(x => x.FinishDate).FirstOrDefault().Field}", + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.PlacementRelocations.AddAsync(placementRelocation); + await _context.SaveChangesAsync(); + if (Request.Form.Files != null && Request.Form.Files.Count != 0) + { + foreach (var file in Request.Form.Files) + { + var fileExtension = Path.GetExtension(file.FileName); + + var doc = await _documentService.UploadFileAsync(file, file.FileName); + var _doc = await _context.Documents.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == doc.Id); + if (_doc != null) + { + var placementRelocationDoc = new PlacementRelocationDoc + { + PlacementRelocation = placementRelocation, + Document = _doc, + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.PlacementRelocationDocs.AddAsync(placementRelocationDoc); + + } + } + } + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// เลือกหน่วยงาน + /// + /// Id ย้าย + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("position/{id:length(36)}")] + public async Task> UpdatelocationPlacementRelocation([FromBody] PersonSelectPositionRelocationRequest req, Guid id) + { + var uppdated = await _context.PlacementRelocations + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementRelocationNotFound, 404); + if (req.PosNoId != null) + { + var save_posNo = await _context.PositionNumbers.FindAsync(req.PosNoId); + if (save_posNo == null) + return Error(GlobalMessages.PositionPosNoNotFound, 404); + uppdated.PositionNumber = save_posNo; + + var save_orgPosition = await _context.OrganizationPositions.FirstOrDefaultAsync(x => x.PositionNumber == save_posNo); + if (save_orgPosition == null) + return Error(GlobalMessages.PositionPosNoNotFound, 404); + uppdated.OrganizationPosition = save_orgPosition; + } + + if (req.PositionId != null) + { + var save = await _context.PositionPaths.FindAsync(req.PositionId); + if (save == null) + return Error(GlobalMessages.PositionPathNotFound, 404); + uppdated.PositionPath = save; + } + + if (req.PositionLevelId != null) + { + var save = await _context.PositionLevels.FindAsync(req.PositionLevelId); + if (save == null) + return Error(GlobalMessages.PositionLevelNotFound, 404); + uppdated.PositionLevel = save; + } + + if (req.PositionLineId != null) + { + var save = await _context.PositionLines.FindAsync(req.PositionLineId); + if (save == null) + return Error(GlobalMessages.PositionLineNotFound, 404); + uppdated.PositionLine = save; + } + + if (req.PositionPathSideId != null) + { + var save = await _context.PositionPathSides.FindAsync(req.PositionPathSideId); + if (save == null) + return Error(GlobalMessages.PositionPathSideNotFound, 404); + uppdated.PositionPathSide = save; + } + + if (req.PositionTypeId != null) + { + var save = await _context.PositionTypes.FindAsync(req.PositionTypeId); + if (save == null) + return Error(GlobalMessages.PositionTypeNotFound, 404); + uppdated.PositionType = save; + } + + uppdated.RecruitDate = req.RecruitDate; + uppdated.Status = "PENDING"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขย้าย + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] PlacementRelocationEditRequest req, Guid id) + { + var uppdated = await _context.PlacementRelocations + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementTransferNotFound, 404); + + + if (req.PrefixId != null) + { + var save = await _context.Prefixes.FindAsync(req.PrefixId); + if (save == null) + return Error(GlobalMessages.PrefixNotFound, 404); + uppdated.Prefix = save; + } + + if (req.RelationshipId != null) + { + var save = await _context.Relationships.FindAsync(req.RelationshipId); + if (save == null) + return Error(GlobalMessages.RelationshipNotFound, 404); + uppdated.Relationship = save; + } + + if (req.ReligionId != null) + { + var save = await _context.Religions.FindAsync(req.ReligionId); + if (save == null) + return Error(GlobalMessages.ReligionNotFound, 404); + uppdated.Religion = save; + } + + if (req.BloodGroupId != null) + { + var save = await _context.BloodGroups.FindAsync(req.BloodGroupId); + if (save == null) + return Error(GlobalMessages.BloodGroupNotFound, 404); + uppdated.BloodGroup = save; + } + + if (req.GenderId != null) + { + var save = await _context.Genders.FindAsync(req.GenderId); + if (save == null) + return Error(GlobalMessages.GenderNotFound, 404); + uppdated.Gender = save; + } + uppdated.CitizenId = req.CitizenId; + uppdated.Firstname = req.Firstname; + uppdated.Lastname = req.Lastname; + uppdated.DateOfBirth = req.DateOfBirth; + uppdated.Nationality = req.Nationality; + uppdated.Race = req.Race; + uppdated.TelephoneNumber = req.TelephoneNumber; + uppdated.EducationOld = req.EducationOld; + uppdated.Reason = req.Reason; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.AmountOld = req.AmountOld; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบย้าย + /// + /// Id ย้าย + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.PlacementRelocations.AsQueryable() + .Include(x => x.PlacementRelocationDocs) + .ThenInclude(x => x.Document) + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + var placementRelocationDocs = new List(); + foreach (var doc in deleted.PlacementRelocationDocs) + { + if (doc.Document != null) + placementRelocationDocs.Add(doc.Document.Id); + } + _context.PlacementRelocationDocs.RemoveRange(deleted.PlacementRelocationDocs); + await _context.SaveChangesAsync(); + _context.PlacementRelocations.Remove(deleted); + foreach (var doc in placementRelocationDocs) + { + if (doc != null) + await _documentService.DeleteFileAsync(doc); + } + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] PlacementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.PlacementRelocations + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementRepatriationController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementRepatriationController.cs new file mode 100644 index 00000000..6b23e727 --- /dev/null +++ b/BMA.EHR.Placement.Service/Controllers/PlacementRepatriationController.cs @@ -0,0 +1,290 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Placement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Placement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Placement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/placement/repatriation")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบส่งตัวกลับ")] + public class PlacementRepatriationController : BaseController + { + private readonly PlacementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public PlacementRepatriationController(PlacementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? PlacementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการส่งตัวกลับของ Admin + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var placementRepatriations = await _context.PlacementRepatriations.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + p.CreatedAt, + p.Organization, + p.Reason, + p.Status, + p.Date, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.IsActive, + }) + .ToListAsync(); + if (PlacementAdmin == true) + placementRepatriations.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); + + return Success(placementRepatriations); + } + + /// + /// get รายละเอียดส่งตัวกลับเจ้าหน้าที่ + /// + /// Id ส่งตัวกลับ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.PlacementRepatriations.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + return Success(data); + } + + /// + /// สร้างส่งตัวกลับ + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] PlacementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementRepatriation = new PlacementRepatriation + { + Profile = profile, + Organization = Request.Form.ContainsKey("Organization") ? Request.Form["Organization"] : "", + Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", + // Date = req.Date, + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.PlacementRepatriations.AddAsync(placementRepatriation); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขส่งตัวกลับ + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] PlacementRepatriationEditRequest req, Guid id) + { + var uppdated = await _context.PlacementRepatriations + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementRepatriationNotFound, 404); + + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.AmountOld = req.AmountOld; + uppdated.Organization = req.Organization; + uppdated.Reason = req.Reason; + uppdated.Date = req.Date; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// อนุมัติส่งตัวกลับ + /// + /// Id ส่งตัวกลับ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("confirm/{id:length(36)}")] + public async Task> AdminConfirm(Guid id) + { + var uppdated = await _context.PlacementRepatriations + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.PlacementRepatriationNotFound, 404); + + uppdated.Status = "APPROVE"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบส่งตัวกลับ + /// + /// Id ส่งตัวกลับ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.PlacementRepatriations.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + _context.PlacementRepatriations.Remove(deleted); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] PlacementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.PlacementRepatriations + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Placement.Service/Controllers/PlacementTransferController.cs b/BMA.EHR.Placement.Service/Controllers/PlacementTransferController.cs index 09c831f5..3df15730 100644 --- a/BMA.EHR.Placement.Service/Controllers/PlacementTransferController.cs +++ b/BMA.EHR.Placement.Service/Controllers/PlacementTransferController.cs @@ -78,13 +78,10 @@ namespace BMA.EHR.Placement.Service.Controllers p.Status, p.Date, salary = p.AmountOld, - PositionTypeOld = p.PositionTypeOld == null ? null : p.PositionTypeOld.Name, - PositionLevelOld = p.PositionLevelOld == null ? null : p.PositionLevelOld.Name, - PositionNumberOld = p.PositionNumberOld == null ? null : p.PositionNumberOld.Name, - PositionTypeOldId = p.PositionTypeOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionTypeOld.Id, - PositionLevelOldId = p.PositionLevelOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevelOld.Id, - PositionNumberOldId = p.PositionNumberOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumberOld.Id, - OrganizationPositionOldId = p.OrganizationPositionOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPositionOld.Id, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, p.IsActive, }) .ToListAsync(); @@ -109,6 +106,9 @@ namespace BMA.EHR.Placement.Service.Controllers .Select(p => new { p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, @@ -119,18 +119,15 @@ namespace BMA.EHR.Placement.Service.Controllers p.Status, p.Date, salary = p.AmountOld, - PositionTypeOld = p.PositionTypeOld == null ? null : p.PositionTypeOld.Name, - PositionLevelOld = p.PositionLevelOld == null ? null : p.PositionLevelOld.Name, - PositionNumberOld = p.PositionNumberOld == null ? null : p.PositionNumberOld.Name, - PositionTypeOldId = p.PositionTypeOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionTypeOld.Id, - PositionLevelOldId = p.PositionLevelOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevelOld.Id, - PositionNumberOldId = p.PositionNumberOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumberOld.Id, - OrganizationPositionOldId = p.OrganizationPositionOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPositionOld.Id, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, p.IsActive, }) .ToListAsync(); if (PlacementAdmin == true) - placementTransfers.Where(x => x.Status.Trim().ToUpper().Contains("DONE")); + placementTransfers.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); return Success(placementTransfers); } @@ -153,6 +150,11 @@ namespace BMA.EHR.Placement.Service.Controllers .Select(p => new { p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, @@ -163,13 +165,10 @@ namespace BMA.EHR.Placement.Service.Controllers p.Date, salary = p.AmountOld, p.CreatedAt, - PositionTypeOld = p.PositionTypeOld == null ? null : p.PositionTypeOld.Name, - PositionLevelOld = p.PositionLevelOld == null ? null : p.PositionLevelOld.Name, - PositionNumberOld = p.PositionNumberOld == null ? null : p.PositionNumberOld.Name, - PositionTypeOldId = p.PositionTypeOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionTypeOld.Id, - PositionLevelOldId = p.PositionLevelOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevelOld.Id, - PositionNumberOldId = p.PositionNumberOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionNumberOld.Id, - OrganizationPositionOldId = p.OrganizationPositionOld == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationPositionOld.Id, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, PlacementTransferDocs = p.PlacementTransferDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), }) .FirstOrDefaultAsync(); @@ -188,20 +187,107 @@ namespace BMA.EHR.Placement.Service.Controllers } var _data = new { - Id = data.Id, - Reason = data.Reason, - Status = data.Status, - Organization = data.Organization, - CreatedAt = data.CreatedAt, - Date = data.Date, - salary = data.salary, - PositionTypeOld = data.PositionTypeOld, - PositionLevelOld = data.PositionLevelOld, - PositionNumberOld = data.PositionNumberOld, - PositionTypeOldId = data.PositionTypeOldId, - PositionLevelOldId = data.PositionLevelOldId, - PositionNumberOldId = data.PositionNumberOldId, - OrganizationPositionOldId = data.OrganizationPositionOldId, + data.Id, + data.ProfileId, + data.PrefixId, + data.Prefix, + data.FirstName, + data.LastName, + data.position, + data.posNo, + data.positionLevel, + data.organizationOrganization, + data.Reason, + data.Status, + data.Organization, + data.CreatedAt, + data.Date, + data.salary, + data.PositionTypeOld, + data.PositionLevelOld, + data.PositionNumberOld, + data.OrganizationPositionOld, + Docs = placementTransferDocs, + }; + + return Success(_data); + } + + /// + /// get รายละเอียดคำขอโอนเจ้าหน้าที่ + /// + /// Id คำขอโอน + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.PlacementTransfers.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + PlacementTransferDocs = p.PlacementTransferDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }), + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + var placementTransferDocs = new List(); + foreach (var doc in data.PlacementTransferDocs) + { + var _doc = new + { + FileName = doc.FileName, + PathName = await _documentService.ImagesPath(doc.Id) + }; + placementTransferDocs.Add(_doc); + } + var _data = new + { + data.Id, + data.ProfileId, + data.PrefixId, + data.Prefix, + data.FirstName, + data.LastName, + data.position, + data.posNo, + data.positionLevel, + data.organizationOrganization, + data.Reason, + data.Status, + data.Organization, + data.CreatedAt, + data.Date, + data.salary, + data.PositionTypeOld, + data.PositionLevelOld, + data.PositionNumberOld, + data.OrganizationPositionOld, Docs = placementTransferDocs, }; @@ -224,6 +310,7 @@ namespace BMA.EHR.Placement.Service.Controllers .Include(x => x.PositionType) .Include(x => x.PosNo) .Include(x => x.Salaries) + .Include(x => x.Position) .FirstOrDefaultAsync(x => x.KeycloakId == Guid.Parse(UserId)); if (profile == null) return Error(GlobalMessages.DataNotFound, 404); @@ -235,11 +322,11 @@ namespace BMA.EHR.Placement.Service.Controllers Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", Date = req.Date, AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - PositionLevelOld = profile.PositionLevel, - PositionTypeOld = profile.PositionType, - PositionNumberOld = profile.PosNo, - OrganizationPositionOld = await _context.OrganizationPositions.FirstOrDefaultAsync(x => x.PositionNumber == profile.PosNo), - Status = "PENDING", + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", CreatedUserId = FullName ?? "", CreatedFullName = UserId ?? "System Administrator", CreatedAt = DateTime.Now, @@ -297,33 +384,10 @@ namespace BMA.EHR.Placement.Service.Controllers if (uppdated == null) return Error(GlobalMessages.PlacementTransferNotFound, 404); - if (req.PosNoOld != null) - { - var save_posNo = await _context.PositionNumbers.FindAsync(req.PosNoOld); - if (save_posNo == null) - return Error(GlobalMessages.PositionPosNoNotFound, 404); - uppdated.PositionNumberOld = save_posNo; - - var save_orgPosition = await _context.OrganizationPositions.FirstOrDefaultAsync(x => x.PositionNumber == save_posNo); - if (save_orgPosition == null) - return Error(GlobalMessages.PositionPosNoNotFound, 404); - uppdated.OrganizationPositionOld = save_orgPosition; - } - if (req.PositionLevelOld != null) - { - var save = await _context.PositionLevels.FindAsync(req.PositionLevelOld); - if (save == null) - return Error(GlobalMessages.PositionLevelNotFound, 404); - uppdated.PositionLevelOld = save; - } - if (req.PositionTypeOld != null) - { - var save = await _context.PositionTypes.FindAsync(req.PositionTypeOld); - if (save == null) - return Error(GlobalMessages.PositionTypeNotFound, 404); - uppdated.PositionTypeOld = save; - } - + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; uppdated.AmountOld = req.AmountOld; uppdated.Organization = req.Organization; uppdated.Reason = req.Reason; @@ -353,7 +417,7 @@ namespace BMA.EHR.Placement.Service.Controllers if (uppdated == null) return Error(GlobalMessages.PlacementTransferNotFound, 404); - uppdated.Status = "DONE"; + uppdated.Status = "APPROVE"; uppdated.LastUpdateFullName = FullName ?? "System Administrator"; uppdated.LastUpdateUserId = UserId ?? ""; uppdated.LastUpdatedAt = DateTime.Now; @@ -398,5 +462,33 @@ namespace BMA.EHR.Placement.Service.Controllers return Success(); } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] PlacementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.PlacementTransfers + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } } } diff --git a/BMA.EHR.Placement.Service/Requests/PersonSelectPositionAppointmentRequest.cs b/BMA.EHR.Placement.Service/Requests/PersonSelectPositionAppointmentRequest.cs new file mode 100644 index 00000000..e5542dfc --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PersonSelectPositionAppointmentRequest.cs @@ -0,0 +1,16 @@ +using BMA.EHR.Domain.Models.MetaData; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PersonSelectPositionAppointmentRequest + { + public DateTime? RecruitDate { get; set; } + public Guid? PosNoId { get; set; } + public Guid? PositionId { get; set; } + public Guid? PositionLevelId { get; set; } + public Guid? PositionLineId { get; set; } + public Guid? PositionPathSideId { get; set; } + public Guid? PositionTypeId { get; set; } + } +} \ No newline at end of file diff --git a/BMA.EHR.Placement.Service/Requests/PersonSelectPositionRelocationRequest.cs b/BMA.EHR.Placement.Service/Requests/PersonSelectPositionRelocationRequest.cs new file mode 100644 index 00000000..714fe2e5 --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PersonSelectPositionRelocationRequest.cs @@ -0,0 +1,16 @@ +using BMA.EHR.Domain.Models.MetaData; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PersonSelectPositionRelocationRequest + { + public DateTime? RecruitDate { get; set; } + public Guid? PosNoId { get; set; } + public Guid? PositionId { get; set; } + public Guid? PositionLevelId { get; set; } + public Guid? PositionLineId { get; set; } + public Guid? PositionPathSideId { get; set; } + public Guid? PositionTypeId { get; set; } + } +} \ No newline at end of file diff --git a/BMA.EHR.Placement.Service/Requests/PlacementAddProfileRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementAddProfileRequest.cs new file mode 100644 index 00000000..eee308ea --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementAddProfileRequest.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementAddProfileRequest + { + public Guid Id { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementAppointmentEditRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementAppointmentEditRequest.cs new file mode 100644 index 00000000..9125917b --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementAppointmentEditRequest.cs @@ -0,0 +1,30 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementAppointmentEditRequest + { + public string CitizenId { get; set; } + public Guid PrefixId { get; set; } + public string Firstname { get; set; } + public string Lastname { get; set; } + public DateTime DateOfBirth { get; set; } + public Guid? GenderId { get; set; } + public string? Nationality { get; set; } + public string? Race { get; set; } + public Guid? ReligionId { get; set; } + public Guid? BloodGroupId { get; set; } + public Guid? RelationshipId { get; set; } + public string? TelephoneNumber { get; set; } + public string? Reason { get; set; } + public string? EducationOld { get; set; } + public string? OrganizationPositionOld { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + public DateTime? PositionDate { get; set; } + public List? File { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementAppointmentRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementAppointmentRequest.cs new file mode 100644 index 00000000..64c1b3b5 --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementAppointmentRequest.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementAppointmentRequest + { + public string CitizenId { get; set; } + public Guid Prefix { get; set; } + public string Firstname { get; set; } + public string Lastname { get; set; } + public DateTime DateOfBirth { get; set; } + public Guid? Gender { get; set; } + public string? Nationality { get; set; } + public string? Race { get; set; } + public Guid? Religion { get; set; } + public Guid? BloodGroup { get; set; } + public Guid? Relationship { get; set; } + public string? TelephoneNumber { get; set; } + public List? File { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementOfficerEditRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementOfficerEditRequest.cs new file mode 100644 index 00000000..de6840d4 --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementOfficerEditRequest.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementOfficerEditRequest + { + public string Organization { get; set; } + public string Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public DateTime? Date { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementProfileRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementProfileRequest.cs new file mode 100644 index 00000000..746c8833 --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementProfileRequest.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementProfileRequest + { + public List Id { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementReceiveEditRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementReceiveEditRequest.cs new file mode 100644 index 00000000..296589d9 --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementReceiveEditRequest.cs @@ -0,0 +1,29 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementReceiveEditRequest + { + public string CitizenId { get; set; } + public Guid PrefixId { get; set; } + public string Firstname { get; set; } + public string Lastname { get; set; } + public DateTime DateOfBirth { get; set; } + public Guid? GenderId { get; set; } + public string? Nationality { get; set; } + public string? Race { get; set; } + public Guid? ReligionId { get; set; } + public Guid? BloodGroupId { get; set; } + public Guid? RelationshipId { get; set; } + public string? TelephoneNumber { get; set; } + public string? Reason { get; set; } + public string? EducationOld { get; set; } + public string? OrganizationPositionOld { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + public List? File { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementRelocationEditRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementRelocationEditRequest.cs new file mode 100644 index 00000000..fce9b65a --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementRelocationEditRequest.cs @@ -0,0 +1,29 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementRelocationEditRequest + { + public string CitizenId { get; set; } + public Guid PrefixId { get; set; } + public string Firstname { get; set; } + public string Lastname { get; set; } + public DateTime DateOfBirth { get; set; } + public Guid? GenderId { get; set; } + public string? Nationality { get; set; } + public string? Race { get; set; } + public Guid? ReligionId { get; set; } + public Guid? BloodGroupId { get; set; } + public Guid? RelationshipId { get; set; } + public string? TelephoneNumber { get; set; } + public string? Reason { get; set; } + public string? EducationOld { get; set; } + public string? OrganizationPositionOld { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + public List? File { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementRelocationRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementRelocationRequest.cs new file mode 100644 index 00000000..ae5afeea --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementRelocationRequest.cs @@ -0,0 +1,22 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementRelocationRequest + { + public string CitizenId { get; set; } + public Guid Prefix { get; set; } + public string Firstname { get; set; } + public string Lastname { get; set; } + public DateTime DateOfBirth { get; set; } + public Guid? Gender { get; set; } + public string? Nationality { get; set; } + public string? Race { get; set; } + public Guid? Religion { get; set; } + public Guid? BloodGroup { get; set; } + public Guid? Relationship { get; set; } + public string? TelephoneNumber { get; set; } + public List? File { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementRepatriationEditRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementRepatriationEditRequest.cs new file mode 100644 index 00000000..5d84f9a5 --- /dev/null +++ b/BMA.EHR.Placement.Service/Requests/PlacementRepatriationEditRequest.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Placement.Service.Requests +{ + public class PlacementRepatriationEditRequest + { + public string Organization { get; set; } + public string Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public DateTime? Date { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + } +} diff --git a/BMA.EHR.Placement.Service/Requests/PlacementTransferEditRequest.cs b/BMA.EHR.Placement.Service/Requests/PlacementTransferEditRequest.cs index 293aed82..a2937c9a 100644 --- a/BMA.EHR.Placement.Service/Requests/PlacementTransferEditRequest.cs +++ b/BMA.EHR.Placement.Service/Requests/PlacementTransferEditRequest.cs @@ -7,11 +7,11 @@ namespace BMA.EHR.Placement.Service.Requests { public string Organization { get; set; } public string Reason { get; set; } - public Guid? OrganizationOld { get; set; } + public string? OrganizationPositionOld { get; set; } public DateTime? Date { get; set; } - public Guid? PositionTypeOld { get; set; } - public Guid? PositionLevelOld { get; set; } - public Guid? PosNoOld { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } public double? AmountOld { get; set; } } } diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementDischargeController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementDischargeController.cs new file mode 100644 index 00000000..edb58680 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementDischargeController.cs @@ -0,0 +1,290 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Retirement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Retirement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Retirement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/retirement/discharge")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบปลดออก")] + public class RetirementDischargeController : BaseController + { + private readonly RetirementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public RetirementDischargeController(RetirementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? RetirementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการปลดออกของ Admin + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var retirementDischarges = await _context.RetirementDischarges.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + p.CreatedAt, + p.Organization, + p.Reason, + p.Status, + p.Date, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.IsActive, + }) + .ToListAsync(); + if (RetirementAdmin == true) + retirementDischarges.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); + + return Success(retirementDischarges); + } + + /// + /// get รายละเอียดปลดออกเจ้าหน้าที่ + /// + /// Id ปลดออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.RetirementDischarges.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + return Success(data); + } + + /// + /// สร้างปลดออก + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] RetirementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var retirementDischarge = new RetirementDischarge + { + Profile = profile, + Organization = Request.Form.ContainsKey("Organization") ? Request.Form["Organization"] : "", + Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", + // Date = req.Date, + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.RetirementDischarges.AddAsync(retirementDischarge); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขปลดออก + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] RetirementDischargeEditRequest req, Guid id) + { + var uppdated = await _context.RetirementDischarges + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementDischargeNotFound, 404); + + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.AmountOld = req.AmountOld; + uppdated.Organization = req.Organization; + uppdated.Reason = req.Reason; + uppdated.Date = req.Date; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// อนุมัติปลดออก + /// + /// Id ปลดออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("confirm/{id:length(36)}")] + public async Task> AdminConfirm(Guid id) + { + var uppdated = await _context.RetirementDischarges + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementDischargeNotFound, 404); + + uppdated.Status = "APPROVE"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบปลดออก + /// + /// Id ปลดออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.RetirementDischarges.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + _context.RetirementDischarges.Remove(deleted); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] RetirementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.RetirementDischarges + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementExpulsionController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementExpulsionController.cs new file mode 100644 index 00000000..4dcd2e35 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementExpulsionController.cs @@ -0,0 +1,290 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Retirement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Retirement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Retirement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/retirement/expulsion")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบไล่ออก")] + public class RetirementExpulsionController : BaseController + { + private readonly RetirementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public RetirementExpulsionController(RetirementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? RetirementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการไล่ออกของ Admin + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var retirementExpulsions = await _context.RetirementExpulsions.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + p.CreatedAt, + p.Organization, + p.Reason, + p.Status, + p.Date, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.IsActive, + }) + .ToListAsync(); + if (RetirementAdmin == true) + retirementExpulsions.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); + + return Success(retirementExpulsions); + } + + /// + /// get รายละเอียดไล่ออกเจ้าหน้าที่ + /// + /// Id ไล่ออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.RetirementExpulsions.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + return Success(data); + } + + /// + /// สร้างไล่ออก + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] RetirementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var retirementExpulsion = new RetirementExpulsion + { + Profile = profile, + Organization = Request.Form.ContainsKey("Organization") ? Request.Form["Organization"] : "", + Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", + // Date = req.Date, + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.RetirementExpulsions.AddAsync(retirementExpulsion); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขไล่ออก + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] RetirementExpulsionEditRequest req, Guid id) + { + var uppdated = await _context.RetirementExpulsions + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementExpulsionNotFound, 404); + + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.AmountOld = req.AmountOld; + uppdated.Organization = req.Organization; + uppdated.Reason = req.Reason; + uppdated.Date = req.Date; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// อนุมัติไล่ออก + /// + /// Id ไล่ออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("confirm/{id:length(36)}")] + public async Task> AdminConfirm(Guid id) + { + var uppdated = await _context.RetirementExpulsions + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementExpulsionNotFound, 404); + + uppdated.Status = "APPROVE"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบไล่ออก + /// + /// Id ไล่ออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.RetirementExpulsions.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + _context.RetirementExpulsions.Remove(deleted); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] RetirementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.RetirementExpulsions + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementOtherController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementOtherController.cs new file mode 100644 index 00000000..9e212fdf --- /dev/null +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementOtherController.cs @@ -0,0 +1,292 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Retirement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Retirement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Retirement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/retirement/other")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบอื่นๆ")] + public class RetirementOtherController : BaseController + { + private readonly RetirementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public RetirementOtherController(RetirementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? RetirementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการอื่นๆของ Admin + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var retirementOthers = await _context.RetirementOthers.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + p.CreatedAt, + p.Organization, + p.Reason, + p.Status, + p.Date, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.IsActive, + }) + .ToListAsync(); + if (RetirementAdmin == true) + retirementOthers.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); + + return Success(retirementOthers); + } + + /// + /// get รายละเอียดอื่นๆเจ้าหน้าที่ + /// + /// Id อื่นๆ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.RetirementOthers.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + return Success(data); + } + + /// + /// สร้างอื่นๆ + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] RetirementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var retirementOther = new RetirementOther + { + Profile = profile, + Organization = Request.Form.ContainsKey("Organization") ? Request.Form["Organization"] : "", + Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", + // Date = req.Date, + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.RetirementOthers.AddAsync(retirementOther); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขอื่นๆ + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] RetirementOtherEditRequest req, Guid id) + { + var uppdated = await _context.RetirementOthers + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementOtherNotFound, 404); + + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.AmountOld = req.AmountOld; + uppdated.Organization = req.Organization; + uppdated.Reason = req.Reason; + uppdated.Date = req.Date; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// อนุมัติอื่นๆ + /// + /// Id อื่นๆ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("confirm/{id:length(36)}")] + public async Task> AdminConfirm(Guid id) + { + var uppdated = await _context.RetirementOthers + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementOtherNotFound, 404); + + uppdated.Status = "APPROVE"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบอื่นๆ + /// + /// Id อื่นๆ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.RetirementOthers.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + _context.RetirementOthers.Remove(deleted); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("report/{commandTypeId:length(36)}")] + public async Task> PostToReport([FromBody] RetirementProfileRequest req, Guid commandTypeId) + { + foreach (var item in req.Id) + { + var uppdated = await _context.RetirementOthers + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + + uppdated.CommandType = await _context.CommandTypes.FindAsync(commandTypeId); + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementOutController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementOutController.cs new file mode 100644 index 00000000..cb624f65 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementOutController.cs @@ -0,0 +1,290 @@ +using BMA.EHR.Application.Repositories; +using BMA.EHR.Domain.Common; +using BMA.EHR.Domain.Models.Retirement; +using BMA.EHR.Domain.Shared; +using BMA.EHR.Infrastructure.Persistence; +using BMA.EHR.Retirement.Service.Requests; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using Swashbuckle.AspNetCore.Annotations; +using System.Security.Claims; + +namespace BMA.EHR.Retirement.Service.Controllers +{ + [Route("api/v{version:apiVersion}/retirement/out")] + [ApiVersion("1.0")] + [ApiController] + [Produces("application/json")] + [Authorize] + [SwaggerTag("ระบบให้ออก")] + public class RetirementOutController : BaseController + { + private readonly RetirementRepository _repository; + private readonly ApplicationDBContext _context; + private readonly MinIOService _documentService; + private readonly IHttpContextAccessor _httpContextAccessor; + + public RetirementOutController(RetirementRepository repository, + ApplicationDBContext context, + MinIOService documentService, + IHttpContextAccessor httpContextAccessor) + { + _repository = repository; + _context = context; + _documentService = documentService; + _httpContextAccessor = httpContextAccessor; + } + + #region " Properties " + + private string? UserId => _httpContextAccessor?.HttpContext?.User?.FindFirst(ClaimTypes.NameIdentifier)?.Value; + + private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value; + + private bool? RetirementAdmin => _httpContextAccessor?.HttpContext?.User?.IsInRole("placement1"); + + #endregion + + /// + /// list รายการให้ออกของ Admin + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet()] + public async Task> GetListByAdmin() + { + + var retirementOuts = await _context.RetirementOuts.AsQueryable() + .OrderByDescending(x => x.CreatedAt) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + p.CreatedAt, + p.Organization, + p.Reason, + p.Status, + p.Date, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.IsActive, + }) + .ToListAsync(); + if (RetirementAdmin == true) + retirementOuts.Where(x => x.Status.Trim().ToUpper().Contains("APPROVE")); + + return Success(retirementOuts); + } + + /// + /// get รายละเอียดให้ออกเจ้าหน้าที่ + /// + /// Id ให้ออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("{id:length(36)}")] + public async Task> GetDetailAdmin(Guid id) + { + var data = await _context.RetirementOuts.AsQueryable() + .Where(x => x.Id == id) + .Where(x => x.Profile != null) + .Select(p => new + { + p.Id, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + position = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.Position == null ? null : p.Profile.Position.Name) : p.Profile.PositionEmployeePosition, + posNo = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PosNo == null ? null : p.Profile.PosNo.Name) : p.Profile.PosNoEmployee, + positionLevel = p.Profile.ProfileType.Trim().ToUpper().Contains("OFFICER") ? (p.Profile.PositionLevel == null ? null : p.Profile.PositionLevel.Name) : p.Profile.PositionEmployeeLevel, + organizationOrganization = p.Profile.OrganizationOrganization, + p.Reason, + p.Status, + p.Organization, + p.Date, + salary = p.AmountOld, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + }) + .FirstOrDefaultAsync(); + if (data == null) + return Error(GlobalMessages.DataNotFound, 404); + + return Success(data); + } + + /// + /// สร้างให้ออก + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost()] + public async Task> Post([FromForm] RetirementAddProfileRequest req) + { + var profile = await _context.Profiles + .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) + .FirstOrDefaultAsync(x => x.Id == req.Id); + if (profile == null) + return Error(GlobalMessages.DataNotFound, 404); + + var retirementOut = new RetirementOut + { + Profile = profile, + Organization = Request.Form.ContainsKey("Organization") ? Request.Form["Organization"] : "", + Reason = Request.Form.ContainsKey("Reason") ? Request.Form["Reason"] : "", + // Date = req.Date, + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", + CreatedUserId = FullName ?? "", + CreatedFullName = UserId ?? "System Administrator", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + await _context.RetirementOuts.AddAsync(retirementOut); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// แก้ไขให้ออก + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPut("{id:length(36)}")] + public async Task> Put([FromBody] RetirementOutEditRequest req, Guid id) + { + var uppdated = await _context.RetirementOuts + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementOutNotFound, 404); + + uppdated.PositionNumberOld = req.PositionNumberOld; + uppdated.OrganizationPositionOld = req.OrganizationPositionOld; + uppdated.PositionLevelOld = req.PositionLevelOld; + uppdated.PositionTypeOld = req.PositionTypeOld; + uppdated.AmountOld = req.AmountOld; + uppdated.Organization = req.Organization; + uppdated.Reason = req.Reason; + uppdated.Date = req.Date; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// อนุมัติให้ออก + /// + /// Id ให้ออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("confirm/{id:length(36)}")] + public async Task> AdminConfirm(Guid id) + { + var uppdated = await _context.RetirementOuts + .FirstOrDefaultAsync(x => x.Id == id); + if (uppdated == null) + return Error(GlobalMessages.RetirementOutNotFound, 404); + + uppdated.Status = "APPROVE"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// ลบให้ออก + /// + /// Id ให้ออก + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpDelete("{id:length(36)}")] + public async Task> Delete(Guid id) + { + var deleted = await _context.RetirementOuts.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == id); + if (deleted == null) + return NotFound(); + _context.RetirementOuts.Remove(deleted); + await _context.SaveChangesAsync(); + + return Success(); + } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] RetirementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.RetirementOuts + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } + } +} diff --git a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs index 177386c4..1352fce4 100644 --- a/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs +++ b/BMA.EHR.Retirement.Service/Controllers/RetirementResignController.cs @@ -107,11 +107,11 @@ namespace BMA.EHR.Retirement.Service.Controllers p.ActiveDate, p.Reason, p.Status, - PositionType = p.PositionType == null ? null : p.PositionType.Name, - PositionLine = p.PositionLine == null ? null : p.PositionLine.Name, - PositionLevel = p.PositionLevel == null ? null : p.PositionLevel.Name, - PositionExecutive = p.PositionExecutive == null ? null : p.PositionExecutive.Name, - OrganizationOrganization = p.OrganizationOrganization == null ? null : p.OrganizationOrganization.Name, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, p.IsActive, p.CreatedAt, }) @@ -147,16 +147,11 @@ namespace BMA.EHR.Retirement.Service.Controllers p.ActiveDate, p.Reason, p.Status, - PositionType = p.PositionType == null ? null : p.PositionType.Name, - PositionTypeId = p.PositionType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionType.Id, - PositionLine = p.PositionLine == null ? null : p.PositionLine.Name, - PositionLineId = p.PositionLine == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLine.Id, - PositionLevel = p.PositionLevel == null ? null : p.PositionLevel.Name, - PositionLevelId = p.PositionLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionLevel.Id, - PositionExecutive = p.PositionExecutive == null ? null : p.PositionExecutive.Name, - PositionExecutiveId = p.PositionExecutive == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PositionExecutive.Id, - OrganizationOrganization = p.OrganizationOrganization == null ? null : p.OrganizationOrganization.Name, - OrganizationOrganizationId = p.OrganizationOrganization == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OrganizationOrganization.Id, + salary = p.AmountOld, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, p.IsActive, p.CreatedAt, }) @@ -179,8 +174,11 @@ namespace BMA.EHR.Retirement.Service.Controllers public async Task> Post([FromForm] RetirementResignRequest req) { var profile = await _context.Profiles - .Include(x => x.PositionType) .Include(x => x.PositionLevel) + .Include(x => x.PositionType) + .Include(x => x.PosNo) + .Include(x => x.Salaries) + .Include(x => x.Position) .FirstOrDefaultAsync(x => x.KeycloakId == Guid.Parse(UserId)); if (profile == null) return Error(GlobalMessages.DataNotFound, 404); @@ -192,15 +190,12 @@ namespace BMA.EHR.Retirement.Service.Controllers SendDate = req.SendDate, ActiveDate = req.ActiveDate, Reason = req.Reason, - PositionType = profile.PositionType, - PositionLine = await _context.PositionLines - .FirstOrDefaultAsync(x => x.Id == profile.PositionLineId), - PositionLevel = profile.PositionLevel, - PositionExecutive = await _context.PositionExecutives - .FirstOrDefaultAsync(x => x.Id == profile.PositionExecutiveId), - OrganizationOrganization = await _context.OrganizationOrganizations - .FirstOrDefaultAsync(x => x.Id == profile.OrganizationOrganizationId), - Status = "PENDING", + AmountOld = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + PositionLevelOld = profile.PositionLevel == null ? null : profile.PositionLevel.Name, + PositionTypeOld = profile.PositionType == null ? null : profile.PositionType.Name, + PositionNumberOld = profile.PosNo == null ? null : profile.PosNo.Name, + OrganizationPositionOld = profile.Position == null ? profile.Oc : $"{profile.Position.Name}-{profile.Oc}", + Status = "WAITTING", IsActive = true, CreatedUserId = FullName ?? "", CreatedFullName = UserId ?? "System Administrator", @@ -235,6 +230,11 @@ namespace BMA.EHR.Retirement.Service.Controllers updated.SendDate = req.SendDate; updated.ActiveDate = req.ActiveDate; updated.Reason = req.Reason; + updated.OrganizationPositionOld = req.OrganizationPositionOld; + updated.PositionTypeOld = req.PositionTypeOld; + updated.PositionLevelOld = req.PositionLevelOld; + updated.PositionNumberOld = req.PositionNumberOld; + updated.AmountOld = req.AmountOld; updated.LastUpdateFullName = FullName ?? "System Administrator"; updated.LastUpdateUserId = UserId ?? ""; updated.LastUpdatedAt = DateTime.Now; @@ -315,5 +315,33 @@ namespace BMA.EHR.Retirement.Service.Controllers return Success(); } + + /// + /// สั่งรายชื่อไปออกคำสั่ง + /// + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpPost("report")] + public async Task> PostToReport([FromBody] RetirementProfileRequest req) + { + foreach (var item in req.Id) + { + var uppdated = await _context.RetirementResigns + .FirstOrDefaultAsync(x => x.Id == item); + if (uppdated == null) + continue; + uppdated.Status = "REPORT"; + uppdated.LastUpdateFullName = FullName ?? "System Administrator"; + uppdated.LastUpdateUserId = UserId ?? ""; + uppdated.LastUpdatedAt = DateTime.Now; + } + + await _context.SaveChangesAsync(); + + return Success(); + } } } diff --git a/BMA.EHR.Retirement.Service/Requests/PersonSelectPositionReceiveRequest.cs b/BMA.EHR.Retirement.Service/Requests/PersonSelectPositionReceiveRequest.cs new file mode 100644 index 00000000..22500dcd --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/PersonSelectPositionReceiveRequest.cs @@ -0,0 +1,16 @@ +using BMA.EHR.Domain.Models.MetaData; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class PersonSelectPositionReceiveRequest + { + public DateTime? RecruitDate { get; set; } + public Guid? PosNoId { get; set; } + public Guid? PositionId { get; set; } + public Guid? PositionLevelId { get; set; } + public Guid? PositionLineId { get; set; } + public Guid? PositionPathSideId { get; set; } + public Guid? PositionTypeId { get; set; } + } +} \ No newline at end of file diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementAddProfileRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementAddProfileRequest.cs new file mode 100644 index 00000000..902be976 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementAddProfileRequest.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementAddProfileRequest + { + public Guid Id { get; set; } + } +} \ No newline at end of file diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementDischargeEditRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementDischargeEditRequest.cs new file mode 100644 index 00000000..19bcf675 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementDischargeEditRequest.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementDischargeEditRequest + { + public string Organization { get; set; } + public string Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public DateTime? Date { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + } +} diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementExpulsionEditRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementExpulsionEditRequest.cs new file mode 100644 index 00000000..8e44031b --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementExpulsionEditRequest.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementExpulsionEditRequest + { + public string Organization { get; set; } + public string Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public DateTime? Date { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + } +} diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementOtherEditRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementOtherEditRequest.cs new file mode 100644 index 00000000..3a8757d3 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementOtherEditRequest.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementOtherEditRequest + { + public string Organization { get; set; } + public string Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public DateTime? Date { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + } +} diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementOutEditRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementOutEditRequest.cs new file mode 100644 index 00000000..4bc7c55f --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementOutEditRequest.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementOutEditRequest + { + public string Organization { get; set; } + public string Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public DateTime? Date { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } + } +} diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementProfileRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementProfileRequest.cs new file mode 100644 index 00000000..0c169191 --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementProfileRequest.cs @@ -0,0 +1,10 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementProfileRequest + { + public List Id { get; set; } + } +} diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementResignEditRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementResignEditRequest.cs new file mode 100644 index 00000000..0a55d5cb --- /dev/null +++ b/BMA.EHR.Retirement.Service/Requests/RetirementResignEditRequest.cs @@ -0,0 +1,13 @@ +using BMA.EHR.Domain.Models.MetaData; +using Microsoft.EntityFrameworkCore; + +namespace BMA.EHR.Retirement.Service.Requests +{ + public class RetirementResignEditRequest + { + public string? Location { get; set; } + public DateTime? SendDate { get; set; } + public DateTime? ActiveDate { get; set; } + public string? Reason { get; set; } + } +} diff --git a/BMA.EHR.Retirement.Service/Requests/RetirementResignRequest.cs b/BMA.EHR.Retirement.Service/Requests/RetirementResignRequest.cs index 9dc271d7..adf0a1ce 100644 --- a/BMA.EHR.Retirement.Service/Requests/RetirementResignRequest.cs +++ b/BMA.EHR.Retirement.Service/Requests/RetirementResignRequest.cs @@ -9,5 +9,10 @@ namespace BMA.EHR.Retirement.Service.Requests public DateTime? SendDate { get; set; } public DateTime? ActiveDate { get; set; } public string? Reason { get; set; } + public string? OrganizationPositionOld { get; set; } + public string? PositionTypeOld { get; set; } + public string? PositionLevelOld { get; set; } + public string? PositionNumberOld { get; set; } + public double? AmountOld { get; set; } } }