From 482211053361c1d249df81131761375d3bb32569 Mon Sep 17 00:00:00 2001 From: kittapath Date: Mon, 18 Nov 2024 18:43:46 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=20api=20=E0=B8=A5?= =?UTF-8?q?=E0=B8=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/InsigniaPeriodsRepository.cs | 3057 +-- .../Repositories/UserProfileRepository.cs | 35 +- .../Requests/InsigniaResultSet.cs | 21 +- .../Profiles/GetProfileByKeycloakIdDto.cs | 16 +- .../Profiles/GetProfileByRootIdDto.cs | 12 +- .../Insignias/InsigniaManageOrganiation.cs | 2 + .../Models/Insignias/InsigniaManageProfile.cs | 2 + .../Models/Insignias/InsigniaNote.cs | 7 - .../Models/Insignias/InsigniaNoteProfile.cs | 2 + .../Insignias/InsigniaRequestProfile.cs | 3 +- ...date table insignia add rootid.Designer.cs | 19178 ++++++++++++++++ ...093933_update table insignia add rootid.cs | 97 + .../ApplicationDBContextModelSnapshot.cs | 22 + .../Controllers/InsigniaManageController.cs | 148 +- .../Controllers/InsigniaPeriodController.cs | 3 - .../Controllers/InsigniaReceiveController.cs | 141 - .../Controllers/InsigniaRequestController.cs | 711 +- .../Requests/AddUserRequestInsigniaRequest.cs | 1 - .../Controllers/LeaveReportController.cs | 8 +- .../Controllers/LeaveRequestController.cs | 12 +- 20 files changed, 20695 insertions(+), 2783 deletions(-) create mode 100644 BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.Designer.cs create mode 100644 BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.cs diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs index fb87ae2e..7edb2d48 100644 --- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs +++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs @@ -92,19 +92,6 @@ namespace BMA.EHR.Application.Repositories }) .FirstOrDefault(); - //var insignia = _dbContext.Set() - // .Include(x => x.InsigniaType) - // .Where(x => x.Name == name) - // .Select(i => new InsigniaItem - // { - // Id = i.Id, - // Name = i.Name, - // ShortName = i.ShortName, - // Level = i.InsigniaType.Name, - // LevelId = i.InsigniaType.Id - // }) - // .FirstOrDefault(); - return insignia; } catch @@ -129,19 +116,6 @@ namespace BMA.EHR.Application.Repositories }) .FirstOrDefault(); - //var insignia = _dbContext.Set() - // .Include(x => x.InsigniaType) - // .Where(x => x.Id == id) - // .Select(i => new InsigniaItem - // { - // Id = i.Id, - // Name = i.Name, - // ShortName = i.ShortName, - // Level = i.InsigniaType.Name, - // LevelId = i.InsigniaType.Id - // }) - // .FirstOrDefault(); - return insignia; } catch @@ -217,23 +191,6 @@ namespace BMA.EHR.Application.Repositories else return false; } - // private InsigniaItem GetNextInsignia(string name) - // { - // if (name.Contains("ตริตาภรณ์มงกุฎไทย")) - // return GetInsigniaByName("ตริตาภรณ์ช้างเผือก"); - // else if (name.Contains("ตริตาภรณ์ช้างเผือก")) - // return GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"); - // else if (name.Contains("ทวีติยาภรณ์มงกุฎไทย")) - // return GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"); - // else if (name.Contains("ทวีติยาภรณ์ช้างเผือก")) - // return GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"); - // else if (name.Contains("ประถมาภรณ์มงกุฎไทย")) - // return GetInsigniaByName("ประถมาภรณ์ช้างเผือก"); - // else if (name.Contains("ประถมาภรณ์ช้างเผือก")) - // return GetInsigniaByName("มหาวชิรมงกุฎ"); - // else return null; - // } - private bool CanRequestInsignia(Guid profileId, int year) { try @@ -286,26 +243,15 @@ namespace BMA.EHR.Application.Repositories { try { - //var allOc = GetAllIdByRoot(ocId); - var period = await _dbContext.Set().FirstOrDefaultAsync(p => p.Id == periodId); if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - //var oc = await _dbContext.Set().FirstOrDefaultAsync(x => x.Id == ocId); - - //if (oc == null) - // throw new Exception(GlobalMessages.OCNotFound); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var coinInsignia = await _dbContext.Set() .FirstOrDefaultAsync(x => x.Name.Contains("เหรียญจักรพรรดิมาลา")); - // var allProfilesByRoot = - // (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken)); - var inst_profile = allProfilesByRoot .Select(p => new { @@ -318,41 +264,33 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null - : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! - .InsigniaId.Value).Name, + : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! + .Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + p.Amount, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }); @@ -372,7 +310,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -384,6 +322,10 @@ namespace BMA.EHR.Application.Repositories LastInsignia = p.LastInsignia, LastInsigniaId = p.LastInsigniaId, Salary = p.Salary, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"), Seq = 1, Gender = p.Gender, @@ -418,7 +360,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == bcpRoyal.Id) .ToList() .Count() == 0) - //where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == bcpRoyal.Id) select new { ProfileId = p.Id, @@ -430,49 +371,38 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null - : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! - .InsigniaId.Value).Name, + : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! + .Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()! - .PositionSalaryAmount, - - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() + p.Amount, + IsHigherLevel = IsHigherLevel(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "เบญจมาภรณ์ช้างเผือก"), - FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault() == null ? 0 : @@ -490,7 +420,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -502,6 +432,10 @@ namespace BMA.EHR.Application.Repositories LastInsignia = p.LastInsignia, LastInsigniaId = p.LastInsigniaId, Salary = p.Salary, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, RequestInsignia = GetInsigniaByName("เบญจมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, @@ -531,7 +465,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == jtmRoyal.Id) .ToList() .Count() == 0) - //where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == jtmRoyal.Id) select new { ProfileId = p.Id, @@ -543,55 +476,45 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + : p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null - : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! - .InsigniaId.Value).Name, + : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! + .Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()! - .PositionSalaryAmount, - - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() + p.Amount, + IsHigherLevel = IsHigherLevel(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "จัตุรถาภรณ์มงกุฎไทย"), - FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcmRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => (x.SalaryCondition >= 8340 && x.SalaryCondition < 10150) && !x.IsHigherLevel) @@ -604,7 +527,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -633,7 +556,11 @@ namespace BMA.EHR.Application.Repositories $"2.ได้ บ.ช. มาแล้วไม่น้อยกว่า 5 ปี บริบูรณ์ (ได้รับ บ.ช. ก่อนวันที่ {(new DateTime(period.Year - 5, 7, 28)).ToThaiFullDate3()})", Result = $"ได้รับ บ.ช. ในปี {p.FirstRecvInsigniaYear}" } - } + }, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList(); @@ -712,26 +639,16 @@ namespace BMA.EHR.Application.Repositories { try { - // var allOc = GetAllIdByRoot(ocId); - var period = await _dbContext.Set().FirstOrDefaultAsync(p => p.Id == periodId); if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - //var oc = await _dbContext.Set().FirstOrDefaultAsync(x => x.Id == ocId); - - //if (oc == null) - // throw new Exception(GlobalMessages.OCNotFound); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var coinInsignia = await _dbContext.Set() .FirstOrDefaultAsync(x => x.Name.Contains("เหรียญจักรพรรดิมาลา")); - // var allProfilesByRoot = - // (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken)); - var inst_profile = allProfilesByRoot .Select(p => new { @@ -744,41 +661,33 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null - : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! - .InsigniaId.Value).Name, + : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! + .Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + p.Amount, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }); var s1 = ((from p in inst_profile @@ -795,7 +704,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -810,6 +719,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"), Seq = 1, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -843,7 +756,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == jtmRoyal.Id) .ToList() .Count() == 0) - //where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == jtmRoyal.Id) select new { ProfileId = p.Id, @@ -855,55 +767,43 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null - : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! - .InsigniaId.Value).Name, + : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! + .Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()! - .PositionSalaryAmount, - - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() + p.Amount, + IsHigherLevel = IsHigherLevel(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "จัตุรถาภรณ์มงกุฎไทย"), - FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcpRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == bcpRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => (x.SalaryCondition >= 10150) && !x.IsHigherLevel) @@ -916,7 +816,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -931,6 +831,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -956,7 +860,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == jtcRoyal.Id) .ToList() .Count() == 0) - //where !(p.ProfileInsignia.Where(x => x.InsigniaId != coinInsignia.Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId == jtcRoyal.Id) select new { ProfileId = p.Id, @@ -968,55 +871,43 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null - : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! - .InsigniaId.Value).Name, + : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()! + .Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()! - .PositionSalaryAmount, - - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() + p.Amount, + IsHigherLevel = IsHigherLevel(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "จัตุรถาภรณ์ช้างเผือก"), - FirstRecvInsigniaYear = p.ProfileInsignia == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == jtmRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == jtmRoyal.Id).OrderBy(x => x.Year) .FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => (x.SalaryCondition >= 10150) && !x.IsHigherLevel) @@ -1029,7 +920,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -1044,6 +935,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -1141,23 +1036,11 @@ namespace BMA.EHR.Application.Repositories { try { - //var allOc = GetAllIdByRoot(ocId); - var period = await _dbContext.Set().FirstOrDefaultAsync(p => p.Id == periodId); if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - //var oc = await _dbContext.Set().FirstOrDefaultAsync(x => x.Id == ocId); - - //if (oc == null) - // throw new Exception(GlobalMessages.OCNotFound); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var inst_profile = allProfilesByRoot .Select(p => new { @@ -1167,54 +1050,44 @@ namespace BMA.EHR.Application.Repositories p.LastName, p.BirthDate, p.DateAppoint, - Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, - ProfileInsignia = p.ProfileInsignia + p.Amount, + ProfileInsignia = p.ProfileInsignia, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }); // check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5 @@ -1223,11 +1096,6 @@ namespace BMA.EHR.Application.Repositories && p.LastInsigniaId == Guid.Parse("00000000-0000-0000-0000-000000000000") && p.PositionLevelName == "ปฏิบัติงาน" // ปฏิบัติงาน && p.ProfileInsignia == null - //&& p.ProfileInsignia.Count > 0 - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id && - // x.InsigniaId.Value == GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย").Id) - // .ToList() - // .Count() == 0) select p) .ToList() .Select(p => new InsigniaResultSet @@ -1238,7 +1106,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -1253,6 +1121,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("เบญจมาภรณ์มงกุฎไทย"), Seq = 1, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -1264,8 +1136,8 @@ namespace BMA.EHR.Application.Repositories })).ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + where p.PosType == "ทั่วไป" + && p.PosLevel == "ปฏิบัติงาน" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -1273,9 +1145,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -1287,53 +1156,45 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, + IsHigherLevel = IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "เบญจมาภรณ์ช้างเผือก"), - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.SalaryCondition < 10190 && !x.IsHigherLevel) @@ -1346,7 +1207,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -1361,6 +1222,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("เบญจมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -1380,8 +1245,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + where p.PosType == "ทั่วไป" + && p.PosLevel == "ปฏิบัติงาน" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -1389,9 +1254,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -1403,61 +1265,51 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "จัตุรถาภรณ์มงกุฎไทย"), + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.SalaryCondition >= 10190 && !x.IsHigherLevel) @@ -1469,7 +1321,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -1484,6 +1336,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย"), Seq = 3, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -1497,8 +1353,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s4 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + where p.PosType == "ทั่วไป" + && p.PosLevel == "ปฏิบัติงาน" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -1506,13 +1362,9 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, - p.CitizenId, p.FirstName, p.LastName, @@ -1521,61 +1373,51 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "จัตุรถาภรณ์ช้างเผือก"), + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.SalaryCondition >= 10190 && !x.IsHigherLevel) @@ -1588,7 +1430,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -1603,6 +1445,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก"), Seq = 4, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -1720,16 +1566,10 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - var CurrentRetireDate = new DateTime(period.Year, 9, 30); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ชำนาญงาน" + where p.PosType == "ทั่วไป" + && p.PosLevel == "ชำนาญงาน" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -1745,68 +1585,56 @@ namespace BMA.EHR.Application.Repositories p.LastName, p.BirthDate, p.DateAppoint, - Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ตริตาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -1817,13 +1645,12 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, FullName = p.FullName, Position = p.Position, - PosNo = p.PosNo, Rank = p.Rank, GovAge = p.GovAge, @@ -1833,6 +1660,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -1845,8 +1676,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ชำนาญงาน" + where p.PosType == "ทั่วไป" + && p.PosLevel == "ชำนาญงาน" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -1854,9 +1685,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -1865,73 +1693,61 @@ namespace BMA.EHR.Application.Repositories p.LastName, p.BirthDate, p.DateAppoint, - Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ตริตาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date) - .FirstOrDefault().Date + .FirstOrDefault().Date, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.FirstPositonLevelDate < new DateTime(period.Year - 5, 5, 29)) @@ -1943,7 +1759,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -1958,6 +1774,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2033,15 +1853,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "อาวุโส" + where p.PosType == "ทั่วไป" + && p.PosLevel == "อาวุโส" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -2049,9 +1865,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -2063,69 +1876,58 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - - - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) - .FirstOrDefault().Date + .FirstOrDefault().Date, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -2136,7 +1938,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -2151,6 +1953,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2163,8 +1969,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "อาวุโส" + where p.PosType == "ทั่วไป" + && p.PosLevel == "อาวุโส" && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -2172,9 +1978,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -2183,71 +1986,61 @@ namespace BMA.EHR.Application.Repositories p.LastName, p.BirthDate, p.DateAppoint, - Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) - .FirstOrDefault().Date + .FirstOrDefault().Date, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.FirstPositonLevelDate < new DateTime(period.Year - 5, 5, 29)) @@ -2259,7 +2052,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -2274,6 +2067,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2349,16 +2146,12 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && (p.PosLevel.PosLevelName == "อาวุโส" || - p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + where p.PosType == "ทั่วไป" + && (p.PosLevel == "อาวุโส" || + p.PosLevel == "อาวุโส (เฉพาะสายงาน)") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -2366,9 +2159,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -2377,71 +2167,61 @@ namespace BMA.EHR.Application.Repositories p.LastName, p.BirthDate, p.DateAppoint, - Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) - .FirstOrDefault().Date + .FirstOrDefault().Date, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -2452,7 +2232,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -2467,6 +2247,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2479,9 +2263,9 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && (p.PosLevel.PosLevelName == "อาวุโส" || - p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + where p.PosType == "ทั่วไป" + && (p.PosLevel == "อาวุโส" || + p.PosLevel == "อาวุโส (เฉพาะสายงาน)") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -2489,9 +2273,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -2503,62 +2284,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -2570,7 +2338,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3) @@ -2582,7 +2354,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -2597,6 +2369,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2610,9 +2386,9 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "ทั่วไป" - && (p.PosLevel.PosLevelName == "อาวุโส" || - p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + where p.PosType == "ทั่วไป" + && (p.PosLevel == "อาวุโส" || + p.PosLevel == "อาวุโส (เฉพาะสายงาน)") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -2620,9 +2396,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -2634,62 +2407,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -2701,7 +2461,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 5) @@ -2713,7 +2477,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -2728,6 +2492,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2826,13 +2594,10 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" + where p.PosType == "วิชาการ" && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id && @@ -2850,62 +2615,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ตริตาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -2917,7 +2669,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -2928,7 +2684,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -2943,6 +2699,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ตริตาภรณ์มงกุฎไทย"), Seq = 1, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -2999,14 +2759,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ชำนาญการ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3014,9 +2771,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -3028,63 +2782,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, - + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ตริตาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -3096,7 +2836,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -3107,7 +2851,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -3122,6 +2866,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ตริตาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -3134,8 +2882,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ชำนาญการ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3143,9 +2891,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -3157,62 +2902,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -3224,7 +2956,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.SalaryCondition >= 22140) @@ -3236,7 +2972,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -3251,6 +2987,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -3265,8 +3005,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ชำนาญการ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3274,9 +3014,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -3288,62 +3025,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year - 5, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year - 5, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -3355,7 +3079,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.SalaryCondition >= 22140) @@ -3367,7 +3095,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -3382,6 +3110,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -3477,14 +3209,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ชำนาญการพิเศษ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3492,9 +3221,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -3506,62 +3232,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -3573,7 +3286,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -3584,7 +3301,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -3611,8 +3328,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ชำนาญการพิเศษ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3620,9 +3337,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -3634,62 +3348,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์มงกุฎไทย"), - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -3701,7 +3403,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.SalaryCondition >= 58390) @@ -3714,7 +3420,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -3729,6 +3435,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -3811,14 +3521,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "เชี่ยวชาญ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3826,9 +3533,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -3840,62 +3544,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -3907,7 +3598,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -3918,7 +3613,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -3933,6 +3628,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -3946,8 +3645,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "เชี่ยวชาญ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -3955,9 +3654,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -3969,62 +3665,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์มงกุฎไทย"), - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -4036,7 +3720,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -4048,7 +3736,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -4063,6 +3751,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -4076,8 +3768,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "เชี่ยวชาญ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -4085,9 +3777,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -4099,62 +3788,49 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -4166,7 +3842,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5) @@ -4178,7 +3858,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -4193,6 +3873,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -4286,14 +3970,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ทรงคุณวุฒิ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -4301,9 +3982,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -4315,65 +3993,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -4385,7 +4048,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3) @@ -4398,7 +4065,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -4413,6 +4080,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -4431,8 +4102,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ทรงคุณวุฒิ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -4440,9 +4111,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id select new { ProfileId = p.Id, @@ -4454,63 +4122,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - + p.Amount, PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาวชิรมงกุฎ"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -4522,7 +4177,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -4535,7 +4194,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -4550,6 +4209,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -4568,8 +4231,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ทรงคุณวุฒิ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -4577,9 +4240,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -4591,65 +4251,52 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + p.Amount, - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาปรมาภรณ์ช้างเผือก"), - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -4659,7 +4306,11 @@ namespace BMA.EHR.Application.Repositories p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5) @@ -4672,7 +4323,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -4687,6 +4338,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -4783,15 +4438,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ทรงคุณวุฒิ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -4799,9 +4450,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -4813,65 +4461,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -4883,7 +4516,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(x => x.FirstRecvInsigniaYear != 0 && x.FirstRecvInsigniaYear <= period.Year - 3) @@ -4896,7 +4533,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -4911,6 +4548,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -4929,8 +4570,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ทรงคุณวุฒิ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -4938,9 +4579,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id select new { ProfileId = p.Id, @@ -4952,65 +4590,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาวชิรมงกุฎ"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -5022,7 +4645,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -5035,7 +4662,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -5050,6 +4677,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -5068,8 +4699,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "วิชาการ" - && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + where p.PosType == "วิชาการ" + && (p.PosLevel == "ทรงคุณวุฒิ") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -5077,9 +4708,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -5091,65 +4719,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาปรมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date) .FirstOrDefault() == null ? null : @@ -5159,7 +4772,11 @@ namespace BMA.EHR.Application.Repositories p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -5172,7 +4789,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -5187,6 +4804,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -5282,15 +4903,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "อำนวยการ" - && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + where p.PosType == "อำนวยการ" + && (p.PosLevel == "ต้น") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -5298,9 +4915,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -5312,63 +4926,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - + p.Amount, PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ทวีติยาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -5378,7 +4979,11 @@ namespace BMA.EHR.Application.Repositories p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Select(p => new InsigniaResultSet @@ -5389,7 +4994,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -5404,6 +5009,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -5416,8 +5025,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "อำนวยการ" - && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + where p.PosType == "อำนวยการ" + && (p.PosLevel == "ต้น") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -5425,9 +5034,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -5439,65 +5045,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -5509,7 +5100,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.SalaryCondition >= 58390) @@ -5522,7 +5117,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -5537,6 +5132,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -5613,15 +5212,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "อำนวยการ" - && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + where p.PosType == "อำนวยการ" + && (p.PosLevel == "สูง") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -5629,9 +5224,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -5643,65 +5235,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -5713,7 +5290,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -5725,7 +5306,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -5740,6 +5321,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -5753,8 +5338,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "อำนวยการ" - && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + where p.PosType == "อำนวยการ" + && (p.PosLevel == "สูง") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -5762,9 +5347,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -5776,65 +5358,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -5846,7 +5413,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -5858,7 +5429,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -5873,6 +5444,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -5887,8 +5462,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "อำนวยการ" - && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + where p.PosType == "อำนวยการ" + && (p.PosLevel == "สูง") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -5896,9 +5471,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id select new { ProfileId = p.Id, @@ -5910,65 +5482,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาวชิรมงกุฎ"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -5980,7 +5537,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5) @@ -5992,7 +5553,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6007,6 +5568,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -6097,15 +5662,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "บริหาร" - && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + where p.PosType == "บริหาร" + && (p.PosLevel == "ต้น") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -6113,9 +5674,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id select new { ProfileId = p.Id, @@ -6127,65 +5685,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์มงกุฎไทย"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -6197,7 +5740,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -6209,7 +5756,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6224,6 +5771,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์มงกุฎไทย"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -6237,8 +5788,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "บริหาร" - && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + where p.PosType == "บริหาร" + && (p.PosLevel == "ต้น") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -6246,9 +5797,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -6260,65 +5808,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -6330,7 +5863,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -6342,7 +5879,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6357,6 +5894,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -6370,8 +5911,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "บริหาร" - && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + where p.PosType == "บริหาร" + && (p.PosLevel == "ต้น") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -6379,9 +5920,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id select new { ProfileId = p.Id, @@ -6393,65 +5931,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาวชิรมงกุฎ"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -6463,7 +5986,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5) @@ -6475,7 +6002,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6490,6 +6017,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -6551,15 +6082,11 @@ namespace BMA.EHR.Application.Repositories if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - - // var allProfilesByRoot = - // (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var CurrentRetireDate = new DateTime(period.Year, 9, 30); var s1 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "บริหาร" - && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + where p.PosType == "บริหาร" + && (p.PosLevel == "สูง") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -6567,9 +6094,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -6581,65 +6105,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "ประถมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -6651,7 +6160,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -6664,7 +6177,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6679,6 +6192,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("ประถมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -6697,8 +6214,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s2 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "บริหาร" - && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + where p.PosType == "บริหาร" + && (p.PosLevel == "สูง") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -6706,9 +6223,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id select new { ProfileId = p.Id, @@ -6720,65 +6234,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาวชิรมงกุฎ"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -6790,7 +6289,11 @@ namespace BMA.EHR.Application.Repositories .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia .Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 3) @@ -6803,7 +6306,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6818,6 +6321,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาวชิรมงกุฎ"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -6836,8 +6343,8 @@ namespace BMA.EHR.Application.Repositories .ToList(); var s3 = (from p in allProfilesByRoot - where p.PosType.PosTypeName == "บริหาร" - && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + where p.PosType == "บริหาร" + && (p.PosLevel == "สูง") // อาวุโส && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && (p.ProfileInsignia.Where(x => @@ -6845,9 +6352,6 @@ namespace BMA.EHR.Application.Repositories x.InsigniaId.Value == GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id) .ToList() .Count() == 0) - //&& p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - // .OrderByDescending(x => x.Year) - // .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id select new { ProfileId = p.Id, @@ -6859,65 +6363,50 @@ namespace BMA.EHR.Application.Repositories Prefix = p.Prefix == null ? null : p.Prefix, FullName = $"{(p.Prefix == null ? null : p.Prefix)}{p.FirstName} {p.LastName}", Position = p.Position == null ? null : p.Position, - Rank = p.PosLevel.PosLevelName, + Rank = p.PosLevel, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? null - : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, + SalaryPosition = p.PositionSalaryAmount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + p.Amount, + PosNo = p.PosNo, Gender = p.Gender == null ? null : p.Gender, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, IsHigherLevel = p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? true - : IsHigherLevel(GetInsigniaById(p.ProfileInsignia + : IsHigherLevel(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) - .FirstOrDefault().InsigniaId.Value).Name, + .FirstOrDefault().Insignia, "มหาปรมาภรณ์ช้างเผือก"), - - PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, - PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, + PositionLevel = p.PosLevel == null ? "" : p.PosLevel, + PositionType = p.PosType == null ? "" : p.PosType, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร") .OrderBy(p => p.Date).FirstOrDefault() == null ? null : @@ -6927,7 +6416,11 @@ namespace BMA.EHR.Application.Repositories p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) .OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id) - .OrderBy(x => x.Year).FirstOrDefault().Year + .OrderBy(x => x.Year).FirstOrDefault().Year, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, }) .ToList() .Where(p => p.FirstRecvInsigniaYear != 0 && p.FirstRecvInsigniaYear <= period.Year - 5) @@ -6940,7 +6433,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, Prefix = p.Prefix, @@ -6955,6 +6448,10 @@ namespace BMA.EHR.Application.Repositories RequestInsignia = GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก"), Seq = 2, Gender = p.Gender, + PositionSalaryAmount = p.PositionSalaryAmount, + Amount = p.Amount, + RootId = p.RootId, + Root = p.Root, MatchingConditions = new List { new MatchingCondition @@ -7030,17 +6527,12 @@ namespace BMA.EHR.Application.Repositories try { var result_candidate = new List(); - - //if (ocId != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) return result_candidate; - var allOfficerProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - var allEmployeeProfileByRoot = - (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken)); + //var allEmployeeProfileByRoot = + // (await _userProfileRepository.GetEmployeeProfileByRootIdAsync(ocId, AccessToken)); var type_coin = await GetCoinCandidate(periodId, ocId, allOfficerProfilesByRoot); - //var employee_type1 = await GetEmployeeInsignia_Type1(periodId, ocId, allEmployeeProfileByRoot); - //var employee_type2 = await GetEmployeeInsignia_Type2(periodId, ocId, allEmployeeProfileByRoot); var type1_level1 = await GetInsigniaCandidate_Type1_Level1(periodId, ocId, allOfficerProfilesByRoot); var type1_level2 = await GetInsigniaCandidate_Type1_Level2(periodId, ocId, allOfficerProfilesByRoot); var type1_level3 = await GetInsigniaCandidate_Type1_Level3(periodId, ocId, allOfficerProfilesByRoot); @@ -7057,7 +6549,6 @@ namespace BMA.EHR.Application.Repositories var type3_level11 = await GetInsigniaCandidate_Type3_Level11(periodId, ocId, allOfficerProfilesByRoot); var type4_level10 = await GetInsigniaCandidate_Type4_Level10(periodId, ocId, allOfficerProfilesByRoot); var type4_level11 = await GetInsigniaCandidate_Type4_Level11(periodId, ocId, allOfficerProfilesByRoot); - //var type = await GetInsigniaCandidate(periodId, ocId); // union result foreach (var r in type_coin) @@ -7196,85 +6687,17 @@ namespace BMA.EHR.Application.Repositories } } - // public async Task> GetEmployeeInsigniaCandidateBKK(Guid periodId, Guid ocId) - // { - // try - // { - // var result_candidate = new List(); - // - // var type1 = await GetEmployeeInsignia_Type1(periodId, ocId); - // var type2 = await GetEmployeeInsignia_Type2(periodId, ocId); - // - // // union result - // foreach (var r in type2) - // { - // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId); - // if (old == null) - // result_candidate.Add(r); - // } - // - // foreach (var r in type1) - // { - // var old = result_candidate.FirstOrDefault(x => x.ProfileId == r.ProfileId); - // if (old == null) - // result_candidate.Add(r); - // } - // - // return result_candidate.OrderBy(x => x.Seq).ThenBy(x => x.Gender).ThenBy(x => x.ProfileId).ToList(); - // } - // catch - // { - // throw; - // } - // } - //กรองรายชื่อผู้มิสิทธิ์ยื่นขอเหรียญจักรพรรดิมาลา public async Task> GetCoinCandidate(Guid periodId, Guid ocId, List allProfilesByRoot) { try { - //var allOc = GetAllIdByRoot(ocId); - var period = await _dbContext.Set().FirstOrDefaultAsync(p => p.Id == periodId); if (period == null) throw new Exception(GlobalMessages.CoinPeriodNotFound); - //var allProfilesByRoot = (await _userProfileRepository.GetOfficerProfileByRootIdAsync(ocId, AccessToken)); - - - //var inst_profile = _dbContext.Set() - // .Include(p => p.Prefix) - // .Include(p => p.Position) - // .Include(p => p.PosNo) - // .Include(p => p.PositionType) - // .Include(p => p.PositionLevel) - // .Include(p => p.Insignias) - // .ThenInclude(i => i.Insignia) - // .Include(p => p.Salaries) - // .Where(p => - // allOc.Contains(p.OcId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.OcId.Value) && - // p.IsActive == true && - // p.IsLeave == false && - // p.DateAppoint != null - // ) - // .Select(p => new - // { - // ProfileId = p.Id, - // Prefix = p.Prefix == null ? null : p.Prefix.Name, - // FullName = $"{(p.Prefix == null ? null : p.Prefix.Name)}{p.FirstName} {p.LastName}", - // Position = p.Position == null ? null : p.Position.Name, - // Rank = p.PositionLevel == null ? null : p.PositionLevel.Name, - // ProfileDateAppoint = p.DateAppoint.Value, - // GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id, - // Gender = p.Gender == null ? null : p.Gender.Name, - // LastInsignia = p.Insignias.Count == 0 ? "" : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Name, - // LastInsigniaId = p.Insignias.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Insignias.Where(x => !x.Insignia.Name.Contains("เหรียญจักรพรรดิมาลา")).OrderByDescending(x => x.Year).FirstOrDefault().Insignia.Id, - // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - // }); - var inst_profile = allProfilesByRoot.Where(x => x.DateAppoint != null) .Select(p => new { @@ -7284,52 +6707,40 @@ namespace BMA.EHR.Application.Repositories p.LastName, p.BirthDate, p.DateAppoint, - Prefix = p.Prefix ?? "", FullName = $"{(p.Prefix ?? "")}{p.FirstName} {p.LastName}", Position = p.Position ?? "", - Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, + Rank = p.PosLevel, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? "" - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, - PositionLevelId = p.PosLevel == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosLevel.Id, - PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, - PositionTypeId = p.PosType == null - ? Guid.Parse("00000000-0000-0000-0000-000000000000") - : p.PosType.Id, - PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, + PosNo = p.PosNo, + PositionLevelId = p.PosLevelId, + PositionLevelName = p.PosLevel, + PositionTypeId = p.PosTypeId, + PositionTypeName = p.PosType, Gender = p.Gender ?? "", LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? "" : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + .OrderByDescending(x => x.Year).FirstOrDefault().Insignia, LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .FirstOrDefault() == null ? Guid.Empty : - GetInsigniaById(p.ProfileInsignia + p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) - .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, - //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, + .OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId, + Salary = p.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault() != null ? p.ProfileSalary .Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)) .OrderByDescending(x => x.Order).FirstOrDefault().Amount : - p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 - ? 0 - : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + p.Amount, + PositionSalaryAmount = p.PositionSalaryAmount, }); // check วันที่บรรจะต้องมากกว่า 25 ปี @@ -7346,7 +6757,7 @@ namespace BMA.EHR.Application.Repositories LastName = p.LastName, PosLevelName = p.PositionLevelName, PosTypeName = p.PositionTypeName, - PositionSalary = p.PostionSalaryAmount, + PositionSalary = p.PositionSalaryAmount, BirthDate = p.BirthDate, DateAppoint = p.DateAppoint, FullName = p.FullName, @@ -7472,12 +6883,8 @@ namespace BMA.EHR.Application.Repositories { var request = await _dbContext.Set() .Include(x => x.Document) - //.Include(x => x.Organization) - //.ThenInclude(x => x.OrganizationOrganization) .FirstOrDefaultAsync(x => x.Period.Id == period.Id && x.OrganizationId == ocId); - //var oc = _userProfileRepository.GetOc(ocId, 0, AccessToken); - return new InsigniaResults { PeriodId = period.Id, @@ -7503,70 +6910,6 @@ namespace BMA.EHR.Application.Repositories } } - // public async InsigniaItem GetInsigniaLast(Guid? id) - // { - // try - // { - // var insignia = await _dbContext.Set().AsQueryable() - // .Include(x => x.InsigniaType) - // .Where(x => id != null ? x.Id == id : x.Name.Contains("ตริตาภรณ์มงกุฎไทย")) - // .Select(i => new InsigniaItem - // { - // Id = i.Id, - // Name = i.Name, - // ShortName = i.ShortName, - // Level = i.InsigniaType.Description, - // LevelId = i.InsigniaType.Id - // }).FirstOrDefault(); - - // return insignia; - // } - // catch - // { - // throw; - // } - // } - - // ดึงข้อมูลเอกสารแนบ - // TODO: return empty for POC Only. - // public async List GetDocFile(string profile) - // { - // // return empty for POC Only. - // return new List(); - // } - - // Get Profile - // public async List GetProfileByInstitute(Guid ocId) - // { - // try - // { - // var profiles = (await _dbContext.Set() - // .Include(x => x.Salaries) - // .Include(x => x.PositionLevel) - // .Include(x => x.Position) - // .Include(x => x.PosNo) - // .Include(x => x.OrganizationChart) - // .Where(x => x.OrganizationChart.OcId == ocId) - // .Select(p => new InsigniaProfileResult - // { - // ProfileId = p.Id, - // Prefix = p.Prefix, - // FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", - // Position = p.Position.Name, - // Rank = p.PositionLevel.Name, - // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - // PosNo = p.PosNo == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosNo.Id, - // Organization = p.OrganizationChart.OrganizationName - // })).ToList(); - - // return profiles; - // } - // catch - // { - // throw; - // } - // } - // Get Data Table insignai_has_profile public async Task> InsigniaHasProfile(Guid period, Guid ocId, string status) { @@ -7598,7 +6941,6 @@ namespace BMA.EHR.Application.Repositories Rank = $"{h.PosTypeName}/{h.PosLevelName}", Salary = h.Salary.ToString(), LastInsignia = h.LastInsigniaName, - //Profile = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken), RequestInsignia = h.RequestInsignia.Name, RequestInsigniaShortName = h.RequestInsignia.ShortName, Level = h.RequestInsignia.InsigniaType.Name, @@ -7610,49 +6952,12 @@ namespace BMA.EHR.Application.Repositories MarkDiscipline = h.MarkDiscipline, MarkLeave = h.MarkLeave, MarkRate = h.MarkRate, - //Salary = h.Salary == null ? 0 : h.Salary.Value, - // Docs = GetDocFile(h.Profile.Id), MatchingConditions = h.MatchingConditions == null || h.MatchingConditions == "" ? null : JsonConvert.DeserializeObject>(h.MatchingConditions) }) .ToList(); - // var result = (pre_result - // .Select(h => new InsigniaRequestItem - // { - // Id = h.Id, - // CitizenId = h.Profile.CitizenId, - // ProfileId = h.Profile.Id, - // ProfileType = "officer", - // //ProfileType = h.Profile.ProfileType, - // FullName = $"{h.Profile.Prefix}{h.Profile.FirstName} {h.Profile.LastName}", - // Position = h.Profile.Position, - // PosNo = h.Profile.ProfileSalary == null || h.Profile.ProfileSalary.Count == 0 - // ? "" - // : h.Profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo, - // Rank = h.Profile.PosLevel.PosLevelName, - // - // Salary = h.Salary.ToString(), - // LastInsignia = h.Profile.ProfileInsignia == null || h.Profile.ProfileInsignia.Count == 0 - // ? "" - // : GetInsigniaById(h.Profile.ProfileInsignia.OrderByDescending(x => x.Year) - // .FirstOrDefault().Id.Value).Name, - // RequestInsignia = h.RequestInsignia, - // RequestInsigniaShortName = h.RequestInsigniaShortName, - // Level = h.Level, - // IsApprove = h.IsApprove, - // RequestDate = h.RequestDate, - // Status = h.Status, - // RequestNote = h.RequestNote, - // Reason = h.Reason, - // MarkDiscipline = h.MarkDiscipline, - // MarkLeave = h.MarkLeave, - // MarkRate = h.MarkRate, - // // Docs = GetDocFile(h.Profile.Id), - // MatchingConditions = h.MatchingConditions - // })).ToList(); - return result; } else @@ -7781,12 +7086,6 @@ namespace BMA.EHR.Application.Repositories } } - //var oc = await _dbContext.Set().FirstOrDefaultAsync(x => x.Id == ocId); - //var oc = _userProfileRepository.GetOc(ocId, 0, AccessToken); - - //if (oc == null) - // throw new Exception(GlobalMessages.OCNotFound); - var req = new InsigniaRequest { Period = period, @@ -7804,14 +7103,6 @@ namespace BMA.EHR.Application.Repositories foreach (var item in items) { - //var pf = _userProfileRepository.GetOfficerProfileById(item.ProfileId, AccessToken); - - //if (pf == null) throw new Exception(GlobalMessages.InsigniaRequestProfileNotFound); - - // var lastProfileSalary = pf.ProfileSalary == null || pf.ProfileSalary.Count == 0 - // ? null - // : pf.ProfileSalary.MaxBy(x => x.Order); - var reqInsignia = await _dbContext.Set() .FirstOrDefaultAsync(i => i.Id == item.RequestInsignia.Id); @@ -7848,7 +7139,9 @@ namespace BMA.EHR.Application.Repositories PosNo = item.PosNo, Amount = item.Salary, PositionSalaryAmount = item.PositionSalary, - LastInsigniaName = item.LastInsignia + LastInsigniaName = item.LastInsignia, + Root = item.Root, + RootId = item.RootId, }); } diff --git a/BMA.EHR.Application/Repositories/UserProfileRepository.cs b/BMA.EHR.Application/Repositories/UserProfileRepository.cs index 2adc58c6..54d48828 100644 --- a/BMA.EHR.Application/Repositories/UserProfileRepository.cs +++ b/BMA.EHR.Application/Repositories/UserProfileRepository.cs @@ -136,6 +136,28 @@ namespace BMA.EHR.Application.Repositories var apiPath = $"{_configuration["API"]}/org/dotnet/keycloak/{keycloakId}"; var apiKey = _configuration["API_KEY"]; + var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? "", apiKey); + if (apiResult != null) + { + var raw = JsonConvert.DeserializeObject(apiResult); + if (raw != null) + return raw.Result; + } + + return null; + } + catch + { + throw; + } + } + + public async Task GetProfileByProfileIdAsync(Guid keycloakId, string? accessToken) + { + try + { + var apiPath = $"{_configuration["API"]}/org/dotnet/profile/{keycloakId}"; + var apiKey = _configuration["API_KEY"]; var apiResult = await GetExternalAPIAsync(apiPath, accessToken ?? "", apiKey); if (apiResult != null) @@ -146,15 +168,6 @@ namespace BMA.EHR.Application.Repositories } return null; - - //var data = await _dbContext.Set().AsQueryable() - // .Include(p => p.Prefix) - // .Include(p => p.Position) - // .Include(p => p.PositionLevel) - // .Include(p => p.Salaries) - // .FirstOrDefaultAsync(p => p.KeycloakId == keycloakId); - - //return data; } catch { @@ -532,7 +545,7 @@ namespace BMA.EHR.Application.Repositories } } - public GetProfileByIdDto GetOfficerProfileByCitizenId(string citizenId, string? accessToken) + public async Task GetOfficerProfileByCitizenId(string citizenId, string? accessToken) { try { @@ -542,7 +555,7 @@ namespace BMA.EHR.Application.Repositories var apiResult = GetExternalAPIAsync(apiPath, accessToken ?? "", apiKey); if (apiResult.Result != null) { - var raw = JsonConvert.DeserializeObject(apiResult.Result); + var raw = JsonConvert.DeserializeObject(apiResult.Result); if (raw != null) return raw.Result; } diff --git a/BMA.EHR.Application/Requests/InsigniaResultSet.cs b/BMA.EHR.Application/Requests/InsigniaResultSet.cs index 33b683e3..608e9b4c 100644 --- a/BMA.EHR.Application/Requests/InsigniaResultSet.cs +++ b/BMA.EHR.Application/Requests/InsigniaResultSet.cs @@ -9,19 +9,19 @@ namespace BMA.EHR.Application.Requests public string CitizenId { get; set; } = String.Empty; public string Prefix { get; set; } = String.Empty; - + public string FirstName { get; set; } = String.Empty; - + public string LastName { get; set; } = String.Empty; - + public DateTime? BirthDate { get; set; } - + public DateTime? DateAppoint { get; set; } - + public string? ProfileType { get; set; } - + public string? PosTypeName { get; set; } - + public string? PosLevelName { get; set; } public string FullName { get; set; } = String.Empty; @@ -33,7 +33,7 @@ namespace BMA.EHR.Application.Requests public string GovAge { get; set; } = String.Empty; public double? Salary { get; set; } - + public double? PositionSalary { get; set; } public string LastInsignia { get; set; } = String.Empty; @@ -49,6 +49,11 @@ namespace BMA.EHR.Application.Requests public int Seq { get; set; } + public double? Amount { get; set; } + public double? PositionSalaryAmount { get; set; } + public Guid? RootId { get; set; } + public string? Root { get; set; } + public List MatchingConditions { get; set; } = new List(); } diff --git a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs index 3ba42944..5f92679a 100644 --- a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs +++ b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs @@ -21,9 +21,9 @@ namespace BMA.EHR.Application.Responses.Profiles public Guid? OcId { get; set; } - public PosType? PosType { get; set; } + public string? PosType { get; set; } - public PosLevel? PosLevel { get; set; } + public string? PosLevel { get; set; } public string? Oc { get; set; } @@ -45,16 +45,17 @@ namespace BMA.EHR.Application.Responses.Profiles public bool? IsLeave { get; set; } public string? Root { get; set; } - public string? Child1 { get; set; } - public string? Child2 { get; set; } - public string? Child3 { get; set; } - public string? Child4 { get; set; } + public Guid? RootId { get; set; } + public Guid? Child1Id { get; set; } + public Guid? Child2Id { get; set; } + public Guid? Child3Id { get; set; } + public Guid? Child4Id { get; set; } public double? Amount { get; set; } - + public double? PositionSalaryAmount { get; set; } public string? Commander { get; set; } } @@ -127,5 +128,6 @@ namespace BMA.EHR.Application.Responses.Profiles public int? Year { get; set; } public Guid? InsigniaId { get; set; } + public string? Insignia { get; set; } } } diff --git a/BMA.EHR.Application/Responses/Profiles/GetProfileByRootIdDto.cs b/BMA.EHR.Application/Responses/Profiles/GetProfileByRootIdDto.cs index ab9873ac..76061a30 100644 --- a/BMA.EHR.Application/Responses/Profiles/GetProfileByRootIdDto.cs +++ b/BMA.EHR.Application/Responses/Profiles/GetProfileByRootIdDto.cs @@ -25,9 +25,13 @@ namespace BMA.EHR.Application.Responses.Profiles public Guid? OcId { get; set; } - public PosType? PosType { get; set; } + public string? PosType { get; set; } - public PosLevel? PosLevel { get; set; } + public string? PosLevel { get; set; } + + public Guid? PosTypeId { get; set; } + + public Guid? PosLevelId { get; set; } public string? Oc { get; set; } @@ -42,5 +46,9 @@ namespace BMA.EHR.Application.Responses.Profiles public string? PosNoEmployee { get; set; } public string? Gender { get; set; } + public double? Amount { get; set; } + public double? PositionSalaryAmount { get; set; } + public Guid? RootId { get; set; } + public string? Root { get; set; } } } diff --git a/BMA.EHR.Domain/Models/Insignias/InsigniaManageOrganiation.cs b/BMA.EHR.Domain/Models/Insignias/InsigniaManageOrganiation.cs index 870a541c..df1d54c2 100644 --- a/BMA.EHR.Domain/Models/Insignias/InsigniaManageOrganiation.cs +++ b/BMA.EHR.Domain/Models/Insignias/InsigniaManageOrganiation.cs @@ -9,6 +9,8 @@ namespace BMA.EHR.Domain.Models.Insignias public int Total { get; set; } [Comment("รหัสหน่วยงาน")] public Guid OrganizationId { get; set; } + [Comment("รหัสหน่วยงาน")] + public string? Organization { get; set; } //public OrganizationOrganization OrganizationOrganization { get; set; } [Comment("Fk Table InsigniaManage")] public InsigniaManage InsigniaManage { get; set; } diff --git a/BMA.EHR.Domain/Models/Insignias/InsigniaManageProfile.cs b/BMA.EHR.Domain/Models/Insignias/InsigniaManageProfile.cs index f6012cb9..67589c18 100644 --- a/BMA.EHR.Domain/Models/Insignias/InsigniaManageProfile.cs +++ b/BMA.EHR.Domain/Models/Insignias/InsigniaManageProfile.cs @@ -18,6 +18,7 @@ namespace BMA.EHR.Domain.Models.Insignias [Comment("Fk Table OrganizationOrganization Borrow")] //public OrganizationOrganization? BorrowOrganization { get; set; } public Guid? BorrowOrganizationId { get; set; } + public string? BorrowOrganization { get; set; } [Comment("คืนวันที่")] public DateTime? ReturnDate { get; set; } @@ -25,6 +26,7 @@ namespace BMA.EHR.Domain.Models.Insignias [Comment("Fk Table OrganizationOrganization Return")] //public OrganizationOrganization? ReturnOrganization { get; set; } public Guid? ReturnOrganizationId { get; set; } + public string? ReturnOrganization { get; set; } [Comment("เหตุผลคืน")] public string? ReturnReason { get; set; } diff --git a/BMA.EHR.Domain/Models/Insignias/InsigniaNote.cs b/BMA.EHR.Domain/Models/Insignias/InsigniaNote.cs index c49a0d55..ef995e9a 100644 --- a/BMA.EHR.Domain/Models/Insignias/InsigniaNote.cs +++ b/BMA.EHR.Domain/Models/Insignias/InsigniaNote.cs @@ -11,13 +11,6 @@ namespace BMA.EHR.Domain.Models.Insignias [MaxLength(200)] public string? Name { get; set; } public int Year { get; set; } - // public DateTime StartDate { get; set; } - // public DateTime EndDate { get; set; } - // [MaxLength(50)] - // public int Amount { get; set; } - // public Document? ReliefDoc { get; set; } - // [Comment("ราบการยื่นขอ")] - // public int Round { get; set; } = 1; public virtual List InsigniaNoteProfiles { get; set; } public virtual List InsigniaNoteDocs { get; set; } } diff --git a/BMA.EHR.Domain/Models/Insignias/InsigniaNoteProfile.cs b/BMA.EHR.Domain/Models/Insignias/InsigniaNoteProfile.cs index 08c13c57..724dcde8 100644 --- a/BMA.EHR.Domain/Models/Insignias/InsigniaNoteProfile.cs +++ b/BMA.EHR.Domain/Models/Insignias/InsigniaNoteProfile.cs @@ -76,5 +76,7 @@ namespace BMA.EHR.Domain.Models.Insignias public string? PosNo { get; set; } public double? Amount { get; set; } public double? PositionSalaryAmount { get; set; } + public Guid? RootId { get; set; } + public string? Root { get; set; } } } diff --git a/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs b/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs index 7953c16b..d0cdeb2e 100644 --- a/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs +++ b/BMA.EHR.Domain/Models/Insignias/InsigniaRequestProfile.cs @@ -71,7 +71,8 @@ namespace BMA.EHR.Domain.Models.Insignias public string? PosNo { get; set; } public double? Amount { get; set; } public double? PositionSalaryAmount { get; set; } - public string? LastInsigniaName { get; set; } + public Guid? RootId { get; set; } + public string? Root { get; set; } } } diff --git a/BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.Designer.cs b/BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.Designer.cs new file mode 100644 index 00000000..1b54f229 --- /dev/null +++ b/BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.Designer.cs @@ -0,0 +1,19178 @@ +// +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("20241118093933_update table insignia add rootid")] + partial class updatetableinsigniaaddrootid + { + /// + 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("ActEndDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุดการรักษาการแทน"); + + b.Property("ActStartDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มรักษาการแทน"); + + b.Property("AuthorizedPosition") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ตำแหน่งผู้มีอำนาจลงนาม"); + + b.Property("AuthorizedUserFullName") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ชื่อผู้มีอำนาจลงนาม"); + + b.Property("AuthorizedUserId") + .HasColumnType("char(36)") + .HasComment("รหัสอ้างอิงผู้มีอำนาจลงนาม"); + + b.Property("CaseFault") + .HasColumnType("longtext") + .HasComment("กรณีความผิด"); + + b.Property("ChairManFullName") + .HasColumnType("longtext") + .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("ComplaintId") + .HasColumnType("char(36)") + .HasComment("Id เรื่องร้องเรียน"); + + b.Property("ConclusionFireDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่องการดำเนินการทางวินัย)"); + + b.Property("ConclusionFireNo") + .HasColumnType("longtext") + .HasComment("ครั้งที่ (เรื่องการดำเนินการทางวินัย)"); + + b.Property("ConclusionFireResolution") + .HasColumnType("longtext") + .HasComment("มติที่ประชุม (เรื่องการดำเนินการทางวินัย)"); + + b.Property("ConclusionMeetingDate") + .HasColumnType("datetime(6)") + .HasComment("การประชุม ลงวันที่"); + + b.Property("ConclusionMeetingNo") + .HasColumnType("longtext") + .HasComment("การประชุม ครั้งที่"); + + b.Property("ConclusionReceiveDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (การรับโอน)"); + + b.Property("ConclusionReceiveNo") + .HasColumnType("longtext") + .HasComment("มติ กก. ครั้งที่ (การรับโอน)"); + + b.Property("ConclusionRegisterDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง รับสมัครสอบฯ)"); + + b.Property("ConclusionRegisterNo") + .HasColumnType("longtext") + .HasComment("มติ กก. ครั้งที่ (เรื่อง รับสมัครสอบฯ)"); + + b.Property("ConclusionResultDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง ผลการสอบแข่งขัน)"); + + b.Property("ConclusionResultNo") + .HasColumnType("longtext") + .HasComment("มติ กก. ครั้งที่ (เรื่อง ผลการสอบแข่งขัน)"); + + b.Property("ConclusionReturnDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (เรื่อง กลับเข้ารับราชการ)"); + + b.Property("ConclusionReturnNo") + .HasColumnType("longtext") + .HasComment("มติ กก. ครั้งที่ (เรื่อง กลับเข้ารับราชการ)"); + + b.Property("ConclusionTranferDate") + .HasColumnType("datetime(6)") + .HasComment("การประชุม ลงวันที่"); + + b.Property("ConclusionTranferNo") + .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("Fault") + .HasColumnType("longtext") + .HasComment("รายละเอียดการกระทำผิด"); + + b.Property("FaultLevel") + .HasColumnType("longtext") + .HasComment("ระดับความผิด"); + + b.Property("GovAidCommandDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (คำสั่งช่วยราชการ)"); + + b.Property("GovAidCommandNo") + .HasColumnType("longtext") + .HasComment("คำสั่งเลขที่ (คำสั่งช่วยราชการ)"); + + b.Property("GuiltyBasis") + .HasColumnType("longtext") + .HasComment("ฐานความผิด"); + + 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("Member1FullName") + .HasColumnType("longtext") + .HasComment("กรรมการคนที่ 1"); + + b.Property("Member2FullName") + .HasColumnType("longtext") + .HasComment("กรรมการคนที่ 2"); + + b.Property("MilitaryCommanDate") + .HasColumnType("datetime(6)") + .HasComment("ลงวันที่ (ให้เข้ารับราชการทหาร)"); + + b.Property("MilitaryCommandNo") + .HasColumnType("longtext") + .HasComment("คำสั่งที่ (ให้เข้ารับราชการทหาร)"); + + b.Property("OwnerGovId") + .HasColumnType("char(36)") + .HasComment("รหัสส่วนราชการผู้ออกคำสั่ง"); + + b.Property("PlacementCommandDate") + .HasColumnType("datetime(6)") + .HasComment("คำสั่งบรรจุลงวันที่"); + + b.Property("PlacementCommandIssuer") + .HasColumnType("longtext") + .HasComment("หน่วยงานที่ออกคำสั่งบรรจุ"); + + b.Property("PlacementCommandNo") + .HasColumnType("longtext") + .HasComment("เลขที่คำสั่งบรรจุ"); + + b.Property("PlacementId") + .HasColumnType("char(36)") + .HasComment("อ้างอิงรอบการสอบ"); + + b.Property("PlacementOrganizationName") + .HasColumnType("longtext") + .HasComment("สังกัดที่บรรจุ"); + + b.Property("PlacementPositionName") + .HasColumnType("longtext") + .HasComment("ตำแหน่งที่บรรจุ"); + + b.Property("PositionName") + .HasColumnType("longtext") + .HasComment("ตำแหน่งที่บรรจุ"); + + b.Property("ProbationEndDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุดการทดลองปฏิบัติราชการ"); + + b.Property("ProbationStartDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่มทดลองปฏิบัติราชการ"); + + b.Property("ReceiveOrganizationName") + .HasColumnType("longtext") + .HasComment("ส่วนราชการที่รับโอน"); + + b.Property("RefRaw") + .HasColumnType("longtext") + .HasComment("อ้างอิงมาตราตามกฏหมาย"); + + b.Property("Result") + .HasColumnType("longtext") + .HasComment("ผลดำเนินการพิจารณา"); + + b.Property("SalaryPeriod") + .HasColumnType("longtext") + .HasComment("รอบเงินเดือน"); + + b.Property("SalaryPeriodId") + .HasColumnType("char(36)") + .HasComment("Id เรื่องเงินเดือน"); + + b.Property("SourceOrganizationName") + .HasColumnType("longtext") + .HasComment("หน่วยงานต้นสังกัด ก่อนรับราชการทหาร"); + + b.Property("TransferOrganizationName") + .HasColumnType("longtext") + .HasComment("ส่วนราชการที่ให้โอน"); + + b.Property("Year") + .HasMaxLength(4) + .HasColumnType("varchar(4)") + .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("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("BirthDate") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + 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("Comment2") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("Organization") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับ"); + + b.Property("PositionName") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง"); + + b.Property("PositionNumber") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionType") + .HasColumnType("longtext") + .HasComment("ประเภท"); + + b.Property("Prefix") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("คำนำหน้านาม"); + + b.Property("RefDisciplineId") + .HasColumnType("char(36)") + .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("CoupleCitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .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("CoupleLive") + .HasColumnType("tinyint(1)") + .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("DutyTimeEffectiveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่รอบการลงเวลามีผล"); + + b.Property("DutyTimeId") + .HasColumnType("char(36)") + .HasComment("รอบการลงเวลาเข้างาน"); + + b.Property("EmployeeClass") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทลูกจ้าง"); + + b.Property("EmployeeMoneyAllowance") + .HasColumnType("double") + .HasComment("เงินช่วยเหลือค่าครองชีพชั่วคราว"); + + b.Property("EmployeeMoneyEmployee") + .HasColumnType("double") + .HasComment("เงินสมทบประกันสังคม(ลูกจ้าง)"); + + b.Property("EmployeeMoneyEmployer") + .HasColumnType("double") + .HasComment("เงินสมทบประกันสังคม(นายจ้าง)"); + + b.Property("EmployeeMoneyIncrease") + .HasColumnType("double") + .HasComment("เงินเพิ่มการครองชีพชั่วคราว"); + + b.Property("EmployeeOc") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("EmployeeType") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("ประเภทการจ้าง"); + + b.Property("EmployeeTypeIndividual") + .HasColumnType("longtext") + .HasComment("ประเภทบุคคล"); + + b.Property("EmployeeWage") + .HasColumnType("double") + .HasComment("ค่าจ้าง"); + + b.Property("EntryStatus") + .IsRequired() + .HasMaxLength(5) + .HasColumnType("varchar(5)"); + + b.Property("FatherCareer") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("อาชีพบิดา"); + + b.Property("FatherCitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่บัตรประชาชนบิดา"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherLive") + .HasColumnType("tinyint(1)") + .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("IsSendVerified") + .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("MotherCitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขที่บัตรประชาชนมารดา"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherLive") + .HasColumnType("tinyint(1)") + .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("PositionEmployeeGroupId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeeLineId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeePositionId") + .HasColumnType("char(36)"); + + b.Property("PositionEmployeePositionSideId") + .HasColumnType("char(36)"); + + 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("PositionEmployeeGroupId"); + + b.HasIndex("PositionEmployeeLevelId"); + + b.HasIndex("PositionEmployeeLineId"); + + b.HasIndex("PositionEmployeePositionId"); + + b.HasIndex("PositionEmployeePositionSideId"); + + 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("IsActive") + .HasColumnType("tinyint(1)"); + + 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("IsActive") + .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("Note") + .HasColumnType("longtext") + .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("Note") + .HasColumnType("longtext") + .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.ProfileEmployment", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Command") + .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("ProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileEmployments"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEmploymentHistory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Command") + .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("ProfileEmploymentId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProfileEmploymentId"); + + b.ToTable("ProfileEmploymentHistorys"); + }); + + 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("IsDate") + .HasColumnType("tinyint(1)") + .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("Note") + .HasColumnType("longtext") + .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("Note") + .HasColumnType("longtext") + .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.ProfileLeaveSummary", 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)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("LeaveYear") + .HasColumnType("int"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("SumAbsent") + .HasColumnType("longtext"); + + b.Property("SumEducation") + .HasColumnType("longtext"); + + b.Property("SumLate") + .HasColumnType("longtext"); + + b.Property("SumRest") + .HasColumnType("longtext"); + + b.Property("SumSick") + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("ProfileId"); + + b.ToTable("ProfileLeaveSummary"); + }); + + 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("AgencyName") + .HasColumnType("longtext") + .HasComment("AgencyName"); + + b.Property("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("CLevel") + .HasColumnType("longtext") + .HasComment("CLevel"); + + 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("IsActive") + .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("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("OcId") + .HasColumnType("char(36)") + .HasComment("Id สังกัด"); + + b.Property("Order") + .HasColumnType("int") + .HasComment("ลำดับ"); + + b.Property("OrgName") + .HasColumnType("longtext") + .HasComment("OrgName"); + + b.Property("OrganizationShortNameId") + .HasColumnType("char(36)") + .HasComment("Id ชื่อย่อหน่วยงาน"); + + b.Property("PosNoEmployee") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่งลูกจ้าง"); + + b.Property("PosNoId") + .HasColumnType("char(36)") + .HasComment("Id เลขที่ตำแหน่ง"); + + b.Property("PosNoName") + .HasColumnType("longtext") + .HasComment("PosNoName"); + + 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("PositionExecutiveName") + .HasColumnType("longtext") + .HasComment("PositionExecutiveName"); + + b.Property("PositionExecutiveSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้านทางการบริหาร"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionLevelId") + .HasColumnType("char(36)"); + + b.Property("PositionLevelName") + .HasColumnType("longtext"); + + b.Property("PositionLineId") + .HasColumnType("char(36)") + .HasComment("Id สายงาน"); + + b.Property("PositionLineName") + .HasColumnType("longtext") + .HasComment("PositionLineName"); + + b.Property("PositionName") + .HasColumnType("longtext") + .HasComment("PositionName"); + + b.Property("PositionPathSideId") + .HasColumnType("char(36)") + .HasComment("Id ด้าน/สาขา"); + + b.Property("PositionPathSideName") + .HasColumnType("longtext") + .HasComment("PositionPathSideName"); + + b.Property("PositionRef") + .HasColumnType("longtext"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double") + .HasComment("เงินประจำตำแหน่ง"); + + b.Property("PositionTypeId") + .HasColumnType("char(36)") + .HasComment("Id ประเภทตำแหน่ง"); + + b.Property("PositionTypeName") + .HasColumnType("longtext"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("RefCommandNo") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง (เลขที่คำสั่ง)"); + + b.Property("SalaryClass") + .HasColumnType("longtext") + .HasComment("ตำแหน่ง (รายละเอียด)"); + + b.Property("SalaryRef") + .HasColumnType("longtext") + .HasComment("เอกสารอ้างอิง"); + + b.Property("SalaryStatus") + .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("IsDate") + .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") + .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.InsigniaManage", 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("InsigniaId") + .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("Total") + .HasColumnType("int") + .HasComment("จำนวนทั้งหมด"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปี"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaId"); + + b.ToTable("InsigniaManages"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaManageOrganiation", 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("InsigniaManageId") + .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("Organization") + .HasColumnType("longtext") + .HasComment("รหัสหน่วยงาน"); + + b.Property("OrganizationId") + .HasColumnType("char(36)") + .HasComment("รหัสหน่วยงาน"); + + b.Property("Total") + .HasColumnType("int") + .HasComment("จำนวนทั้งหมด"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaManageId"); + + b.ToTable("InsigniaManageOrganiations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaManageProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("BorrowDate") + .HasColumnType("datetime(6)") + .HasComment("ยืมวันที่"); + + b.Property("BorrowOrganization") + .HasColumnType("longtext"); + + b.Property("BorrowOrganizationId") + .HasColumnType("char(36)") + .HasComment("Fk Table OrganizationOrganization Borrow"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("InsigniaManageOrganiationId") + .HasColumnType("char(36)"); + + b.Property("InsigniaNoteProfileId") + .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("ReturnDate") + .HasColumnType("datetime(6)") + .HasComment("คืนวันที่"); + + b.Property("ReturnOrganization") + .HasColumnType("longtext"); + + b.Property("ReturnOrganizationId") + .HasColumnType("char(36)") + .HasComment("Fk Table OrganizationOrganization Return"); + + b.Property("ReturnReason") + .HasColumnType("longtext") + .HasComment("เหตุผลคืน"); + + b.Property("Status") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการคืน"); + + b.HasKey("Id"); + + b.HasIndex("InsigniaManageOrganiationId"); + + b.HasIndex("InsigniaNoteProfileId"); + + b.ToTable("InsigniaManageProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNote", 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(200) + .HasColumnType("varchar(200)"); + + b.Property("Year") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.ToTable("InsigniaNotes"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNoteDoc", 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("InsigniaNoteId") + .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("Reason") + .HasColumnType("longtext") + .HasComment("หมายเหตุ"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("InsigniaNoteId"); + + b.ToTable("InsigniaNoteDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNoteProfile", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Address") + .HasColumnType("longtext") + .HasComment("ที่อยู่ที่จ่าย"); + + b.Property("Amount") + .HasColumnType("double"); + + b.Property("BirthDate") + .HasColumnType("datetime(6)"); + + b.Property("CitizenId") + .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("Date") + .HasColumnType("datetime(6)") + .HasComment("วันที่"); + + b.Property("DateAppoint") + .HasColumnType("datetime(6)"); + + b.Property("DatePayment") + .HasColumnType("datetime(6)") + .HasComment("วันที่จ่ายใบกำกับ"); + + b.Property("DateReceive") + .HasColumnType("datetime(6)") + .HasComment("วันที่ได้รับพระราชทานเครื่องราชฯ"); + + b.Property("DateReceiveInsignia") + .HasColumnType("datetime(6)") + .HasComment("วันที่รับเครื่องราชฯ"); + + b.Property("DateReturnInsignia") + .HasColumnType("datetime(6)") + .HasComment("วันที่คืนเครื่องราชฯ"); + + b.Property("DocReceiveInsigniaId") + .HasColumnType("char(36)"); + + b.Property("DocReturnInsigniaId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasColumnType("longtext"); + + b.Property("Gender") + .HasColumnType("longtext"); + + b.Property("InsigniaNoteId") + .HasColumnType("char(36)"); + + b.Property("IsApprove") + .HasColumnType("tinyint(1)"); + + b.Property("Issue") + .HasColumnType("longtext") + .HasComment("ทะเบียนฐานันดร"); + + b.Property("LastName") + .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("No") + .HasColumnType("longtext") + .HasComment("ลำดับที่"); + + b.Property("Number") + .HasColumnType("longtext") + .HasComment("หมายเลขประกาศนียบัตรกำกับเครื่องราชฯ"); + + b.Property("OrgReceiveInsigniaId") + .HasColumnType("char(36)"); + + b.Property("OrgReturnInsigniaId") + .HasColumnType("char(36)"); + + b.Property("OrganizationOrganizationReceive") + .HasColumnType("longtext") + .HasComment("สังกัด ณ วันที่ได้รับพระราชทานเครื่องราชฯ"); + + b.Property("OrganizationOrganizationSend") + .HasColumnType("longtext") + .HasComment("สังกัด ณ วันที่ขอพระราชทานเครื่องราชฯ"); + + b.Property("Page") + .HasColumnType("longtext") + .HasComment("หน้าที่"); + + b.Property("PosLevelName") + .HasColumnType("longtext"); + + b.Property("PosNo") + .HasColumnType("longtext"); + + b.Property("PosTypeName") + .HasColumnType("longtext"); + + b.Property("Position") + .HasColumnType("longtext"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double"); + + b.Property("Prefix") + .HasColumnType("longtext"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ProfileType") + .HasColumnType("longtext"); + + b.Property("RequestDate") + .HasColumnType("datetime(6)"); + + b.Property("RequestInsigniaId") + .HasColumnType("char(36)"); + + b.Property("Root") + .HasColumnType("longtext"); + + b.Property("RootId") + .HasColumnType("char(36)"); + + b.Property("Salary") + .HasColumnType("double"); + + b.Property("Section") + .HasColumnType("longtext") + .HasComment("ตอนที่"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะตำแหน่งที่ยื่นขอ"); + + b.Property("TypePayment") + .HasColumnType("longtext") + .HasComment("รูปแบบการจ่าย"); + + b.Property("VolumeNo") + .HasColumnType("longtext") + .HasComment("เล่มที่"); + + b.HasKey("Id"); + + b.HasIndex("DocReceiveInsigniaId"); + + b.HasIndex("DocReturnInsigniaId"); + + b.HasIndex("InsigniaNoteId"); + + b.HasIndex("OrgReceiveInsigniaId"); + + b.HasIndex("OrgReturnInsigniaId"); + + b.HasIndex("RequestInsigniaId"); + + b.ToTable("InsigniaNoteProfiles"); + }); + + 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") + .HasMaxLength(50) + .HasColumnType("int") + .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("EndDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่สิ้นสุด"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการใช้งาน"); + + b.Property("IsLock") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการ Freez ข้อมูล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.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("ReliefDocId") + .HasColumnType("char(36)"); + + b.Property("RevisionId") + .HasColumnType("char(36)"); + + b.Property("Round") + .HasColumnType("int") + .HasComment("ราบการยื่นขอ"); + + b.Property("StartDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่เริ่ม"); + + b.Property("Type") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("ประเภทการขอ"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปี"); + + 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("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("Organization") + .HasColumnType("longtext"); + + 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("DocumentId"); + + 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("Amount") + .HasColumnType("double"); + + b.Property("BirthDate") + .HasColumnType("datetime(6)"); + + b.Property("CitizenId") + .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("DateAppoint") + .HasColumnType("datetime(6)"); + + b.Property("FirstName") + .HasColumnType("longtext"); + + b.Property("Gender") + .HasColumnType("longtext"); + + b.Property("IsApprove") + .HasColumnType("tinyint(1)"); + + b.Property("LastInsigniaName") + .HasColumnType("longtext"); + + b.Property("LastName") + .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("MarkDiscipline") + .HasColumnType("tinyint(1)") + .HasComment("แจ้งเตือน มีโทษทางวินัย"); + + b.Property("MarkLeave") + .HasColumnType("tinyint(1)") + .HasComment("แจ้งเตือน ไม่ได้เลื่อนเงินเดือน/ไม่ได้เลื่อนขั้น เนื่องจากลาเกิน"); + + b.Property("MarkRate") + .HasColumnType("tinyint(1)") + .HasComment("แจ้งเตือน ผลการประเมินการปฏิบัติราชการในรอบ 5 ปี ต่ำกว่าระดับดี (น้อยกว่าร้อยละ 70)"); + + b.Property("MatchingConditions") + .HasColumnType("text") + .HasComment("รายละเอียดเครื่องราชฯที่ขอ"); + + b.Property("PosLevelName") + .HasColumnType("longtext"); + + b.Property("PosNo") + .HasColumnType("longtext"); + + b.Property("PosTypeName") + .HasColumnType("longtext"); + + b.Property("Position") + .HasColumnType("longtext"); + + b.Property("PositionSalaryAmount") + .HasColumnType("double"); + + b.Property("Prefix") + .HasColumnType("longtext"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("ProfileType") + .HasColumnType("longtext"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลการได้รับเครื่องราชฯ"); + + b.Property("ReasonReject") + .HasColumnType("longtext") + .HasComment("เหตุผลไม่ยื่นขอ"); + + b.Property("RequestDate") + .HasColumnType("datetime(6)"); + + b.Property("RequestId") + .HasColumnType("char(36)"); + + b.Property("RequestInsigniaId") + .HasColumnType("char(36)"); + + b.Property("Root") + .HasColumnType("longtext"); + + b.Property("RootId") + .HasColumnType("char(36)"); + + b.Property("Salary") + .HasColumnType("double"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะตำแหน่งที่ยื่นขอ"); + + b.HasKey("Id"); + + 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("DeleteDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ลบข้อมูล"); + + b.Property("IsOpen") + .HasColumnType("tinyint(1)") + .HasComment("เปิดอ่านแล้วหรือยัง"); + + b.Property("KeycloakUserId") + .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("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("DeleteDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ลบข้อมูล"); + + b.Property("IsOpen") + .HasColumnType("tinyint(1)") + .HasComment("เปิดอ่านแล้วหรือยัง"); + + b.Property("KeycloakUserId") + .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("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("IsPublic") + .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("OrganizationId") + .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("OrganizationId"); + + 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.OrganizationEmployeeProfile", 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("OrgEmployeeId") + .HasColumnType("char(36)"); + + b.Property("ProfileId") + .HasColumnType("char(36)"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext"); + + b.HasKey("Id"); + + b.HasIndex("OrgEmployeeId"); + + b.HasIndex("ProfileId"); + + b.ToTable("OrganizationEmployeeProfiles"); + }); + + 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("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("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("IsActive") + .HasColumnType("tinyint(1)"); + + b.Property("IsPublished") + .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("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("Amount") + .HasColumnType("double") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .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("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด/ตำแหน่งเเดิม"); + + b.Property("PositionDate") + .HasColumnType("datetime(6)") + .HasComment("ดำรงตำแหน่งในระดับปัจจุบันเมื่อ"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับย้ายราชการ"); + + b.Property("ReportingDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่รายงานตัว"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("child1") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1"); + + b.Property("child1Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2"); + + b.Property("child2Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3"); + + b.Property("child3Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4"); + + b.Property("child4Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("node") + .HasColumnType("int") + .HasComment("ระดับโครงสร้าง"); + + b.Property("nodeId") + .HasColumnType("char(36)") + .HasComment("id โครงสร้าง"); + + b.Property("orgRevisionId") + .HasColumnType("longtext") + .HasComment("id revision"); + + b.Property("posLevelId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง"); + + b.Property("posLevelName") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNo") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง"); + + b.Property("posTypeName") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("position") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน"); + + b.Property("positionField") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("positionId") + .HasColumnType("longtext") + .HasComment("id ตำแหน่ง"); + + b.Property("positionOld") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน old"); + + b.Property("posmasterId") + .HasColumnType("longtext") + .HasComment("id อัตรากำลัง"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("root") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root"); + + b.Property("rootId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.Property("type") + .HasColumnType("longtext") + .HasComment("ประเภทราชการ"); + + b.Property("typeCommand") + .HasColumnType("longtext") + .HasComment("ประเภทคำสั่ง"); + + b.HasKey("Id"); + + 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("DateEnd") + .HasColumnType("datetime(6)") + .HasComment("ถึงวันที่"); + + b.Property("DateStart") + .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("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + 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("AmountOld") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("BloodGroup") + .HasColumnType("longtext") + .HasComment("Id กลุ่มเลือด"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("longtext") + .HasComment("Id เขตที่ออกบัตรประชาชน"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("longtext") + .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("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("longtext") + .HasComment("Id อำเภอที่อยู่ปัจจุบัน"); + + b.Property("CurrentProvinceId") + .HasColumnType("longtext") + .HasComment("Id จังหวัดที่อยู่ปัจจุบัน"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("longtext") + .HasComment("Id ตำบลที่อยู่ปัจจุบัน"); + + 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("FatherPrefix") + .HasColumnType("longtext") + .HasComment("Id คำนำหน้าชื่อบิดา"); + + b.Property("Firstname") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("Gender") + .HasColumnType("longtext") + .HasComment("Id เพศ"); + + b.Property("IsOfficer") + .HasColumnType("tinyint(1)") + .HasComment("ข้าราชการฯ กทม."); + + b.Property("IsOld") + .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("MarryPrefix") + .HasColumnType("longtext") + .HasComment("Id คำนำหน้าชื่อคู่สมรส"); + + 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("MotherPrefix") + .HasColumnType("longtext") + .HasComment("Id คำนำหน้าชื่อมารดา"); + + b.Property("MouthSalaryAmount") + .HasColumnType("double") + .HasComment("เงินค่าตอบแทนรายเดือน"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("สัญชาติ"); + + b.Property("OccupationGroup") + .HasColumnType("longtext") + .HasComment("ตำแหน่งปัจจุบัน กลุ่ม/ฝ่าย"); + + b.Property("OccupationOrg") + .HasColumnType("longtext") + .HasComment("ตำแหน่งปัจจุบัน ชื่อตำแหน่ง"); + + b.Property("OccupationPile") + .HasColumnType("longtext") + .HasComment("ตำแหน่งปัจจุบัน กอง"); + + b.Property("OccupationPosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่งปัจจุบัน สังกัด"); + + b.Property("OccupationPositionType") + .HasColumnType("longtext") + .HasComment("ตำแหน่งปัจจุบัน ประเภทราชการ"); + + b.Property("OccupationSalary") + .HasColumnType("int") + .HasComment("ตำแหน่งปัจจุบัน เงินเดือน"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .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("PosNumber") + .HasColumnType("int") + .HasComment("ชื่อตำแหน่งเลขที่"); + + b.Property("PosPath") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่ง"); + + b.Property("PositionCandidateId") + .HasColumnType("char(36)"); + + b.Property("PositionLevel") + .HasColumnType("longtext") + .HasComment("ระดับ"); + + 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("PositionType") + .HasColumnType("longtext") + .HasComment("ประเภทตำแหน่ง"); + + b.Property("Prefix") + .HasColumnType("longtext") + .HasComment("Id คำนำหน้า"); + + b.Property("ProfileImgId") + .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("longtext") + .HasComment("Id อำเภอที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistProvinceId") + .HasColumnType("longtext") + .HasComment("Id จังหวัดที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("longtext") + .HasComment("Id ตำบลที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลสละสิทธิ์"); + + b.Property("Relationship") + .HasColumnType("longtext") + .HasComment("Id สถานภาพ"); + + b.Property("ReliefDocId") + .HasColumnType("char(36)"); + + b.Property("ReliefReason") + .HasColumnType("longtext") + .HasComment("เหตุผลผ่อนผัน"); + + b.Property("Religion") + .HasColumnType("longtext") + .HasComment("Id ศาสนา"); + + b.Property("RemarkHorizontal") + .HasColumnType("longtext") + .HasComment("หมายเหตุแนวนอน"); + + b.Property("RemarkVertical") + .HasColumnType("longtext") + .HasComment("หมายเหตุแนวตั้ง"); + + 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.Property("child1") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1"); + + b.Property("child1Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1"); + + b.Property("child1IdOld") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1"); + + b.Property("child1ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1"); + + b.Property("child2") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2"); + + b.Property("child2Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2"); + + b.Property("child2IdOld") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2"); + + b.Property("child2ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2"); + + b.Property("child3") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3"); + + b.Property("child3Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3"); + + b.Property("child3IdOld") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3"); + + b.Property("child3ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3"); + + b.Property("child4") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4"); + + b.Property("child4Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4"); + + b.Property("child4IdOld") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4"); + + b.Property("child4ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4"); + + b.Property("node") + .HasColumnType("int") + .HasComment("ระดับโครงสร้าง"); + + b.Property("nodeId") + .HasColumnType("char(36)") + .HasComment("id โครงสร้าง"); + + b.Property("nodeIdOld") + .HasColumnType("longtext") + .HasComment("id โครงสร้าง"); + + b.Property("nodeOld") + .HasColumnType("longtext") + .HasComment("ระดับโครงสร้าง"); + + b.Property("orgRevisionId") + .HasColumnType("longtext") + .HasComment("id revision"); + + b.Property("orgRevisionIdOld") + .HasColumnType("longtext") + .HasComment("id revision"); + + b.Property("orgTreeShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน"); + + b.Property("organizationName") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน"); + + b.Property("posLevelId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง"); + + b.Property("posLevelIdOld") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง"); + + b.Property("posLevelName") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("posMasterNo") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("posTypeId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง"); + + b.Property("posTypeIdOld") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง"); + + b.Property("posTypeName") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("positionField") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("positionFieldOld") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("positionId") + .HasColumnType("longtext") + .HasComment("id ตำแหน่ง"); + + b.Property("positionIdOld") + .HasColumnType("longtext") + .HasComment("id ตำแหน่ง"); + + b.Property("positionName") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน"); + + b.Property("positionNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน"); + + b.Property("posmasterId") + .HasColumnType("longtext") + .HasComment("id อัตรากำลัง"); + + b.Property("posmasterIdOld") + .HasColumnType("longtext") + .HasComment("id อัตรากำลัง"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profileId"); + + b.Property("root") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root"); + + b.Property("rootId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root"); + + b.Property("rootIdOld") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root"); + + b.Property("rootShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root"); + + b.Property("typeCommand") + .HasColumnType("longtext") + .HasComment("ประเภทคำสั่ง"); + + b.HasKey("Id"); + + b.HasIndex("OrganizationPositionId"); + + b.HasIndex("PlacementId"); + + b.HasIndex("PositionCandidateId"); + + b.HasIndex("PositionLineId"); + + b.HasIndex("PositionNumberId"); + + b.HasIndex("PositionPathId"); + + b.HasIndex("PositionPathSideId"); + + b.HasIndex("ProfileImgId"); + + b.HasIndex("ReliefDocId"); + + b.ToTable("PlacementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfileDoc", 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("PlacementProfileId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PlacementProfileId"); + + b.ToTable("PlacementProfileDocs"); + }); + + 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("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + b.Property("AmountOld") + .HasColumnType("double") + .HasComment("ข้อมูลหน่วยงานเดิม เงินเดือน"); + + b.Property("AvatarId") + .HasColumnType("char(36)"); + + b.Property("BloodGroup") + .HasColumnType("longtext") + .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("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("EducationOld") + .HasColumnType("longtext") + .HasComment("วุฒิ/สาขาเดิม"); + + b.Property("Gender") + .HasColumnType("longtext") + .HasComment("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("Nationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติ"); + + b.Property("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Race") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("เชื้อชาติ"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับโอนราชการ"); + + b.Property("Relationship") + .HasColumnType("longtext") + .HasComment("Id สถานะภาพ"); + + b.Property("Religion") + .HasColumnType("longtext") + .HasComment("Id ศาสนา"); + + b.Property("ReportingDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("TelephoneNumber") + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasComment("เบอร์โทร"); + + b.Property("child1") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1"); + + b.Property("child1Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2"); + + b.Property("child2Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3"); + + b.Property("child3Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4"); + + b.Property("child4Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("node") + .HasColumnType("int") + .HasComment("ระดับโครงสร้าง"); + + b.Property("nodeId") + .HasColumnType("char(36)") + .HasComment("id โครงสร้าง"); + + b.Property("orgRevisionId") + .HasColumnType("longtext") + .HasComment("id revision"); + + b.Property("posLevelId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง"); + + b.Property("posLevelName") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNo") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง"); + + b.Property("posTypeName") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("position") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน"); + + b.Property("positionField") + .HasColumnType("longtext") + .HasComment("สายงาน"); + + b.Property("positionId") + .HasColumnType("longtext") + .HasComment("id ตำแหน่ง"); + + b.Property("posmasterId") + .HasColumnType("longtext") + .HasComment("id อัตรากำลัง"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("root") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root"); + + b.Property("rootId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + b.HasIndex("AvatarId"); + + 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("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + 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("ProfileId") + .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("ProfileId"); + + 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("DateRepatriation") + .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("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + 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("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + 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.Probation.CronjobNotiProbation", 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("IsSendInbox") + .HasColumnType("tinyint(1)") + .HasComment("ส่งกล่องข้อความหรือไม่?"); + + b.Property("IsSendMail") + .HasColumnType("tinyint(1)") + .HasComment("ส่งอีเมล์หรือไม่?"); + + b.Property("IsSendNoti") + .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("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("CronjobNotiProbations"); + }); + + 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("DocumentForwardId") + .HasColumnType("char(36)"); + + 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("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลการเสียชีวิต"); + + b.Property("child1") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1"); + + b.Property("child1Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1"); + + b.Property("child1ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1"); + + b.Property("child2") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2"); + + b.Property("child2Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2"); + + b.Property("child2ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2"); + + b.Property("child3") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3"); + + b.Property("child3Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3"); + + b.Property("child3ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3"); + + b.Property("child4") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4"); + + b.Property("child4Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4"); + + b.Property("child4ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง"); + + b.Property("posLevelName") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง"); + + b.Property("posMasterNo") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง"); + + b.Property("posTypeId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง"); + + b.Property("posTypeName") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง"); + + b.Property("position") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("root") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root"); + + b.Property("rootId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root"); + + b.Property("rootShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root"); + + b.HasKey("Id"); + + b.HasIndex("DocumentForwardId"); + + b.HasIndex("DocumentId"); + + b.ToTable("RetirementDeceaseds"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDeceasedNoti", 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("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(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") + .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("RetirementDeceasedId") + .HasColumnType("char(36)"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RetirementDeceasedId"); + + b.ToTable("RetirementDeceasedNotis"); + }); + + 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("Amount") + .HasColumnType("double") + .HasComment("เงินเดือน"); + + 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("EducationOld") + .HasColumnType("longtext") + .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("LeaveDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกราชการเมื่อ"); + + b.Property("MilitaryDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่พ้นจากราชการทหาร"); + + b.Property("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("PositionDate") + .HasColumnType("datetime(6)") + .HasComment("ดำรงตำแหน่งในระดับปัจจุบันเมื่อ"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่รับย้ายราชการ"); + + b.Property("RecruitDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่บรรจุ"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + b.HasIndex("CommandTypeId"); + + b.ToTable("RetirementOthers"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOtherDoc", 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("RetirementOtherId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RetirementOtherId"); + + b.ToTable("RetirementOtherDocs"); + }); + + 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("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Status") + .IsRequired() + .HasColumnType("longtext") + .HasComment("สถานะคำขอ"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + 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("Detail") + .IsRequired() + .HasColumnType("longtext") + .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("Round") + .HasColumnType("int") + .HasComment("ครั้งที่"); + + b.Property("SignDate") + .HasColumnType("datetime(6)") + .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("DocumentId"); + + 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("Detail") + .IsRequired() + .HasColumnType("longtext") + .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("ProfileFile") + .IsRequired() + .HasColumnType("longtext") + .HasComment("รายชื่อเกษียญ"); + + b.Property("RetirementPeriodId") + .HasColumnType("char(36)"); + + b.Property("Round") + .HasColumnType("int") + .HasComment("ครั้งที่"); + + b.Property("SignDate") + .HasColumnType("datetime(6)") + .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("DocumentId"); + + 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("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasComment("เหตุผล"); + + b.Property("Remove") + .IsRequired() + .HasColumnType("longtext") + .HasComment("ลบออกจากเกษียญ"); + + b.Property("RetirementPeriodId") + .HasColumnType("char(36)"); + + b.Property("child1") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 "); + + b.Property("child1Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 "); + + b.Property("child1ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 "); + + b.Property("child2") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 "); + + b.Property("child2Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 "); + + b.Property("child2ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 "); + + b.Property("child3") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 "); + + b.Property("child3Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 "); + + b.Property("child3ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 "); + + b.Property("child4") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 "); + + b.Property("child4Id") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 "); + + b.Property("child4ShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 "); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posExecutiveId") + .HasColumnType("longtext") + .HasComment("id ตำแหน่งทางการบริหาร "); + + b.Property("posExecutiveName") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งทางการบริหาร "); + + b.Property("posLevelId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง "); + + b.Property("posLevelName") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง "); + + b.Property("posLevelRank") + .HasColumnType("int") + .HasComment("ลำดับระดับตำแหน่ง "); + + b.Property("posMasterNo") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง "); + + b.Property("posNo") + .HasColumnType("longtext") + .HasComment("เลขที่ตำแหน่ง "); + + b.Property("posTypeId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง "); + + b.Property("posTypeName") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง "); + + b.Property("posTypeRank") + .HasColumnType("int") + .HasComment("ลำดับประเภทตำแหน่ง "); + + b.Property("position") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่งในสายงาน "); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("root") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root "); + + b.Property("rootId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root "); + + b.Property("rootShortName") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root "); + + b.HasKey("Id"); + + b.HasIndex("RetirementPeriodId"); + + b.ToTable("RetirementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementQuestion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("Adjust") + .HasColumnType("longtext") + .HasComment("อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง"); + + b.Property("AdjustOther") + .HasColumnType("longtext") + .HasComment("อื่นๆ อะไรคือสิ่งที่ท่านเห็นว่าควรปรับปรุง"); + + b.Property("AppointDate") + .HasColumnType("datetime(6)") + .HasComment("กําหนดวันนัดหมายเพื่อทําการสัมภาษณ์การลาออก"); + + b.Property("Comment") + .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("ExitFactor") + .HasColumnType("longtext") + .HasComment("ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ"); + + b.Property("ExitFactorOther") + .HasColumnType("longtext") + .HasComment("อื่นๆ ปัจจัยใดที่ทำให้ท่านตัดสินใจลาออกจากราชการ"); + + b.Property("FutureWork") + .HasColumnType("tinyint(1)") + .HasComment("หากท่านมีโอกาสในอนาคต ท่านอยากกลับมาร่วมงานกับกรุงเทพมหานครหรือไม่"); + + b.Property("FutureWorkReason") + .HasColumnType("longtext") + .HasComment("เหตุผลหากท่านมีโอกาสในอนาคต ท่านอยากกลับมาร่วมงานกับกรุงเทพมหานครหรือไม่"); + + b.Property("Havejob") + .HasColumnType("tinyint(1)") + .HasComment("ท่านมีงานใหม่หรือไม่และอะไรคือสิ่งที่ที่ทำงานใหม่ให้กับท่าน ซึ่งท่านรู้สึกว่าเป็นที่น่าพอใจมากกว่าการปฏิบัติราชการกับกรุงเทพมหานคร"); + + b.Property("HavejobReason") + .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("NotExitFactor") + .HasColumnType("longtext") + .HasComment("ปัจจัยใดที่จะช่วยทำให้ท่านเปลี่ยนใจ ไม่อยากลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร"); + + b.Property("RealReason") + .HasColumnType("longtext") + .HasComment("โปรดระบุสาเหตุที่แท้จริง ที่ทำให้ท่านตัดสินใจลาออกจากการปฏิบัติราชการกับกรุงเทพมหานคร"); + + b.Property("ReasonWork") + .HasColumnType("longtext") + .HasComment("เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร"); + + b.Property("ReasonWorkOther") + .HasColumnType("longtext") + .HasComment("อื่นๆ เหตุใดท่านจึงตัดสินใจร่วมงานกับกรุงเทพมหานคร"); + + b.Property("RetirementResignId") + .HasColumnType("char(36)"); + + b.Property("Score1") + .HasColumnType("int") + .HasComment("คะแนนข้อ 1"); + + b.Property("Score10") + .HasColumnType("int") + .HasComment("คะแนนข้อ 10"); + + b.Property("Score2") + .HasColumnType("int") + .HasComment("คะแนนข้อ 2"); + + b.Property("Score3") + .HasColumnType("int") + .HasComment("คะแนนข้อ 3"); + + b.Property("Score4") + .HasColumnType("int") + .HasComment("คะแนนข้อ 4"); + + b.Property("Score5") + .HasColumnType("int") + .HasComment("คะแนนข้อ 5"); + + b.Property("Score6") + .HasColumnType("int") + .HasComment("คะแนนข้อ 6"); + + b.Property("Score7") + .HasColumnType("int") + .HasComment("คะแนนข้อ 7"); + + b.Property("Score8") + .HasColumnType("int") + .HasComment("คะแนนข้อ 8"); + + b.Property("Score9") + .HasColumnType("int") + .HasComment("คะแนนข้อ 9"); + + b.Property("ScoreTotal") + .HasColumnType("int") + .HasComment("คะแนนรวม"); + + b.Property("SuggestFriends") + .HasColumnType("tinyint(1)") + .HasComment("ท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่"); + + b.Property("SuggestFriendsReason") + .HasColumnType("longtext") + .HasComment("เหตุผลท่านจะแนะนำเพื่อนให้มาร่วมงานกับกรุงเทพมหานครหรือไม่"); + + b.Property("Suggestion") + .HasColumnType("longtext") + .HasComment("ความคิดเห็นและข้อเสนอแนะอื่น ๆ "); + + b.Property("TimeThink") + .HasColumnType("int") + .HasComment("สำหรับการลาออกในครั้งนี้ ท่านได้คิดทบทวนอย่างจริงจังเป็นระยะเวลานานเท่าใด"); + + b.HasKey("Id"); + + b.HasIndex("RetirementResignId"); + + b.ToTable("RetirementQuestions"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementQuestionnaireQuestion", 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("Question10Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 10"); + + b.Property("Question10Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 10"); + + b.Property("Question10Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 10"); + + b.Property("Question1Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 1"); + + b.Property("Question1Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 1"); + + b.Property("Question1Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 1"); + + b.Property("Question2Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 2"); + + b.Property("Question2Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 2"); + + b.Property("Question2Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 2"); + + b.Property("Question3Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 3"); + + b.Property("Question3Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 3"); + + b.Property("Question3Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 3"); + + b.Property("Question4Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 4"); + + b.Property("Question4Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 4"); + + b.Property("Question4Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 4"); + + b.Property("Question5Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 5"); + + b.Property("Question5Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 5"); + + b.Property("Question5Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 5"); + + b.Property("Question6Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 6"); + + b.Property("Question6Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 6"); + + b.Property("Question6Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 6"); + + b.Property("Question7Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 7"); + + b.Property("Question7Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 7"); + + b.Property("Question7Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 7"); + + b.Property("Question8Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 8"); + + b.Property("Question8Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 8"); + + b.Property("Question8Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 8"); + + b.Property("Question9Answer") + .HasColumnType("longtext") + .HasComment("กรอกคะแนน 9"); + + b.Property("Question9Desc") + .HasColumnType("longtext") + .HasComment("คำถามข้อที่ 9"); + + b.Property("Question9Score") + .HasColumnType("longtext") + .HasComment("คำตอบข้อที่ 9"); + + b.HasKey("Id"); + + b.ToTable("RetirementQuestionnaireQuestions"); + }); + + 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("ApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติ"); + + b.Property("CancelReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยกเลิก"); + + b.Property("CommanderApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้บังคับบัญชา"); + + b.Property("CommanderReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectReason") + .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("IsActive") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการใช้งาน"); + + b.Property("IsCancel") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยกเลิก"); + + b.Property("IsDiscipline") + .HasColumnType("tinyint(1)") + .HasComment("สถานะพฤติการณ์ทางวินัย"); + + b.Property("IsNoBurden") + .HasColumnType("tinyint(1)") + .HasComment("สถานะไม่มีภาระผูกพันค้ำประกันทุนการศึกษา"); + + b.Property("IsNoDebt") + .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("OfficerApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติการเจ้าหน้าที่"); + + b.Property("OfficerReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งการเจ้าหน้าที่"); + + b.Property("OligarchApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้ดูแล"); + + b.Property("OligarchReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งผู้ดูแล"); + + b.Property("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ลาออกจากราชการ"); + + b.Property("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลไม่อนุมัติ"); + + b.Property("RemarkHorizontal") + .HasColumnType("longtext") + .HasComment("หมายเหตุแนวนอน"); + + b.Property("SendDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยื่นขอออกราชการ"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะลาออก"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + b.ToTable("RetirementResigns"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignCancel", 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("ApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติ"); + + b.Property("CancelReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยกเลิก"); + + b.Property("CommanderApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้บังคับบัญชา"); + + b.Property("CommanderReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectReason") + .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("IsActive") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการใช้งาน"); + + b.Property("IsDiscipline") + .HasColumnType("tinyint(1)") + .HasComment("สถานะพฤติการณ์ทางวินัย"); + + b.Property("IsNoBurden") + .HasColumnType("tinyint(1)") + .HasComment("สถานะไม่มีภาระผูกพันค้ำประกันทุนการศึกษา"); + + b.Property("IsNoDebt") + .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("OfficerApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติการเจ้าหน้าที่"); + + b.Property("OfficerReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งการเจ้าหน้าที่"); + + b.Property("OligarchApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้ดูแล"); + + b.Property("OligarchReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งผู้ดูแล"); + + b.Property("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ลาออกจากราชการ"); + + b.Property("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลไม่อนุมัติ"); + + b.Property("RemarkHorizontal") + .HasColumnType("longtext") + .HasComment("หมายเหตุแนวนอน"); + + b.Property("RetirementResignId") + .HasColumnType("char(36)"); + + b.Property("SendDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยื่นขอออกราชการ"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะลาออก"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + b.HasIndex("RetirementResignId"); + + b.ToTable("RetirementResignCancels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignDebtDoc", 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("RetirementResignId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RetirementResignId"); + + b.ToTable("RetirementResignDebtDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignDoc", 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("RetirementResignId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RetirementResignId"); + + b.ToTable("RetirementResignDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployee", 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("ApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติ"); + + b.Property("CancelReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยกเลิก"); + + b.Property("CommanderApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้บังคับบัญชา"); + + b.Property("CommanderReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectReason") + .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("IsActive") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการใช้งาน"); + + b.Property("IsCancel") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยกเลิก"); + + b.Property("IsDiscipline") + .HasColumnType("tinyint(1)") + .HasComment("สถานะพฤติการณ์ทางวินัย"); + + b.Property("IsNoBurden") + .HasColumnType("tinyint(1)") + .HasComment("สถานะไม่มีภาระผูกพันค้ำประกันทุนการศึกษา"); + + b.Property("IsNoDebt") + .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("OfficerApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติการเจ้าหน้าที่"); + + b.Property("OfficerReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งการเจ้าหน้าที่"); + + b.Property("OligarchApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้ดูแล"); + + b.Property("OligarchReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งผู้ดูแล"); + + b.Property("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ลาออกจากราชการ"); + + b.Property("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลไม่อนุมัติ"); + + b.Property("RemarkHorizontal") + .HasColumnType("longtext") + .HasComment("หมายเหตุแนวนอน"); + + b.Property("SendDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยื่นขอออกราชการ"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะลาออก"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + b.ToTable("RetirementResignEmployees"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployeeCancel", 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("ApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติ"); + + b.Property("CancelReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยกเลิก"); + + b.Property("CommanderApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้บังคับบัญชา"); + + b.Property("CommanderReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้บังคับบัญชา"); + + b.Property("CommanderRejectReason") + .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("IsActive") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการใช้งาน"); + + b.Property("IsDiscipline") + .HasColumnType("tinyint(1)") + .HasComment("สถานะพฤติการณ์ทางวินัย"); + + b.Property("IsNoBurden") + .HasColumnType("tinyint(1)") + .HasComment("สถานะไม่มีภาระผูกพันค้ำประกันทุนการศึกษา"); + + b.Property("IsNoDebt") + .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("OfficerApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติการเจ้าหน้าที่"); + + b.Property("OfficerReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งการเจ้าหน้าที่"); + + b.Property("OfficerRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งการเจ้าหน้าที่"); + + b.Property("OligarchApproveReason") + .HasColumnType("longtext") + .HasComment("เหตุผลอนุมัติผู้ดูแล"); + + b.Property("OligarchReject") + .HasColumnType("tinyint(1)") + .HasComment("สถานะยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยับยั้งผู้ดูแล"); + + b.Property("OligarchRejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลยับยั้งผู้ดูแล"); + + b.Property("OrganizationOld") + .HasColumnType("longtext") + .HasComment("สังกัดเดิม"); + + b.Property("OrganizationPositionOld") + .HasColumnType("longtext") + .HasComment("สังกัด"); + + b.Property("PositionLevelOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ระดับ"); + + b.Property("PositionNumberOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม เลขที่"); + + b.Property("PositionOld") + .HasColumnType("longtext") + .HasComment("ตำแหน่งเดิม"); + + b.Property("PositionTypeOld") + .HasColumnType("longtext") + .HasComment("ข้อมูลหน่วยงานเดิม ตำแหน่งประเภท"); + + b.Property("Reason") + .HasColumnType("longtext") + .HasComment("เหตุผลที่ลาออกจากราชการ"); + + b.Property("RejectReason") + .HasColumnType("longtext") + .HasComment("เหตุผลไม่อนุมัติ"); + + b.Property("RemarkHorizontal") + .HasColumnType("longtext") + .HasComment("หมายเหตุแนวนอน"); + + b.Property("RetirementResignEmployeeId") + .HasColumnType("char(36)"); + + b.Property("SendDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ยื่นขอออกราชการ"); + + b.Property("Status") + .HasColumnType("longtext") + .HasComment("สถานะลาออก"); + + b.Property("child1Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child1 old"); + + b.Property("child1OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child1 old"); + + b.Property("child1ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child1 old"); + + b.Property("child2Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child2 old"); + + b.Property("child2OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child2 old"); + + b.Property("child2ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child2 old"); + + b.Property("child3Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child3 old"); + + b.Property("child3OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child3 old"); + + b.Property("child3ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child3 old"); + + b.Property("child4Old") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน child4 old"); + + b.Property("child4OldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน child4 old"); + + b.Property("child4ShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน child4 old"); + + b.Property("citizenId") + .HasColumnType("longtext") + .HasComment("เลขบัตรประชาชน"); + + b.Property("firstName") + .HasColumnType("longtext") + .HasComment("ชื่อ"); + + b.Property("lastName") + .HasColumnType("longtext") + .HasComment("นามสกุล"); + + b.Property("posLevelNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อระดับตำแหน่ง old"); + + b.Property("posLevelOldId") + .HasColumnType("longtext") + .HasComment("id ระดับตำแหน่ง old"); + + b.Property("posMasterNoOld") + .HasColumnType("int") + .HasComment("เลขที่ตำแหน่ง old"); + + b.Property("posTypeNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทตำแหน่ง old"); + + b.Property("posTypeOldId") + .HasColumnType("longtext") + .HasComment("id ประเภทตำแหน่ง old"); + + b.Property("prefix") + .HasColumnType("longtext") + .HasComment("คำนำหน้า"); + + b.Property("profileId") + .HasColumnType("longtext") + .HasComment("profile Id"); + + b.Property("rootOld") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน root old"); + + b.Property("rootOldId") + .HasColumnType("longtext") + .HasComment("id หน่วยงาน root old"); + + b.Property("rootShortNameOld") + .HasColumnType("longtext") + .HasComment("ชื่อย่อหน่วยงาน root old"); + + b.HasKey("Id"); + + b.HasIndex("RetirementResignEmployeeId"); + + b.ToTable("RetirementResignEmployeeCancels"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployeeDebtDoc", 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("RetirementResignEmployeeId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RetirementResignEmployeeId"); + + b.ToTable("RetirementResignEmployeeDebtDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployeeDoc", 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("RetirementResignEmployeeId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("RetirementResignEmployeeId"); + + b.ToTable("RetirementResignEmployeeDocs"); + }); + + 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"); + + 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.PositionEmployeeGroup", "PositionEmployeeGroup") + .WithMany() + .HasForeignKey("PositionEmployeeGroupId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.PositionEmployeeLevel", "PositionEmployeeLevel") + .WithMany() + .HasForeignKey("PositionEmployeeLevelId"); + + 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.PositionEmployeePositionSide", "PositionEmployeePositionSide") + .WithMany() + .HasForeignKey("PositionEmployeePositionSideId"); + + 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("PositionEmployeeGroup"); + + b.Navigation("PositionEmployeeLevel"); + + b.Navigation("PositionEmployeeLine"); + + b.Navigation("PositionEmployeePosition"); + + b.Navigation("PositionEmployeePositionSide"); + + 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.ProfileEmployment", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("Employments") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.HR.ProfileEmploymentHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.ProfileEmployment", "ProfileEmployment") + .WithMany() + .HasForeignKey("ProfileEmploymentId"); + + b.Navigation("ProfileEmployment"); + }); + + 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", null) + .WithMany("Insignias") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Insignia"); + }); + + 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", null) + .WithMany("Leaves") + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.HR.TypeLeave", "TypeLeave") + .WithMany() + .HasForeignKey("TypeLeaveId"); + + 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.ProfileLeaveSummary", b => + { + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany("LeaveSummary") + .HasForeignKey("ProfileId"); + + b.Navigation("Profile"); + }); + + 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.InsigniaManage", b => + { + b.HasOne("BMA.EHR.Domain.Models.MetaData.Insignia", "Insignia") + .WithMany() + .HasForeignKey("InsigniaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Insignia"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaManageOrganiation", b => + { + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaManage", "InsigniaManage") + .WithMany("InsigniaManageOrganiations") + .HasForeignKey("InsigniaManageId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsigniaManage"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaManageProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaManageOrganiation", "InsigniaManageOrganiation") + .WithMany("InsigniaManageProfiles") + .HasForeignKey("InsigniaManageOrganiationId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaNoteProfile", "InsigniaNoteProfile") + .WithMany() + .HasForeignKey("InsigniaNoteProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("InsigniaManageOrganiation"); + + b.Navigation("InsigniaNoteProfile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNoteDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaNote", "InsigniaNote") + .WithMany("InsigniaNoteDocs") + .HasForeignKey("InsigniaNoteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("InsigniaNote"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNoteProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "DocReceiveInsignia") + .WithMany() + .HasForeignKey("DocReceiveInsigniaId"); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "DocReturnInsignia") + .WithMany() + .HasForeignKey("DocReturnInsigniaId"); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaNote", "InsigniaNote") + .WithMany("InsigniaNoteProfiles") + .HasForeignKey("InsigniaNoteId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "OrgReceiveInsignia") + .WithMany() + .HasForeignKey("OrgReceiveInsigniaId"); + + b.HasOne("BMA.EHR.Domain.Models.Organizations.OrganizationEntity", "OrgReturnInsignia") + .WithMany() + .HasForeignKey("OrgReturnInsigniaId"); + + b.HasOne("BMA.EHR.Domain.Models.MetaData.Insignia", "RequestInsignia") + .WithMany() + .HasForeignKey("RequestInsigniaId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("DocReceiveInsignia"); + + b.Navigation("DocReturnInsignia"); + + b.Navigation("InsigniaNote"); + + b.Navigation("OrgReceiveInsignia"); + + b.Navigation("OrgReturnInsignia"); + + b.Navigation("RequestInsignia"); + }); + + 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.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaPeriod", "Period") + .WithMany("InsigniaRequests") + .HasForeignKey("PeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("Period"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaRequestProfile", b => + { + 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("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.Organizations.OrganizationEntity", "Organization") + .WithMany() + .HasForeignKey("OrganizationId"); + + 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("Organization"); + + 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.OrganizationEmployeeProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.OrganizationEmployee.OrgEmployee", "OrgEmployee") + .WithMany("OrganizationEmployeeProfiles") + .HasForeignKey("OrgEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("OrgEmployee"); + + 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.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.PlacementProfile", b => + { + 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.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.Documents.Document", "ProfileImg") + .WithMany() + .HasForeignKey("ProfileImgId"); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "ReliefDoc") + .WithMany() + .HasForeignKey("ReliefDocId"); + + b.Navigation("OrganizationPosition"); + + b.Navigation("Placement"); + + b.Navigation("PositionCandidate"); + + b.Navigation("PositionLine"); + + b.Navigation("PositionNumber"); + + b.Navigation("PositionPath"); + + b.Navigation("PositionPathSide"); + + b.Navigation("ProfileImg"); + + b.Navigation("ReliefDoc"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementProfileDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Placement.PlacementProfile", "PlacementProfile") + .WithMany("PlacementProfileDocs") + .HasForeignKey("PlacementProfileId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PlacementProfile"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Placement.PlacementReceive", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Avatar") + .WithMany() + .HasForeignKey("AvatarId"); + + b.Navigation("Avatar"); + }); + + 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.HR.Profile", "Profile") + .WithMany() + .HasForeignKey("ProfileId") + .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("Profile"); + + 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.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", "DocumentForward") + .WithMany() + .HasForeignKey("DocumentForwardId"); + + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.Navigation("Document"); + + b.Navigation("DocumentForward"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementDeceasedNoti", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementDeceased", "RetirementDeceased") + .WithMany("RetirementDeceasedNotis") + .HasForeignKey("RetirementDeceasedId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementDeceased"); + }); + + 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.Navigation("CommandType"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOtherDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementOther", "RetirementOther") + .WithMany("RetirementOtherDocs") + .HasForeignKey("RetirementOtherId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementOther"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.Navigation("Document"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriodHistory", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId"); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") + .WithMany("RetirementPeriodHistorys") + .HasForeignKey("RetirementPeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementPeriod"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementProfile", b => + { + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", "RetirementPeriod") + .WithMany("RetirementProfiles") + .HasForeignKey("RetirementPeriodId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RetirementPeriod"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementQuestion", b => + { + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResign", "RetirementResign") + .WithMany() + .HasForeignKey("RetirementResignId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RetirementResign"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignCancel", b => + { + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResign", "RetirementResign") + .WithMany("RetirementResignCancels") + .HasForeignKey("RetirementResignId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RetirementResign"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignDebtDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResign", "RetirementResign") + .WithMany("RetirementResignDebtDocs") + .HasForeignKey("RetirementResignId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementResign"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResign", "RetirementResign") + .WithMany("RetirementResignDocs") + .HasForeignKey("RetirementResignId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementResign"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployeeCancel", b => + { + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployee", "RetirementResignEmployee") + .WithMany("RetirementResignEmployeeCancels") + .HasForeignKey("RetirementResignEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("RetirementResignEmployee"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployeeDebtDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployee", "RetirementResignEmployee") + .WithMany("RetirementResignEmployeeDebtDocs") + .HasForeignKey("RetirementResignEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementResignEmployee"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployeeDoc", b => + { + b.HasOne("BMA.EHR.Domain.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployee", "RetirementResignEmployee") + .WithMany("RetirementResignEmployeeDocs") + .HasForeignKey("RetirementResignEmployeeId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("RetirementResignEmployee"); + }); + + 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("Employments"); + + b.Navigation("FamilyHistory"); + + b.Navigation("FatherHistory"); + + b.Navigation("GovernmentHistory"); + + b.Navigation("Honors"); + + b.Navigation("Insignias"); + + b.Navigation("LeaveSummary"); + + 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.InsigniaManage", b => + { + b.Navigation("InsigniaManageOrganiations"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaManageOrganiation", b => + { + b.Navigation("InsigniaManageProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNote", b => + { + b.Navigation("InsigniaNoteDocs"); + + b.Navigation("InsigniaNoteProfiles"); + }); + + 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("OrganizationEmployeeProfiles"); + + 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"); + + b.Navigation("PlacementProfileDocs"); + }); + + 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.RetirementDeceased", b => + { + b.Navigation("RetirementDeceasedNotis"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementOther", b => + { + b.Navigation("RetirementOtherDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementPeriod", b => + { + b.Navigation("RetirementPeriodHistorys"); + + b.Navigation("RetirementProfiles"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResign", b => + { + b.Navigation("RetirementResignCancels"); + + b.Navigation("RetirementResignDebtDocs"); + + b.Navigation("RetirementResignDocs"); + }); + + modelBuilder.Entity("BMA.EHR.Domain.Models.Retirement.RetirementResignEmployee", b => + { + b.Navigation("RetirementResignEmployeeCancels"); + + b.Navigation("RetirementResignEmployeeDebtDocs"); + + b.Navigation("RetirementResignEmployeeDocs"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.cs b/BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.cs new file mode 100644 index 00000000..cad3af56 --- /dev/null +++ b/BMA.EHR.Infrastructure/Migrations/20241118093933_update table insignia add rootid.cs @@ -0,0 +1,97 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Infrastructure.Migrations +{ + /// + public partial class updatetableinsigniaaddrootid : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AddColumn( + name: "Root", + table: "InsigniaRequestProfiles", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "RootId", + table: "InsigniaRequestProfiles", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "Root", + table: "InsigniaNoteProfiles", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "RootId", + table: "InsigniaNoteProfiles", + type: "char(36)", + nullable: true, + collation: "ascii_general_ci"); + + migrationBuilder.AddColumn( + name: "BorrowOrganization", + table: "InsigniaManageProfiles", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "ReturnOrganization", + table: "InsigniaManageProfiles", + type: "longtext", + nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.AddColumn( + name: "Organization", + table: "InsigniaManageOrganiations", + type: "longtext", + nullable: true, + comment: "รหัสหน่วยงาน") + .Annotation("MySql:CharSet", "utf8mb4"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropColumn( + name: "Root", + table: "InsigniaRequestProfiles"); + + migrationBuilder.DropColumn( + name: "RootId", + table: "InsigniaRequestProfiles"); + + migrationBuilder.DropColumn( + name: "Root", + table: "InsigniaNoteProfiles"); + + migrationBuilder.DropColumn( + name: "RootId", + table: "InsigniaNoteProfiles"); + + migrationBuilder.DropColumn( + name: "BorrowOrganization", + table: "InsigniaManageProfiles"); + + migrationBuilder.DropColumn( + name: "ReturnOrganization", + table: "InsigniaManageProfiles"); + + migrationBuilder.DropColumn( + name: "Organization", + table: "InsigniaManageOrganiations"); + } + } +} diff --git a/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs b/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs index c3b8d9cc..8e6a6fa7 100644 --- a/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs +++ b/BMA.EHR.Infrastructure/Migrations/ApplicationDBContextModelSnapshot.cs @@ -5763,6 +5763,10 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnOrder(102) .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + b.Property("Organization") + .HasColumnType("longtext") + .HasComment("รหัสหน่วยงาน"); + b.Property("OrganizationId") .HasColumnType("char(36)") .HasComment("รหัสหน่วยงาน"); @@ -5791,6 +5795,9 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("datetime(6)") .HasComment("ยืมวันที่"); + b.Property("BorrowOrganization") + .HasColumnType("longtext"); + b.Property("BorrowOrganizationId") .HasColumnType("char(36)") .HasComment("Fk Table OrganizationOrganization Borrow"); @@ -5843,6 +5850,9 @@ namespace BMA.EHR.Infrastructure.Migrations .HasColumnType("datetime(6)") .HasComment("คืนวันที่"); + b.Property("ReturnOrganization") + .HasColumnType("longtext"); + b.Property("ReturnOrganizationId") .HasColumnType("char(36)") .HasComment("Fk Table OrganizationOrganization Return"); @@ -6153,6 +6163,12 @@ namespace BMA.EHR.Infrastructure.Migrations b.Property("RequestInsigniaId") .HasColumnType("char(36)"); + b.Property("Root") + .HasColumnType("longtext"); + + b.Property("RootId") + .HasColumnType("char(36)"); + b.Property("Salary") .HasColumnType("double"); @@ -6497,6 +6513,12 @@ namespace BMA.EHR.Infrastructure.Migrations b.Property("RequestInsigniaId") .HasColumnType("char(36)"); + b.Property("Root") + .HasColumnType("longtext"); + + b.Property("RootId") + .HasColumnType("char(36)"); + b.Property("Salary") .HasColumnType("double"); diff --git a/BMA.EHR.Insignia/Controllers/InsigniaManageController.cs b/BMA.EHR.Insignia/Controllers/InsigniaManageController.cs index 846bee5d..22ea2484 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaManageController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaManageController.cs @@ -283,7 +283,7 @@ namespace BMA.EHR.Insignia.Service.Controllers .Select(p => new { Id = p.Id, - OrganizationOrganization = _userProfileRepository.GetOc(p.OrganizationId, 0, AccessToken) == null ? "" : _userProfileRepository.GetOc(p.OrganizationId, 0, AccessToken)!.Root, + OrganizationOrganization = p.Organization, Total = p.Total, Allocate = p.InsigniaManageProfiles.Where(x => x.Status == false).Count(), Remain = p.Total - p.InsigniaManageProfiles.Where(x => x.Status == false).Count(), @@ -312,36 +312,26 @@ namespace BMA.EHR.Insignia.Service.Controllers return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } - var organization = _userProfileRepository.GetOc(req.OrganizationOrganizationId, 0, AccessToken); - - //var organization = await _context.Organizations.AsQueryable() - // .Include(x => x.OrganizationOrganization) - // .FirstOrDefaultAsync(x => x.Id == req.OrganizationOrganizationId); - if (organization == null) - return Error(GlobalMessages.OrganizationNotFound); - //if (organization.OrganizationOrganization == null) - // return Error(GlobalMessages.OrganizationNotFound); - var insigniaManage = await _context.InsigniaManages.AsQueryable() .Include(x => x.InsigniaManageOrganiations) - //.ThenInclude(x => x.OrganizationOrganization) .FirstOrDefaultAsync(x => x.Id == req.insigniaManageId); if (insigniaManage == null) return Error(GlobalMessages.InsigniaManageNotFound); var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable() - .FirstOrDefaultAsync(x => x.OrganizationId == organization.RootId && x.InsigniaManage == insigniaManage); + .FirstOrDefaultAsync(x => x.OrganizationId == req.OrganizationOrganizationId && x.InsigniaManage == insigniaManage); if (insigniaManageOrganiation != null) return Error(GlobalMessages.InsigniaManageOrgDupicate); - var total = insigniaManage.InsigniaManageOrganiations.Where(x => x.OrganizationId != organization.RootId).Sum(x => x.Total); + var total = insigniaManage.InsigniaManageOrganiations.Where(x => x.OrganizationId != req.OrganizationOrganizationId).Sum(x => x.Total); if (req.Total + total > insigniaManage.Total) return Error(GlobalMessages.InsigniaManageOrgLimit); + var root = _userProfileRepository.GetOc(req.OrganizationOrganizationId, 0, AccessToken)?.Root ?? null; await _context.InsigniaManageOrganiations.AddAsync( new InsigniaManageOrganiation { - //OrganizationOrganization = organization.OrganizationOrganization, - OrganizationId = organization.RootId ?? Guid.Empty, + OrganizationId = req.OrganizationOrganizationId, + Organization = root, Total = req.Total, InsigniaManage = insigniaManage, CreatedFullName = FullName ?? "System Administrator", @@ -404,7 +394,6 @@ namespace BMA.EHR.Insignia.Service.Controllers return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } var uppdated = await _context.InsigniaManageOrganiations.AsQueryable() - //.Include(x => x.OrganizationOrganization) .Include(x => x.InsigniaManage) .FirstOrDefaultAsync(x => x.Id == insigniaManageOrgId); if (uppdated == null) @@ -412,7 +401,6 @@ namespace BMA.EHR.Insignia.Service.Controllers var insigniaManage = await _context.InsigniaManages.AsQueryable() .Include(x => x.InsigniaManageOrganiations) - //.ThenInclude(x => x.OrganizationOrganization) .FirstOrDefaultAsync(x => x.Id == uppdated.InsigniaManage.Id); if (insigniaManage == null) return Error(GlobalMessages.InsigniaManageNotFound); @@ -496,26 +484,6 @@ namespace BMA.EHR.Insignia.Service.Controllers if (insigniaNoteProfile.Status != "DONE") return Error(GlobalMessages.InsigniaNoBorrow); - var userProfile = _userProfileRepository.GetOfficerProfileById(insigniaNoteProfile.ProfileId.Value, AccessToken); - - //var _organization = await _context.Organizations.AsQueryable() - // .FirstOrDefaultAsync(x => x.Id == insigniaNoteProfile.Profile.OcId); - - //TODO : Hardcode OCId ต้องแก้ให้ดึงมาจากคน Login - var user_oc = _userProfileRepository.GetUserOCId(userProfile.Keycloak.Value, AccessToken); - if (req.BorrowOrganizationId == null) req.BorrowOrganizationId = user_oc; - //if (req.BorrowOrganizationId == null) req.BorrowOrganizationId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"); - - var organization = _userProfileRepository.GetOc(req.BorrowOrganizationId.Value, 0, AccessToken); - //if (organization == null) - // return Error(GlobalMessages.OrganizationNotFound); - - //var organization = await _context.Organizations.AsQueryable() - // .Include(x => x.OrganizationOrganization) - // .FirstOrDefaultAsync(x => x.Id == _organization.OrganizationAgencyId); - //if (organization == null) - // return Error(GlobalMessages.OrganizationNotFound); - var insigniaManage = await _context.InsigniaManages.AsQueryable() .FirstOrDefaultAsync(x => x.Year == insigniaNoteProfile.InsigniaNote.Year && x.Insignia == insigniaNoteProfile.RequestInsignia); if (insigniaManage == null) @@ -523,7 +491,7 @@ namespace BMA.EHR.Insignia.Service.Controllers var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable() .Include(x => x.InsigniaManageProfiles) - .FirstOrDefaultAsync(x => x.OrganizationId == organization.RootId && x.InsigniaManage == insigniaManage); + .FirstOrDefaultAsync(x => x.OrganizationId == insigniaNoteProfile.RootId && x.InsigniaManage == insigniaManage); if (insigniaManageOrganiation == null) return Error(GlobalMessages.InsigniaManageOrgNotFound); @@ -540,7 +508,8 @@ namespace BMA.EHR.Insignia.Service.Controllers { Status = false, InsigniaManageOrganiation = insigniaManageOrganiation, - BorrowOrganizationId = organization.RootId, + BorrowOrganizationId = insigniaNoteProfile.RootId, + BorrowOrganization = insigniaNoteProfile.Root, BorrowDate = req.BorrowDate, InsigniaNoteProfile = insigniaNoteProfile, CreatedFullName = FullName ?? "System Administrator", @@ -575,26 +544,14 @@ namespace BMA.EHR.Insignia.Service.Controllers return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } var uppdated = await _context.InsigniaManageProfiles.AsQueryable() - //.Include(x => x.BorrowOrganization) .FirstOrDefaultAsync(x => x.Id == insigniaManageProfileId); if (uppdated == null) return Error(GlobalMessages.InsigniaManageNotFound); uppdated.Status = true; uppdated.ReturnDate = req.ReturnDate; - // if (req.ReturnOrganizationId == Guid.Parse("00000000-0000-0000-0000-000000000000")) - // { uppdated.ReturnOrganizationId = uppdated.BorrowOrganizationId; - // } - // else - // { - // var organization = await _context.Organizations.AsQueryable() - // .Include(x => x.OrganizationOrganization) - // .FirstOrDefaultAsync(x => x.Id == req.ReturnOrganizationId); - // if (organization == null) - // return Error(GlobalMessages.OrganizationNotFound); - // uppdated.ReturnOrganization = organization.OrganizationOrganization; - // } + uppdated.ReturnOrganization = uppdated.BorrowOrganization; uppdated.ReturnReason = req.ReturnReason; uppdated.LastUpdateFullName = FullName ?? "System Administrator"; uppdated.LastUpdateUserId = UserId ?? ""; @@ -637,9 +594,17 @@ namespace BMA.EHR.Insignia.Service.Controllers .Select(p => new { Id = p.Id, - BorrowOrganization = p.BorrowOrganizationId == null ? null : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken), - ReturnOrganization = p.ReturnOrganizationId == null ? null : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken), - Profile = p.InsigniaNoteProfile.ProfileId == null ? null : _userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken), + BorrowOrganization = p.BorrowOrganization, + BorrowOrganizationId = p.BorrowOrganizationId, + ReturnOrganization = p.ReturnOrganization, + ReturnOrganizationId = p.ReturnOrganizationId, + Profile = p.InsigniaNoteProfile!.ProfileId ?? Guid.Empty, + CitizenId = p.InsigniaNoteProfile!.CitizenId ?? string.Empty, + Prefix = p.InsigniaNoteProfile!.Prefix ?? string.Empty, + FirstName = p.InsigniaNoteProfile!.FirstName ?? string.Empty, + LastName = p.InsigniaNoteProfile!.LastName ?? string.Empty, + ProfileType = p.InsigniaNoteProfile!.ProfileType ?? string.Empty, + Position = p.InsigniaNoteProfile!.Position ?? string.Empty, Status = p.Status, BorrowDate = p.BorrowDate, @@ -675,21 +640,21 @@ namespace BMA.EHR.Insignia.Service.Controllers { p.Id, p.Status, - BorrowOrganization = p.BorrowOrganization == null ? "" : p.BorrowOrganization.Root, - BorrowOrganizationId = p.BorrowOrganization == null ? Guid.Empty : p.BorrowOrganization.RootId, + BorrowOrganization = p.BorrowOrganization, + BorrowOrganizationId = p.BorrowOrganizationId, p.BorrowDate, p.ReturnDate, - ReturnOrganization = p.ReturnOrganization == null ? "" : p.ReturnOrganization.Root, - ReturnOrganizationId = p.ReturnOrganization == null ? Guid.Empty : p.ReturnOrganization.RootId, + ReturnOrganization = p.ReturnOrganization, + ReturnOrganizationId = p.ReturnOrganizationId, p.ReturnReason, p.LastUpdatedAt, p.CreatedAt, p.InsigniaNoteProfileId, - CitizenId = p.Profile == null ? "" : p.Profile.CitizenId, - Prefix = p.Profile == null ? "" : p.Profile.Prefix, - Position = p.Profile == null ? "" : p.Profile.Position, - FullName = p.Profile == null ? "" : $"{p.Profile.Prefix}{p.Profile.FirstName} {p.Profile.LastName}", - ProfileType = p.Profile == null ? "" : p.Profile.ProfileType, + CitizenId = p.CitizenId, + Prefix = p.Prefix, + Position = p.Position, + FullName = $"{p.Prefix}{p.FirstName} {p.LastName}", + ProfileType = p.ProfileType, p.RequestInsignia, p.RequestInsigniaId, p.RequestInsigniaShortName, @@ -712,51 +677,6 @@ namespace BMA.EHR.Insignia.Service.Controllers }) .ToList(); - //var data = await _context.InsigniaManageProfiles.AsQueryable() - // .Where(x => x.InsigniaNoteProfile.RequestInsignia.InsigniaType == insigniaType) - // .Where(x => year == 0 ? x.Id != null : x.InsigniaManageOrganiation.InsigniaManage.Year == year) - // .OrderByDescending(x => x.CreatedAt) - // .Select(p => new - // { - // Id = p.Id, - // Status = p.Status, - // BorrowOrganization = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).Root, - // BorrowOrganizationId = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).RootId, - // BorrowDate = p.BorrowDate, - // ReturnDate = p.ReturnDate, - // ReturnOrganization = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).Root, - // ReturnOrganizationId = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).RootId, - // ReturnReason = p.ReturnReason, - // LastUpdatedAt = p.LastUpdatedAt, - // CreatedAt = p.CreatedAt, - - // InsigniaNoteProfileId = p.InsigniaNoteProfile.Id, - // Prefix = _userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).Prefix, - // Position = _userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).Position, - // _userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).CitizenId, - // _userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).ProfileType, - // FullName = $"{_userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(p.InsigniaNoteProfile.ProfileId.Value, AccessToken).LastName}", - // RequestInsignia = p.InsigniaNoteProfile.RequestInsignia == null ? null : p.InsigniaNoteProfile.RequestInsignia.Name, - // RequestInsigniaId = p.InsigniaNoteProfile.RequestInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.InsigniaNoteProfile.RequestInsignia.Id, - // RequestInsigniaShortName = p.InsigniaNoteProfile.RequestInsignia == null ? null : p.InsigniaNoteProfile.RequestInsignia.ShortName, - // p.InsigniaNoteProfile.DateReceive, - // p.InsigniaNoteProfile.OrganizationOrganizationSend, - // p.InsigniaNoteProfile.OrganizationOrganizationReceive, - // InsigniaNoteProfileStatus = p.InsigniaNoteProfile.Status, - // p.InsigniaNoteProfile.Issue, - // p.InsigniaNoteProfile.Date, - // p.InsigniaNoteProfile.VolumeNo, - // p.InsigniaNoteProfile.Section, - // p.InsigniaNoteProfile.Page, - // p.InsigniaNoteProfile.No, - // p.InsigniaNoteProfile.DatePayment, - // p.InsigniaNoteProfile.TypePayment, - // p.InsigniaNoteProfile.Address, - // p.InsigniaNoteProfile.Number, - // p.InsigniaNoteProfile.Salary, - // }) - // .ToListAsync(); - return Success(data); } @@ -778,12 +698,12 @@ namespace BMA.EHR.Insignia.Service.Controllers { Id = p.Id, Status = p.Status, - BorrowOrganization = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).Root, - BorrowOrganizationId = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).RootId, + BorrowOrganization = p.BorrowOrganization, + BorrowOrganizationId = p.BorrowOrganizationId, BorrowDate = p.BorrowDate, ReturnDate = p.ReturnDate, - ReturnOrganization = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).Root, - ReturnOrganizationId = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).RootId, + ReturnOrganization = p.ReturnOrganization, + ReturnOrganizationId = p.ReturnOrganizationId, ReturnReason = p.ReturnReason, LastUpdatedAt = p.LastUpdatedAt, CreatedAt = p.CreatedAt, diff --git a/BMA.EHR.Insignia/Controllers/InsigniaPeriodController.cs b/BMA.EHR.Insignia/Controllers/InsigniaPeriodController.cs index 3a9f3c6d..b7c624cf 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaPeriodController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaPeriodController.cs @@ -92,7 +92,6 @@ namespace BMA.EHR.Insignia.Service.Controllers return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); } var insigniaPeriods = await _context.InsigniaPeriods.AsQueryable() - // .Where(x => x.Type == type) .OrderByDescending(x => x.Year) .ThenByDescending(x => x.StartDate) .Select(p => new @@ -234,7 +233,6 @@ namespace BMA.EHR.Insignia.Service.Controllers LastUpdateFullName = FullName ?? "System Administrator", LastUpdateUserId = UserId ?? "", LastUpdatedAt = DateTime.Now, - RevisionId = revisionId ?? Guid.Empty }; await _context.InsigniaPeriods.AddAsync(period); @@ -248,7 +246,6 @@ namespace BMA.EHR.Insignia.Service.Controllers period.ReliefDoc = doc; } - // await _context.InsigniaPeriods.AddAsync(period); await _context.SaveChangesAsync(); return Success(); diff --git a/BMA.EHR.Insignia/Controllers/InsigniaReceiveController.cs b/BMA.EHR.Insignia/Controllers/InsigniaReceiveController.cs index e42bc488..188a09ee 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaReceiveController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaReceiveController.cs @@ -57,87 +57,7 @@ namespace BMA.EHR.Insignia.Service.Controllers } else { - // var request = _context.InsigniaRequestProfiles - // .Include(x => x.Request) - // .ThenInclude(x => x.Period) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .Include(x => x.Profile) - // .ThenInclude(x => x.AcademicStanding) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Position) - // .Include(x => x.Profile) - // .ThenInclude(x => x.Insignias) - // .ThenInclude(x => x.Insignia) - // .ThenInclude(x => x.InsigniaType) - // .Include(x => x.Profile) - // .ThenInclude(x => x.PositionNumber) - // .Where(x => x.Request.Period.Id == result.PeriodId) - // .Where(x => x.Request.RequestStatus == "st5p") - // .Where(x => x.IsApprove) - // .Select(p => new - // { - // Profile = p.Profile.Id, - // Name = $"{p.Profile.Prefix} {p.Profile.FirstName} {p.Profile.LastName}", - // Insignia = p.RequestInsignia, - // Type = p.RequestInsignia.InsigniaType, - // IsApprove = p.IsApprove, - // InsigniaId = p.RequestInsignia.Id, - // Year = p.Request.Period.Year, - // Special = p.Special, - // LastInsignia = p.Profile.Insignias.AsQueryable() - // .Include(x => x.Insignia) - // .Where(x => x.Insignia.Id == p.RequestInsignia.Id) - // .Where(x => x.Year == p.Request.Period.Year) - // .FirstOrDefault() - // }) - // .ToList() - // .Select(r => new InsigniaReceiveResponse - // { - // Profile = r.Profile, - // Name = r.Name, - // Insignia = r.Insignia.Name, - // TypeId = r.Type == null ? null : r.Type.Id, - // TypeName = r.Type == null ? "" : r.Type.Description, - // IsApprove = r.IsApprove, - // InsigniaId = r.InsigniaId, - // InsigniaPage = r.LastInsignia == null ? "" : r.LastInsignia.Page, - // InsigniaNo = r.LastInsignia == null ? "" : r.LastInsignia.No, - // InsigniaIssue = r.LastInsignia == null ? "" : r.LastInsignia.Issue, - // InsigniaVolumeno = r.LastInsignia == null ? "" : r.LastInsignia.VolumeNo, - // InsigniaVolume = r.LastInsignia == null ? "" : r.LastInsignia.Volume, - // InsigniaSection = r.LastInsignia == null ? "" : r.LastInsignia.Section, - // InsigniaDatereceive = r.LastInsignia == null ? null : r.LastInsignia.DateReceive, - // InsigniaDateannounce = r.LastInsignia == null ? null : r.LastInsignia.DateAnnounce, - // Special = r.Special - // }) - // .ToList() - // .GroupBy(r => new { r.TypeId, r.TypeName }) - // .Select(r => new - // { - // TypeId = r.Key.TypeId, - // InsigniaIssue = r.Where(r => r.InsigniaIssue != "").FirstOrDefault() != null ? r.Where(r => r.InsigniaIssue != "").FirstOrDefault().InsigniaIssue : "", - // InsigniaVolumeno = r.Where(r => r.InsigniaIssue != "").FirstOrDefault() != null ? r.Where(r => r.InsigniaIssue != "").FirstOrDefault().InsigniaVolumeno : null, - // InsigniaVolume = r.Where(r => r.InsigniaIssue != "").FirstOrDefault() != null ? r.Where(r => r.InsigniaIssue != "").FirstOrDefault().InsigniaVolume : "", - // InsigniaSection = r.Where(r => r.InsigniaIssue != "").FirstOrDefault() != null ? r.Where(r => r.InsigniaIssue != "").FirstOrDefault().InsigniaSection : "", - // InsigniaDatereceive = r.Where(r => r.InsigniaIssue != "").FirstOrDefault() != null ? r.Where(r => r.InsigniaIssue != "").FirstOrDefault().InsigniaDatereceive : null, - // InsigniaDateannounce = r.Where(r => r.InsigniaIssue != "").FirstOrDefault() != null ? r.Where(r => r.InsigniaIssue != "").FirstOrDefault().InsigniaDateannounce : null, - // TypeName = r.Key.TypeName, - // Profile = r.Select(r => new - // { - // Profile = r.Profile, - // Name = r.Name, - // Insignia = r.Insignia, - // InsigniaId = r.InsigniaId, - // InsigniaPage = r.InsigniaPage, - // InsigniaNo = r.InsigniaNo, - // //Special = bool.Parse(r.Special) - // }).ToList(), - // Docs = new List() - // }); - return Success(); - // return Success(request); } } @@ -179,68 +99,7 @@ namespace BMA.EHR.Insignia.Service.Controllers }, AccessToken); } - - - - // foreach (var i in items.Profile) - // { - // var profile = _context.Profiles.AsQueryable() - // .Include(x => x.Insignias) - // .ThenInclude(x => x.Insignia) - // .Where(x => x.Id == i.FkProfileId) - // .FirstOrDefault(); - // if (profile != null) - // { - // var kp7 = profile.Insignias.AsQueryable() - // .Where(x => x.Insignia.Id == i.Kp7InsigniaId) - // .FirstOrDefault(); - - // if (kp7 != null) - // { - // // exit item update to database - // kp7.DateReceive = items.InsigniaDatereceive.Value; - // kp7.Level = items.InsigniaLevel; - // kp7.Issue = items.InsigniaIssue; - // kp7.VolumeNo = items.InsigniaVolumeno.Value.ToString(); - // kp7.Volume = items.InsigniaVolume; - // kp7.Section = items.InsigniaSection; - // kp7.DateAnnounce = items.InsigniaDateannounce.Value; - // kp7.Page = i.InsigniaPage; - // kp7.No = i.InsigniaNo; - // } - // else - // { - // // insert new item to kp7 - // var insignia_item = _context.Insignias.FirstOrDefault(x => x.Id == i.Kp7InsigniaId); - // var result = _repository.GetInsigniaRequest(type, items.OCId); - - // var period = _context.InsigniaPeriods.FirstOrDefault(x => x.Id == result.PeriodId); - - // kp7 = new Models.HR.ProfileInsignia - // { - // Order = profile.Insignias.ToList().Count + 1, - // Year = period.Year, - // Insignia = insignia_item, - // DateReceive = items.InsigniaDatereceive.Value, - // DateStamp = DateTime.Now, - // Level = items.InsigniaLevel, - // Issue = items.InsigniaIssue, - // VolumeNo = items.InsigniaVolumeno.Value.ToString(), - // Volume = items.InsigniaVolume, - // Section = items.InsigniaSection, - // DateAnnounce = items.InsigniaDateannounce.Value, - // Page = i.InsigniaPage, - // No = i.InsigniaNo, - // }; - // profile.Insignias.Add(kp7); - // } - // } - // else - // return NotFound("Profile not found!!!"); - // } } - //_context.SaveChanges(); - return Success(); } diff --git a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs index 4f6f38b4..672199b3 100644 --- a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs @@ -7,16 +7,12 @@ using BMA.EHR.Application.Responses.Organizations; using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Extensions; using BMA.EHR.Domain.Models.Insignias; -using BMA.EHR.Domain.Models.MetaData; using BMA.EHR.Domain.Shared; -using BMA.EHR.Infrastructure.MessageQueue; -using BMA.EHR.Infrastructure.Migrations.LeaveDb; using BMA.EHR.Infrastructure.Persistence; using BMA.EHR.Insignia.Service.Requests; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Internal; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using OfficeOpenXml; @@ -246,7 +242,6 @@ namespace BMA.EHR.Insignia.Service.Controllers isApprove = irp.IsApprove, statusInstitute = irp.IsApprove.ToString(), request_date = irp.RequestDate, - profileId = irp.ProfileId, citizenId = irp.CitizenId, prefix = irp.Prefix, @@ -257,8 +252,6 @@ namespace BMA.EHR.Insignia.Service.Controllers posno = irp.PosNo, rank = $"{irp.PosTypeName}/{irp.PosLevelName}", lastInsigniaName = irp.LastInsigniaName, - - //profile = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken), instituteName = "", instituteId = -1, requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, @@ -272,65 +265,11 @@ namespace BMA.EHR.Insignia.Service.Controllers .OrderBy(x => x.citizenId) .ToList(); - // var dataResult = rawData - // .Select(irp => new - // { - // irp.request_id, - // irp.isApprove, - // irp.statusInstitute, - // irp.request_date, - // profileId = irp.profile == null ? Guid.Empty : irp.profile.Id, - // citizenId = irp.profile == null ? "" : irp.profile.CitizenId, - // prefix = irp.profile == null ? "" : irp.profile.Prefix, - // firstname = irp.profile == null ? "" : irp.profile.FirstName, - // lastname = irp.profile == null ? "" : irp.profile.LastName, - // type = irp.profile == null ? "" : irp.profile.ProfileType, - // position = irp.profile == null ? "" : irp.profile.Position, - // posno = irp.profile == null ? "" : - // irp.profile.ProfileSalary == null || irp.profile.ProfileSalary.Count == 0 ? "" : - // irp.profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo, - // rank = irp.profile == null ? "" : $"{irp.profile.PosType.PosTypeName}/{irp.profile.PosLevel.PosLevelName}", - // irp.instituteName, - // irp.instituteId, - // lastInsigniaName = irp.profile == null ? "" : - // irp.profile.ProfileInsignia == null || irp.profile.ProfileInsignia.Count == 0 ? "" : - // _insigniaPeriodRepository.GetInsigniaById(irp.profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value) == null ? "" : - // _insigniaPeriodRepository.GetInsigniaById(irp.profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - // irp.requestInsigniaLevel, - // irp.requestInsigniaName, - // irp.requestQua, - // irp.requestDoc, - // irp.requestNote, - // irp.requestSalary, - // irp.matchingConditions - // }) - // .OrderBy(y => y.citizenId) - // .ToList(); - return rawData; } #endregion - #region " ดึงเครื่องราชฯ ล่าสุดของครู (GetInsigniaLast) " - // private InsigniaItem GetInsigniaLast(Guid? id) - // { - // var insignia = _context.Insignias.AsQueryable() - // .Where(i => id != null ? i.Id == id : i.Name.Contains("ตริตาภรณ์มงกุฎไทย")).Select(i => new InsigniaItem - // { - // Id = i.Id, - // Name = i.Name, - // ShortName = i.ShortName, - // Level = i.InsigniaType == null ? null : i.InsigniaType.Name, - // LevelId = i.InsigniaType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : i.InsigniaType.Id - // }).FirstOrDefault(); - - // return insignia; - // } - #endregion - - - #region " จัดทำรายชื่อครูที่มีสิทธิในการยืนขอเครื่องราชฯ " /// @@ -348,12 +287,6 @@ namespace BMA.EHR.Insignia.Service.Controllers [HttpGet("{insigniaPeriodId:length(36)}/{ocId:length(36)}/{role}/{status}")] public async Task> GetInsignaiRequestBkk(Guid insigniaPeriodId, Guid ocId, string role, string status) { - // var getPermission = await _permission.GetPermissionAPIAsync("LIST", "SYS_INSIGNIA_MANAGE"); - // var jsonData = JsonConvert.DeserializeObject(getPermission); - // if (jsonData["status"]?.ToString() != "200") - // { - // return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - // } var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId); if (result != null) { @@ -362,7 +295,6 @@ namespace BMA.EHR.Insignia.Service.Controllers string requestStatus = result.RequestStatus; string requestNote = result.RequestNote; - var resend = new InsigniaResults { PeriodId = result.PeriodId, @@ -400,7 +332,6 @@ namespace BMA.EHR.Insignia.Service.Controllers else { var passData = _context.InsigniaRequests.AsQueryable() - //.Include(x => x.Organization) .Include(x => x.RequestProfiles) .Where(x => x.OrganizationId == ocId) .Where(x => x.Period.Id == period) @@ -410,8 +341,6 @@ namespace BMA.EHR.Insignia.Service.Controllers requstStatus = ir.RequestStatus, requstStatusName = GetRequestlStatusText(ir.RequestStatus), fkInstituteId = -1, - // fkDivisionId = ir.Organization.Id, - // fkDivision = ir.Organization.Name, fkInstitute = "", fkPeriodId = ir.Period.Id, insigniaRequestHasProfile = FormatRequestProfiles(ir.RequestProfiles.AsQueryable() @@ -419,47 +348,11 @@ namespace BMA.EHR.Insignia.Service.Controllers .ThenInclude(x => x.InsigniaType) .Where(x => x.IsApprove) .ToList()) - //insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable() - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .Select(irp => new - // { - // request_id = irp.Request.Id, - // isApprove = irp.IsApprove, - // statusInstitute = irp.IsApprove.ToString(), - // request_date = irp.RequestDate, - // profileId = irp.ProfileId, - // prefix = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Prefix, //irp.Profile.Prefix, - // firstname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).FirstName, //irp.Profile.FirstName, - // lastname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).LastName, //irp.Profile.LastName, - // posno = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.Count == 0 || - // _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary == null ? "" : - // _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,// irp.Profile.PositionNumber.Id, - // type = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileType, //irp.Profile.ProfileType, - // position = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Position, // irp.Profile.Position.Name, - // rank = $"{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosType.PosTypeName}/{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosLevel.PosLevelName}", // $"{irp.Profile.PositionType.Name}/{irp.Profile.PositionLevel.Name}", - // instituteName = "", - // instituteId = -1, - // // divisionName = irp.Profile.OrganizationOrganization.Name, - // // divisionId = irp.Profile.OrganizationOrganization.Id, - // lastInsigniaName = "", - // requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, - // requestInsigniaName = irp.RequestInsignia.Name, - // requestQua = "",// irp.QualificationStatus, - // requestDoc = "", //irp.DocumentStatus, - // requestNote = "", // irp.Note, - // requestSalary = irp.Salary, - // matchingConditions = JsonConvert.DeserializeObject>(irp.MatchingConditions) - // }) - // .Where(x => x.isApprove) - // .OrderBy(y => y.profileId) - // .ToList() }) .ToList() .FirstOrDefault(); var failData = _context.InsigniaRequests.AsQueryable() - //.Include(x => x.Organization) .Include(x => x.RequestProfiles) .Where(x => x.OrganizationId == ocId) .Where(x => x.Period.Id == period) @@ -469,8 +362,6 @@ namespace BMA.EHR.Insignia.Service.Controllers requstStatus = ir.RequestStatus, requstStatusName = GetRequestlStatusText(ir.RequestStatus), fkInstituteId = -1, - // fkDivisionId = ir.Organization.Id, - // fkDivision = ir.Organization.Name, fkInstitute = "", fkPeriodId = ir.Period.Id, insigniaRequestHasProfile = FormatRequestProfiles(ir.RequestProfiles.AsQueryable() @@ -478,47 +369,6 @@ namespace BMA.EHR.Insignia.Service.Controllers .ThenInclude(x => x.InsigniaType) .Where(x => !x.IsApprove) .ToList()) - //insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable() - // //.Include(x => x.Profile) - // //.ThenInclude(x => x.Position) - // //.Include(x => x.Profile) - // // .ThenInclude(x => x.PositionNumber) - // //.Include(x => x.Profile) - // // .ThenInclude(x => x.AcademicStanding) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .Select(irp => new - // { - // request_id = irp.Request.Id, - // isApprove = irp.IsApprove, - // statusInstitute = irp.IsApprove.ToString(), - // request_date = irp.RequestDate, - // profileId = irp.ProfileId, - // prefix = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Prefix, //irp.Profile.Prefix, - // firstname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).FirstName, //irp.Profile.FirstName, - // lastname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).LastName, //irp.Profile.LastName, - // posno = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.Count == 0 || - // _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary == null ? "" : - // _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,// irp.Profile.PositionNumber.Id, - // type = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileType, //irp.Profile.ProfileType, - // position = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Position, // irp.Profile.Position.Name, - // rank = $"{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosType.PosTypeName}/{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosLevel.PosLevelName}", // $"{irp.Profile.PositionType.Name}/{irp.Profile.PositionLevel.Name}", - // instituteName = "", - // instituteId = -1, - // // divisionName = irp.Profile.OrganizationOrganization.Name, - // // divisionId = irp.Profile.OrganizationOrganization.Id, - // lastInsigniaName = "", - // requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, - // requestInsigniaName = irp.RequestInsignia.Name, - // requestQua = "", //irp.QualificationStatus, - // requestDoc = "", //irp.DocumentStatus, - // requestNote = "", //irp.Note, - // requestSalary = irp.Salary, - // matchingConditions = JsonConvert.DeserializeObject>(irp.MatchingConditions) - // }) - // .Where(x => !x.isApprove) - // .OrderBy(y => y.profileId) - // .ToList() }) .ToList() .FirstOrDefault(); @@ -532,9 +382,7 @@ namespace BMA.EHR.Insignia.Service.Controllers }).FirstOrDefault(); return Success(new { passData = passData, failData = failData, period = period_data }); - //return Success(); } - // select data to display } return Success(); @@ -552,30 +400,9 @@ namespace BMA.EHR.Insignia.Service.Controllers [HttpGet("{insigniaPeriodId:length(36)}")] public async Task> UpdateInsigniaRequestBkk(Guid insigniaPeriodId) { - // // jack add เพื่อให้ทำการรันแค่เขตพระนคร - // // TODO : ต้องมาเอาบรรทัดนี้ออกในภายหลัง - // var ocId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"); - // var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId); - // if (result != null) - // { - // Guid period = result.PeriodId; - // string requestStatus = result.RequestStatus; - // var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, ocId); - // // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new - // if (requestStatus == null) - // { - // // บันทึกรายชื่อ - // await _repository.InsertCandidate(period, ocId, candidate); - // } - // } - - // TODO: original code use this in production - var selectPeriod = _context.InsigniaPeriods.AsNoTracking().Where(x => x.Id == insigniaPeriodId).FirstOrDefault(); if (selectPeriod == null) - { throw new Exception(GlobalMessages.InsigniaPeriodNotFound); - } var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken, selectPeriod.RevisionId); @@ -584,8 +411,6 @@ namespace BMA.EHR.Insignia.Service.Controllers if (organization == null) continue; - //if(organization.Id != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) continue; - var result = await _repository.GetInsigniaRequest(insigniaPeriodId, organization.Id); if (result != null) { @@ -596,7 +421,7 @@ namespace BMA.EHR.Insignia.Service.Controllers if (requestStatus == null) { // บันทึกรายชื่อ - await _repository.InsertCandidate(period, organization.Id,organization.OrgRootName, candidate); + await _repository.InsertCandidate(period, organization.Id, organization.OrgRootName, candidate); } } } @@ -626,11 +451,8 @@ namespace BMA.EHR.Insignia.Service.Controllers using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: INSIGNIA_QUEUE, durable: false, exclusive: false, autoDelete: false, arguments: null); - var body = Encoding.UTF8.GetBytes(insigniaPeriodId.ToString("D")); - channel.BasicPublish(exchange: "", routingKey: INSIGNIA_QUEUE, basicProperties: null, body: body); - return Success(); } } @@ -645,8 +467,6 @@ namespace BMA.EHR.Insignia.Service.Controllers var id = await _repository.GetRequestId(items.PeriodId, items.OcId); var note = _context.InsigniaRequestProfiles.AsQueryable() .Where(d => d.ProfileId == profileId && d.Request.Id == id).FirstOrDefault(); - //if (note != null) - // note.Note = items.Note; _context.SaveChanges(); return Success(); } @@ -687,20 +507,16 @@ namespace BMA.EHR.Insignia.Service.Controllers await _repository.SaveAprove(id, ocId); var requestId = await _repository.GetRequestId(id, ocId); var requestNew = await _context.InsigniaRequests - //.Include(x => x.Organization) - //.ThenInclude(x => x.OrganizationOrganization) .Include(x => x.Period) .FirstOrDefaultAsync(i => i.Id == requestId); if (requestNew != null) { - var org = _userProfileRepository.GetOc(ocId, 0, AccessToken); - requestNew.RequestStatus = "st3"; requestNew.RequestNote = ""; await _repositoryNoti.PushNotificationAsync( Guid.Parse("08dbc953-630a-4e72-88a7-c68dbb1ba856"), - $"{(org == null ? null : org.Root)} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", - $"{(org == null ? null : org.Root)} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", "", "", true @@ -750,29 +566,24 @@ namespace BMA.EHR.Insignia.Service.Controllers { var requestId = await _repository.GetRequestId(id, ocId); var requestNew = await _context.InsigniaRequests - //.Include(x => x.Organization) - //.ThenInclude(x => x.OrganizationOrganization) .Include(x => x.Period) .FirstOrDefaultAsync(i => i.Id == requestId); if (requestNew != null) { - var org = _userProfileRepository.GetOc(ocId, 0, AccessToken); - requestNew.RequestStatus = "st6"; - requestNew.RequestNote = ""; await _repositoryNoti.PushNotificationAsync( Guid.Parse("08dbc953-64d9-497a-87a3-0244eade622c"), - $"{(org == null ? null : org.Root)} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", - $"{(org == null ? null : org.Root)} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", "", "", true ); await _repositoryNoti.PushNotificationAsync( Guid.Parse("08dbca3a-8b6a-4a4e-8b23-1f62e4f30ef6"), - $"{(org == null ? null : org.Root)} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", - $"{(org == null ? null : org.Root)} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ยื่นขอมูลข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", "", "", true @@ -797,20 +608,16 @@ namespace BMA.EHR.Insignia.Service.Controllers { var requestId = await _repository.GetRequestId(id, ocId); var requestNew = await _context.InsigniaRequests - //.Include(x => x.Organization) - //.ThenInclude(x => x.OrganizationOrganization) .Include(x => x.Period) .FirstOrDefaultAsync(i => i.Id == requestId); if (requestNew != null) { - var org = _userProfileRepository.GetOc(ocId, 0, AccessToken); - requestNew.RequestStatus = "st4"; requestNew.RequestNote = req.Reason; await _repositoryNoti.PushNotificationAsync( Guid.Parse("08dbc953-61ac-47eb-82d7-0e72df7669b5"), - $"{(org == null ? null : org.Root)} ตีกลับข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", - $"{(org == null ? null : org.Root)} ตีกลับข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ตีกลับข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", + $"{requestNew.Organization} ตีกลับข้อมูลผู้มีสิทธิ์ได้รับเครื่องราชฯ {requestNew.Period.Name}", "", "", true @@ -835,8 +642,6 @@ namespace BMA.EHR.Insignia.Service.Controllers { var requestId = await _repository.GetRequestId(id, ocId); var requestNew = await _context.InsigniaRequests - //.Include(x => x.Organization) - //.ThenInclude(x => x.OrganizationOrganization) .Include(x => x.Period) .FirstOrDefaultAsync(i => i.Id == requestId); if (requestNew != null) @@ -964,12 +769,6 @@ namespace BMA.EHR.Insignia.Service.Controllers [HttpGet("dashboard/{insigniaPeriodId:length(36)}")] public async Task> DashboardInsigniaPeriod(Guid insigniaPeriodId) { - // var getPermission = await _permission.GetPermissionAPIAsync("GET", "SYS_INSIGNIA_MANAGE"); - // var jsonData = JsonConvert.DeserializeObject(getPermission); - // if (jsonData["status"]?.ToString() != "200") - // { - // return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - // } var insigniaPeriod = await _context.InsigniaPeriods.FirstOrDefaultAsync(x => x.Id == insigniaPeriodId); if (insigniaPeriod == null) return Error(GlobalMessages.InsigniaRequestNotFound); @@ -1013,9 +812,7 @@ namespace BMA.EHR.Insignia.Service.Controllers .Select(x => x.OrganizationId) .ToListAsync(); - var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken, insigniaPeriod.RevisionId); - var orgAllCount = organizations .Where(x => !orgIdSend.Contains(x.Id)) .Select(x => new @@ -1040,28 +837,6 @@ namespace BMA.EHR.Insignia.Service.Controllers public async Task> GetOrgAgency() { await _insigniaReportRepository.CalInsignaiRequestBkk(); - //var profile = await _context.Profiles.AsQueryable() - // .FirstOrDefaultAsync(x => x.KeycloakId == (UserId != null && UserId != "" ? Guid.Parse(UserId) : Guid.Parse("00000000-0000-0000-0000-000000000000"))); - //if (profile == null) - // return Error(GlobalMessages.DataNotFound); - //var orgProfile = await _context.ProfilePositions - // .Where(x => x.ProfileId == profile) - // .Where(x => x.OrganizationPosition != null) - // .Where(x => x.OrganizationPosition.Organization != null) - // .Where(x => x.OrganizationPosition.Organization.OrganizationAgencyId != null) - // .Select(x => x.OrganizationPosition.Organization.OrganizationAgencyId) - // .FirstOrDefaultAsync(); - //if (orgProfile == null) - //{ - // orgProfile = await _context.ProfilePositions - // .Where(x => x.Profile == profile) - // .Where(x => x.OrganizationPosition != null) - // .Where(x => x.OrganizationPosition.Organization != null) - // .Select(x => x.OrganizationPosition.Organization.Id) - // .FirstOrDefaultAsync(); - //} - //return Success(orgProfile); - return Success(); } @@ -1080,15 +855,10 @@ namespace BMA.EHR.Insignia.Service.Controllers if (insigniaPeriod == null) return Error(GlobalMessages.InsigniaRequestNotFound); - - //var profile = await _context.Profiles.Include(x => x.Salaries).FirstOrDefaultAsync(x => x.Id == req.ProfileId); - var profileTest = _userProfileRepository.GetOfficerProfileById(req.ProfileId, AccessToken); - - if (profileTest == null) + var profile = await _userProfileRepository.GetProfileByProfileIdAsync(req.ProfileId, AccessToken); + if (profile == null) return Error(GlobalMessages.DataNotFound); - var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(profileTest.Keycloak ?? Guid.Empty, AccessToken ?? ""); - var insignia = await _context.Insignias.FirstOrDefaultAsync(x => x.Id == req.insigniaId); if (insignia == null) @@ -1101,40 +871,14 @@ namespace BMA.EHR.Insignia.Service.Controllers if (insigniaRequestProfile != null) return Error(GlobalMessages.InsigniaRequestProfileDupicate); - //var insigniaRequest = await _context.InsigniaRequests.FirstOrDefaultAsync(x => x.Period == insigniaPeriod); - - //var _orgProfile = await _context.ProfilePositions - // .Where(x => x.ProfileId == profile.Id) - // .Where(x => x.OrganizationPosition != null) - // .Where(x => x.OrganizationPosition.Organization != null) - // .Where(x => x.OrganizationPosition.Organization.OrganizationAgencyId != null) - // .Select(x => x.OrganizationPosition.Organization.OrganizationAgencyId) - // .FirstOrDefaultAsync(); - //var _org = await _context.Organizations - // .FirstOrDefaultAsync(x => x.Id == _orgProfile); var insigniaRequest = await _context.InsigniaRequests.Include(x => x.Period).FirstOrDefaultAsync(x => x.Period.Id == insigniaPeriod.Id && x.OrganizationId == req.OcId); if (insigniaRequest == null) { - //var orgProfile = await _context.ProfilePositions - // .Where(x => x.Profile == profile) - // .Where(x => x.OrganizationPosition != null) - // .Where(x => x.OrganizationPosition.Organization != null) - // .Where(x => x.OrganizationPosition.Organization.OrganizationAgencyId != null) - // .Select(x => x.OrganizationPosition.Organization.OrganizationAgencyId) - // .FirstOrDefaultAsync(); - - - //var org = await _context.Organizations - // .FirstOrDefaultAsync(x => x.Id == orgProfile); - - //var org = _userProfileRepository.GetOc(insigniaRequestProfile!.Request.OrganizationId, 0, AccessToken); - - //if (org == null) - // return Error(GlobalMessages.OrganizationNotFound); insigniaRequest = new InsigniaRequest { Period = insigniaPeriod, - OrganizationId = req.OcId, + OrganizationId = profile.RootId ?? Guid.Empty, + Organization = profile.Root, RequestStatus = "st1", RequestNote = "", CreatedFullName = FullName ?? "System Administrator", @@ -1146,7 +890,6 @@ namespace BMA.EHR.Insignia.Service.Controllers }; } - var lastInsignia = string.Empty; if (profile.ProfileInsignia != null) { @@ -1165,14 +908,13 @@ namespace BMA.EHR.Insignia.Service.Controllers Reason = req.Reason, RequestDate = DateTime.Now, MatchingConditions = System.Text.Json.JsonSerializer.Serialize(new List()), // serialize to string - Salary = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.Amount, //profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + Salary = profile.Amount, //profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount, CreatedFullName = FullName ?? "System Administrator", CreatedUserId = UserId ?? "", CreatedAt = DateTime.Now, LastUpdateFullName = FullName ?? "System Administrator", LastUpdateUserId = UserId ?? "", LastUpdatedAt = DateTime.Now, - // Add Information for reused in API Call ProfileType = profile.ProfileType ?? "officer", Prefix = profile.Prefix, @@ -1183,12 +925,14 @@ namespace BMA.EHR.Insignia.Service.Controllers DateAppoint = profile.DateAppoint, Position = profile.Position, Gender = profile.Gender, - PosTypeName = profile.PosType!.PosTypeName, - PosLevelName = profile.PosLevel!.PosLevelName, + PosTypeName = profile.PosType, + PosLevelName = profile.PosLevel, PosNo = profile.ProfileSalary == null ? "" : profile.ProfileSalary.PosNo, Amount = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.Amount, PositionSalaryAmount = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.PositionSalaryAmount, - LastInsigniaName = lastInsignia + LastInsigniaName = lastInsignia, + Root = profile.Root, + RootId = profile.RootId, }); await _context.SaveChangesAsync(); @@ -1240,10 +984,9 @@ namespace BMA.EHR.Insignia.Service.Controllers .FirstOrDefaultAsync(x => x.Id == insigniaPeriodId); if (insigniaPeriod == null) return Error(GlobalMessages.InsigniaRequestNotFound); - //insigniaPeriod.IsLock = true; + insigniaPeriod.IsLock = true; var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - // .ThenInclude(x => x.Profile) .Include(x => x.InsigniaNoteProfiles) .ThenInclude(x => x.RequestInsignia) .FirstOrDefaultAsync(x => x.Year == insigniaPeriod.Year); @@ -1251,13 +994,8 @@ namespace BMA.EHR.Insignia.Service.Controllers { insigniaNote = new InsigniaNote { - // Round = insigniaPeriod.Round, Name = req.Name, Year = insigniaPeriod.Year, - // StartDate = insigniaPeriod.StartDate, - // EndDate = insigniaPeriod.EndDate, - // Amount = insigniaPeriod.Amount, - // ReliefDoc = insigniaPeriod.ReliefDoc, CreatedFullName = FullName ?? "System Administrator", CreatedUserId = UserId ?? "", CreatedAt = DateTime.Now, @@ -1269,7 +1007,6 @@ namespace BMA.EHR.Insignia.Service.Controllers await _context.SaveChangesAsync(); insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .Include(x => x.InsigniaNoteProfiles) .ThenInclude(x => x.RequestInsignia) .FirstOrDefaultAsync(x => x.Id == insigniaNote.Id); @@ -1281,7 +1018,6 @@ namespace BMA.EHR.Insignia.Service.Controllers foreach (var requestOld in requestOlds) { var profileOlds = await _context.InsigniaRequestProfiles - //.Include(x => x.Profile) .Include(x => x.RequestInsignia) .Where(p => p.Request == requestOld) .ToListAsync(); @@ -1327,7 +1063,6 @@ namespace BMA.EHR.Insignia.Service.Controllers LastUpdateUserId = UserId ?? "", LastUpdatedAt = DateTime.Now, - // Add Information for reused in API Call ProfileType = profileOld.ProfileType ?? "officer", Prefix = profileOld.Prefix, @@ -1343,7 +1078,8 @@ namespace BMA.EHR.Insignia.Service.Controllers PosNo = profileOld.PosNo, Amount = profileOld.Amount, PositionSalaryAmount = profileOld.PositionSalaryAmount, - + Root = profileOld.Root, + RootId = profileOld.RootId, }); } } @@ -1409,36 +1145,13 @@ namespace BMA.EHR.Insignia.Service.Controllers } var insigniaNotes = await _context.InsigniaNotes.AsQueryable() .OrderByDescending(x => x.Year) - // .ThenByDescending(x => x.StartDate) .Select(p => new { Id = p.Id, - // Amount = p.Amount, Name = p.Name, - // Round = p.Round, - // Start = p.StartDate, - // End = p.EndDate, Year = p.Year, - // Doc = p.ReliefDoc == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ReliefDoc.Id, }) .ToListAsync(); - // var data = new List(); - // foreach (var insigniaNote in insigniaNotes) - // { - // var _data = new - // { - // Id = insigniaNote.Id, - // Amount = insigniaNote.Amount, - // Name = insigniaNote.Name, - // Round = insigniaNote.Round, - // Start = insigniaNote.Start, - // End = insigniaNote.End, - // Year = insigniaNote.Year, - // Doc = insigniaNote.Doc == Guid.Parse("00000000-0000-0000-0000-000000000000") ? null : await _documentService.ImagesPath(insigniaNote.Doc), - // }; - // data.Add(_data); - // } - return Success(insigniaNotes); } @@ -1481,14 +1194,13 @@ namespace BMA.EHR.Insignia.Service.Controllers x.Position, x.CitizenId, x.ProfileType, - //Profile = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken), - OcId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), // TODO: ต้องมาแก้ไข + OcId = x.RootId, // TODO: ต้องมาแก้ไข RequestInsignia = x.RequestInsignia.Name, RequestInsigniaId = x.RequestInsignia.Id, RequestInsigniaShortName = x.RequestInsignia.ShortName, DateReceive = x.DateReceive, - OrganizationOrganizationSend = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode - OrganizationOrganizationReceive = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode + OrganizationOrganizationSend = x.Root, //hardcode + OrganizationOrganizationReceive = x.Root, //hardcode Status = x.Status, Issue = x.Issue, Date = x.Date, @@ -1503,10 +1215,10 @@ namespace BMA.EHR.Insignia.Service.Controllers Salary = x.Salary, DateReceiveInsignia = x.DateReceiveInsignia, DocReceiveInsignia = x.DocReceiveInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.DocReceiveInsignia.Id, - OrgReceiveInsignia = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode + OrgReceiveInsignia = x.Root, //hardcode DateReturnInsignia = x.DateReturnInsignia, DocReturnInsignia = x.DocReturnInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.DocReturnInsignia.Id, - OrgReturnInsignia = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode + OrgReturnInsignia = x.Root, //hardcode }) .ToListAsync(); @@ -1514,9 +1226,6 @@ namespace BMA.EHR.Insignia.Service.Controllers .Select(x => new { Id = x.Id, - //Prefix = x.Profile == null ? "" : x.Profile.Prefix, - //Position = x.Profile == null ? "" : x.Profile.Position, - //ProfileType = x.Profile == null ? "" : x.Profile.ProfileType, Prefix = x.Prefix ?? "", Position = x.Position ?? "", ProfileType = x.ProfileType ?? "", @@ -1550,45 +1259,6 @@ namespace BMA.EHR.Insignia.Service.Controllers }) .ToList(); - //var insigniaNoteProfiles = await _context.InsigniaNoteProfiles - // .Where(x => x.InsigniaNote == insigniaNote) - // .Where(x => x.RequestInsignia.InsigniaType == insigniaType) - // .Where(x => req.InsigniaId == null ? x.RequestInsignia != null : (x.RequestInsignia.Id == req.InsigniaId)) - // .Select(x => new - // { - // Id = x.Id, - // Prefix = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).Prefix, - // Position = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).Position, - // ProfileType = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).ProfileType, - // OcId = Guid.Empty, - // CitizenId = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).CitizenId, - // FullName = $"{_userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).LastName}", - // RequestInsignia = x.RequestInsignia.Name, - // RequestInsigniaId = x.RequestInsignia.Id, - // RequestInsigniaShortName = x.RequestInsignia.ShortName, - // DateReceive = x.DateReceive, - // OrganizationOrganizationSend = x.OrganizationOrganizationSend, - // OrganizationOrganizationReceive = x.OrganizationOrganizationReceive, - // Status = x.Status, - // Issue = x.Issue, - // Date = x.Date, - // VolumeNo = x.VolumeNo, - // Section = x.Section, - // Page = x.Page, - // No = x.No, - // DatePayment = x.DatePayment, - // TypePayment = x.TypePayment, - // Address = x.Address, - // Number = x.Number, - // Salary = x.Salary, - // DateReceiveInsignia = x.DateReceiveInsignia, - // DocReceiveInsignia = x.DocReceiveInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.DocReceiveInsignia.Id, - // OrgReceiveInsignia = x.OrgReceiveInsignia == null || x.OrgReceiveInsignia.OrganizationOrganization == null ? "-" : x.OrgReceiveInsignia.OrganizationOrganization.Name, - // DateReturnInsignia = x.DateReturnInsignia, - // DocReturnInsignia = x.DocReturnInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.DocReturnInsignia.Id, - // OrgReturnInsignia = x.OrgReturnInsignia == null || x.OrgReturnInsignia.OrganizationOrganization == null ? "-" : x.OrgReturnInsignia.OrganizationOrganization.Name, - // }).ToListAsync(); - var _insigniaNoteProfiles = new List(); foreach (var insigniaNoteProfile in insigniaNoteProfiles) { @@ -1665,20 +1335,19 @@ namespace BMA.EHR.Insignia.Service.Controllers .Select(x => new { Id = x.Id, - //Profile = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken), x.CitizenId, x.Prefix, x.FirstName, x.LastName, x.ProfileType, x.Position, - OcId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), // TODO: ต้องมาแก้ไข + OcId = x.RootId, // TODO: ต้องมาแก้ไข RequestInsignia = x.RequestInsignia.Name, RequestInsigniaId = x.RequestInsignia.Id, RequestInsigniaShortName = x.RequestInsignia.ShortName, DateReceive = x.DateReceive, - OrganizationOrganizationSend = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode - OrganizationOrganizationReceive = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode + OrganizationOrganizationSend = x.Root, //hardcode + OrganizationOrganizationReceive = x.Root, //hardcode Status = x.Status, Issue = x.Issue, Date = x.Date, @@ -1693,10 +1362,10 @@ namespace BMA.EHR.Insignia.Service.Controllers Salary = x.Salary, DateReceiveInsignia = x.DateReceiveInsignia, DocReceiveInsignia = x.DocReceiveInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.DocReceiveInsignia.Id, - OrgReceiveInsignia = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode + OrgReceiveInsignia = x.Root, //hardcode DateReturnInsignia = x.DateReturnInsignia, DocReturnInsignia = x.DocReturnInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : x.DocReturnInsignia.Id, - OrgReturnInsignia = _userProfileRepository.GetOc(Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"), 0, AccessToken).Root, //hardcode + OrgReturnInsignia = x.Root, //hardcode }) .ToListAsync(); @@ -1797,21 +1466,14 @@ namespace BMA.EHR.Insignia.Service.Controllers .Select(x => new { Id = x.Id, - Prefix = x.Prefix, FirstName = x.FirstName, LastName = x.LastName, CitizenId = x.CitizenId, Positon = x.Position ?? "", ProfileType = x.ProfileType, - - //Profile = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken), - //Prefix = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).Prefix, - //Position = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).Position, - //ProfileType = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).ProfileType, - OcId = Guid.Empty, - //CitizenId = _userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).CitizenId, - //FullName = $"{_userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(x.ProfileId.Value, AccessToken).LastName}", + OcId = x.RootId ?? Guid.Empty, + Oc = x.Root ?? "", RequestInsignia = x.RequestInsignia.Name, RequestInsigniaId = x.RequestInsignia.Id, RequestInsigniaShortName = x.RequestInsignia.ShortName, @@ -1831,6 +1493,8 @@ namespace BMA.EHR.Insignia.Service.Controllers Number = x.Number, Salary = x.Salary, }).FirstOrDefaultAsync(); + if (insigniaNoteProfile == null) + return Error(GlobalMessages.InsigniaRequestProfileNotFound); var _insigniaNoteProfile = new { insigniaNoteProfile.Id, @@ -1844,7 +1508,7 @@ namespace BMA.EHR.Insignia.Service.Controllers insigniaNoteProfile.RequestInsigniaShortName, insigniaNoteProfile.DateReceive, insigniaNoteProfile.OrganizationOrganizationSend, - OrganizationOrganizationReceive = insigniaNoteProfile.OrganizationOrganizationReceive == null ? (insigniaNoteProfile.OcId == null ? null : FindOCFullPath(insigniaNoteProfile.OcId, true)) : insigniaNoteProfile.OrganizationOrganizationReceive, + OrganizationOrganizationReceive = insigniaNoteProfile.OrganizationOrganizationReceive == null ? insigniaNoteProfile.Oc : insigniaNoteProfile.OrganizationOrganizationReceive, insigniaNoteProfile.Status, insigniaNoteProfile.Issue, insigniaNoteProfile.Date, @@ -1874,8 +1538,7 @@ namespace BMA.EHR.Insignia.Service.Controllers [HttpPut("note/{insigniaNoteId:length(36)}")] public async Task> AddNoteProfile([FromBody] InsigniaNoteRequest req, Guid insigniaNoteId) { - var profile = _userProfileRepository.GetOfficerProfileByCitizenId(req.CitizanId, AccessToken); - + var profile = await _userProfileRepository.GetOfficerProfileByCitizenId(req.CitizanId, AccessToken); if (profile == null) return Error(GlobalMessages.DataNotFound); @@ -1888,7 +1551,6 @@ namespace BMA.EHR.Insignia.Service.Controllers var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .FirstOrDefaultAsync(x => x.Id == insigniaNoteId); if (insigniaNote == null) return Error(GlobalMessages.InsigniaRequestNotFound); @@ -1897,50 +1559,49 @@ namespace BMA.EHR.Insignia.Service.Controllers if (profileInsignia == null) { - var insigniaNoteProfile = new InsigniaNoteProfile + /* var insigniaNoteProfile = new InsigniaNoteProfile + { + Salary = profile.ProfileSalary == null || profile.ProfileSalary.Count() == 0 ? null : profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + IsApprove = true, + Status = "PENDING", + ProfileId = profile.Id, + Issue = req.Issue, + Number = req.Number, + DateReceive = req.DateReceive, + Date = req.Date, + VolumeNo = req.VolumeNo, + Section = req.Section, + Page = req.Page, + No = req.No, + DatePayment = req.DatePayment, + TypePayment = req.TypePayment, + Address = req.Address, + RequestInsignia = insignia, + OrganizationOrganizationReceive = req.OrganizationOrganizationReceive, + OrganizationOrganizationSend = req.OrganizationOrganizationSend, + InsigniaNote = insigniaNote, + CreatedFullName = FullName ?? "System Administrator", + CreatedUserId = UserId ?? "", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + };*/ + if (req.DateReceive != null && req.Date != null && profile.Id != null) { - Salary = profile.ProfileSalary == null || profile.ProfileSalary.Count() == 0 ? null : profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - IsApprove = true, - Status = "PENDING", - ProfileId = profile.Id, - Issue = req.Issue, - Number = req.Number, - DateReceive = req.DateReceive, - Date = req.Date, - VolumeNo = req.VolumeNo, - Section = req.Section, - Page = req.Page, - No = req.No, - DatePayment = req.DatePayment, - TypePayment = req.TypePayment, - Address = req.Address, - RequestInsignia = insignia, - OrganizationOrganizationReceive = req.OrganizationOrganizationReceive, - OrganizationOrganizationSend = req.OrganizationOrganizationSend, - InsigniaNote = insigniaNote, - CreatedFullName = FullName ?? "System Administrator", - CreatedUserId = UserId ?? "", - CreatedAt = DateTime.Now, - LastUpdateFullName = FullName ?? "System Administrator", - LastUpdateUserId = UserId ?? "", - LastUpdatedAt = DateTime.Now, - }; - if (req.DateReceive != null && req.Date != null) - { - insigniaNoteProfile.Status = "DONE"; - + /*insigniaNoteProfile.Status = "DONE";*/ var profileInsigniaBody = new PostProfileInsigniaDto { - profileId = insigniaNoteProfile.ProfileId.Value, + profileId = profile.Id, year = insigniaNote.Year, - no = insigniaNoteProfile.No, - volumeNo = insigniaNoteProfile.VolumeNo, - section = insigniaNoteProfile.Section, - page = insigniaNoteProfile.Page, - receiveDate = insigniaNoteProfile.DateReceive.Value, - dateAnnounce = insigniaNoteProfile.Date.Value, - insigniaId = insigniaNoteProfile.RequestInsignia.Id, - issue = insigniaNoteProfile.Issue, + no = req.No, + volumeNo = req.VolumeNo, + section = req.Section, + page = req.Page, + receiveDate = req.DateReceive.Value, + dateAnnounce = req.Date.Value, + insigniaId = insignia.Id, + issue = req.Issue, note = "", refCommandDate = null, refCommandNo = "", @@ -1949,32 +1610,6 @@ namespace BMA.EHR.Insignia.Service.Controllers }; await _userProfileRepository.PostProfileInsigniaAsync(profileInsigniaBody, AccessToken); } - - // await _context.ProfileInsignias.AddAsync(new ProfileInsignia - // { - // Year = insigniaNote.Year, - // No = req.No, - // Issue = req.VolumeNo, - // VolumeNo = req.VolumeNo, - // // Volume = req.Volume, - // Section = req.Section, - // Page = req.Page, - // DateAnnounce = req.Date, - // ReceiveDate = req.DateReceive, - // InsigniaType = insignia.InsigniaType == null ? null : insignia.InsigniaType.Name, - // Insignia = insignia, - // // RefCommandNo = req.RefCommandNo, - // // RefCommandDate = req.RefCommandDate, - // ProfileId = profile.Id, - // CreatedFullName = FullName ?? "System Administrator", - // CreatedUserId = UserId ?? "", - // CreatedAt = DateTime.Now, - // LastUpdateFullName = FullName ?? "System Administrator", - // LastUpdateUserId = UserId ?? "", - // LastUpdatedAt = DateTime.Now, - // }); - //} - //await _context.InsigniaNoteProfiles.AddAsync(insigniaNoteProfile); } else { @@ -1991,9 +1626,6 @@ namespace BMA.EHR.Insignia.Service.Controllers profileInsignia.Section = req.Section; profileInsignia.Page = req.Page; profileInsignia.No = req.No; - // profileInsignia.DatePayment = req.DatePayment; - // profileInsignia.TypePayment = req.TypePayment; - // profileInsignia.Address = req.Address; profileInsignia.RequestInsignia = insignia; profileInsignia.LastUpdateFullName = FullName ?? "System Administrator"; profileInsignia.LastUpdateUserId = UserId ?? ""; @@ -2001,7 +1633,6 @@ namespace BMA.EHR.Insignia.Service.Controllers if (req.DateReceive != null && req.Date != null) { profileInsignia.Status = "DONE"; - var profileInsigniaBody = new PostProfileInsigniaDto { profileId = profileInsignia.ProfileId.Value, @@ -2018,32 +1649,8 @@ namespace BMA.EHR.Insignia.Service.Controllers refCommandDate = null, refCommandNo = "", volume = "", - }; await _userProfileRepository.PostProfileInsigniaAsync(profileInsigniaBody, AccessToken); - //await _context.ProfileInsignias.AddAsync(new ProfileInsignia - //{ - // Year = insigniaNote.Year, - // No = req.No, - // Issue = req.VolumeNo, - // VolumeNo = req.VolumeNo, - // //Volume = req.Volume, - // Section = req.Section, - // Page = req.Page, - // DateAnnounce = req.Date, - // ReceiveDate = req.DateReceive, - // InsigniaType = insignia.InsigniaType == null ? null : insignia.InsigniaType.Name, - // Insignia = insignia, - // // RefCommandNo = req.RefCommandNo, - // // RefCommandDate = req.RefCommandDate, - // ProfileId = profile.Id, - // CreatedFullName = FullName ?? "System Administrator", - // CreatedUserId = UserId ?? "", - // CreatedAt = DateTime.Now, - // LastUpdateFullName = FullName ?? "System Administrator", - // LastUpdateUserId = UserId ?? "", - // LastUpdatedAt = DateTime.Now, - //}); } } } @@ -2158,12 +1765,10 @@ namespace BMA.EHR.Insignia.Service.Controllers { var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .Include(x => x.InsigniaNoteProfiles) .ThenInclude(x => x.RequestInsignia) .ThenInclude(x => x.InsigniaType) .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .FirstOrDefaultAsync(x => x.Id == insigniaNoteId); if (insigniaNote == null) return Error(GlobalMessages.InsigniaRequestNotFound); @@ -2182,23 +1787,17 @@ namespace BMA.EHR.Insignia.Service.Controllers { if (item.DateReceive == null || item.Date == null) continue; - var pf = _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); + var pf = await _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); var profile = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.ProfileId == pf.Id); if (profile == null) { - - //var _profile = await _context.Profiles - // .Include(x => x.Salaries) - // .FirstOrDefaultAsync(x => x.CitizenId == item.CitizanId); - //if (_profile == null) - // continue; var _insignia = await _context.Insignias.FirstOrDefaultAsync(x => x.Name == item.RequestInsignia); if (_insignia == null) continue; profile = new InsigniaNoteProfile { RequestDate = DateTime.Now, - Salary = pf.ProfileSalary == null ? 0 : pf.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + Salary = pf.Amount, IsApprove = true, Status = "PENDIND", Number = item.Number, @@ -2211,6 +1810,22 @@ namespace BMA.EHR.Insignia.Service.Controllers No = item.No, ProfileId = pf.Id, InsigniaNote = insigniaNote, + Prefix = pf.Prefix, + FirstName = pf.FirstName, + LastName = pf.LastName, + CitizenId = pf.CitizenId, + BirthDate = pf.BirthDate, + DateAppoint = pf.DateAppoint, + Position = pf.Position, + ProfileType = pf.ProfileType, + Gender = pf.Gender, + PosTypeName = pf.PosType, + PosLevelName = pf.PosLevel, + PosNo = pf.PosNo, + Amount = pf.Amount, + PositionSalaryAmount = pf.PositionSalaryAmount, + RootId = pf.RootId, + Root = pf.Root, LastUpdateFullName = FullName ?? "System Administrator", LastUpdateUserId = UserId ?? "", LastUpdatedAt = DateTime.Now, @@ -2234,16 +1849,9 @@ namespace BMA.EHR.Insignia.Service.Controllers profile.LastUpdatedAt = DateTime.Now; } } - // if (profile.DateReceive == null || profile.Date == null) - // continue; if (profile.Status != "DONE") { - - - profile.Status = "DONE"; - - var profileInsignia = new PostProfileInsigniaDto { profileId = profile.ProfileId.Value, @@ -2260,11 +1868,8 @@ namespace BMA.EHR.Insignia.Service.Controllers refCommandDate = null, refCommandNo = "", volume = "", - }; await _userProfileRepository.PostProfileInsigniaAsync(profileInsignia, AccessToken); - - } } await _context.SaveChangesAsync(); @@ -2285,7 +1890,6 @@ namespace BMA.EHR.Insignia.Service.Controllers { var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .Include(x => x.InsigniaNoteProfiles) .ThenInclude(x => x.RequestInsignia) .FirstOrDefaultAsync(x => x.Id == insigniaNoteId); @@ -2293,19 +1897,15 @@ namespace BMA.EHR.Insignia.Service.Controllers return Error(GlobalMessages.InsigniaRequestNotFound); if (Request.Form.Files == null || Request.Form.Files.Count == 0) - { return Error(GlobalMessages.NoFileToUpload); - } var file = Request.Form.Files[0]; if (!Path.GetExtension(file.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) - { return Error("นามสกุลไฟล์ต้องเป็น .xlsx!"); - } var items = await ReadExcelImportInvoice(file); foreach (var item in items) { if (item.CitizanId == null) continue; - var pf = _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); + var pf = await _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); var profile = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.ProfileId == pf.Id); if (profile == null) continue; @@ -2336,48 +1936,32 @@ namespace BMA.EHR.Insignia.Service.Controllers var getPermission = await _permission.GetPermissionAPIAsync("CREATE", "SYS_INSIGNIA_RECORD"); var jsonData = JsonConvert.DeserializeObject(getPermission); if (jsonData["status"]?.ToString() != "200") - { return Error(jsonData["message"]?.ToString(), StatusCodes.Status403Forbidden); - } var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .Include(x => x.InsigniaNoteProfiles) .ThenInclude(x => x.RequestInsignia) .ThenInclude(x => x.InsigniaType) .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Prefix) .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Position) .FirstOrDefaultAsync(x => x.Id == insigniaNoteId); if (insigniaNote == null) return Error(GlobalMessages.InsigniaRequestNotFound); if (Request.Form.Files == null || Request.Form.Files.Count == 0) - { return Error(GlobalMessages.NoFileToUpload); - } var file = Request.Form.Files[0]; if (!Path.GetExtension(file.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) - { return Error("นามสกุลไฟล์ต้องเป็น .xlsx!"); - } var items = await ReadExcelImportReceive(file); var _insigniaNoteProfiles = new List(); foreach (var item in items) { if (item.CitizanId == null) continue; - var _profile = _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); + var _profile = await _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); var profile = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.ProfileId == _profile.Id); if (profile == null) { - - - //var _profile = await _context.Profiles - // .Include(x => x.Salaries) - // .FirstOrDefaultAsync(x => x.CitizenId == item.CitizanId); if (_profile == null) continue; var _insignia = await _context.Insignias.FirstOrDefaultAsync(x => x.Name == item.RequestInsignia); @@ -2386,7 +1970,7 @@ namespace BMA.EHR.Insignia.Service.Controllers profile = new InsigniaNoteProfile { RequestDate = DateTime.Now, - Salary = _profile.ProfileSalary == null || _profile.ProfileSalary.Count == 0 ? null : _profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + Salary = _profile.Amount, IsApprove = true, Status = "DONE", Number = item.Number, @@ -2402,15 +1986,22 @@ namespace BMA.EHR.Insignia.Service.Controllers LastUpdateFullName = FullName ?? "System Administrator", LastUpdateUserId = UserId ?? "", LastUpdatedAt = DateTime.Now, - Prefix = _profile.Prefix, Position = _profile.Position, CitizenId = _profile.CitizenId, ProfileType = _profile.ProfileType, FirstName = _profile.FirstName, LastName = _profile.LastName, - - + BirthDate = _profile.BirthDate, + DateAppoint = _profile.DateAppoint, + Gender = _profile.Gender, + PosTypeName = _profile.PosType, + PosLevelName = _profile.PosLevel, + PosNo = _profile.PosNo, + Amount = _profile.Amount, + PositionSalaryAmount = _profile.PositionSalaryAmount, + Root = _profile.Root, + RootId = _profile.RootId, }; } else @@ -2432,12 +2023,11 @@ namespace BMA.EHR.Insignia.Service.Controllers new { profile.Id, - Prefix = _profile.Prefix,// _userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).Prefix, - Position = _profile.Position,// _userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).Position, - CitizenId = _profile.CitizenId,// _userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).CitizenId, - ProfileType = _profile.ProfileType,// _userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).ProfileType, + Prefix = _profile.Prefix, + Position = _profile.Position, + CitizenId = _profile.CitizenId, + ProfileType = _profile.ProfileType, FullName = $"{_profile.Prefix}{_profile.FirstName} {_profile.LastName}", - //FullName = $"{_userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(profile.ProfileId.Value, AccessToken).LastName}", RequestInsignia = profile.RequestInsignia == null ? null : profile.RequestInsignia.Name, RequestInsigniaId = profile.RequestInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : profile.RequestInsignia.Id, RequestInsigniaShortName = profile.RequestInsignia == null ? null : profile.RequestInsignia.ShortName, @@ -2482,16 +2072,11 @@ namespace BMA.EHR.Insignia.Service.Controllers } var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) .Include(x => x.InsigniaNoteProfiles) .ThenInclude(x => x.RequestInsignia) .ThenInclude(x => x.InsigniaType) .Include(x => x.InsigniaNoteProfiles) - // .ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Prefix) .Include(x => x.InsigniaNoteProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Position) .FirstOrDefaultAsync(x => x.Id == insigniaNoteId); if (insigniaNote == null) return Error(GlobalMessages.InsigniaRequestNotFound); @@ -2506,27 +2091,11 @@ namespace BMA.EHR.Insignia.Service.Controllers return Error("นามสกุลไฟล์ต้องเป็น .xlsx!"); } var items = await ReadExcelImportInvoice(file); - foreach (var item in items) - { - if (item.CitizanId == null) continue; - var pf = _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); - var profile = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.ProfileId == pf.Id); - if (profile == null) - continue; - profile.Number = item.Number; - profile.DatePayment = item.DatePayment; - profile.TypePayment = item.TypePayment; - profile.Address = item.Address; - profile.LastUpdateFullName = FullName ?? "System Administrator"; - profile.LastUpdateUserId = UserId ?? ""; - profile.LastUpdatedAt = DateTime.Now; - } var _insigniaNoteProfiles = new List(); foreach (var item in items) { if (item.CitizanId == null) continue; - var pf = _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); - + var pf = await _userProfileRepository.GetOfficerProfileByCitizenId(item.CitizanId, AccessToken); if (pf == null) continue; var profile = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.ProfileId == pf.Id); if (profile == null) @@ -2585,25 +2154,7 @@ namespace BMA.EHR.Insignia.Service.Controllers public async Task> DownloadExcalInsignia(Guid RequestId) { var insigniaPeriod = await _context.InsigniaRequests - //.Include(x => x.Organization) - //.ThenInclude(x => x.OrganizationOrganization) .Include(x => x.RequestProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Prefix) - //.Include(x => x.RequestProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Position) - //.Include(x => x.RequestProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.PositionLevel) - //.Include(x => x.RequestProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Salaries) - //.ThenInclude(x => x.PositionLevel) - //.Include(x => x.RequestProfiles) - //.ThenInclude(x => x.Profile) - //.ThenInclude(x => x.Insignias) - //.ThenInclude(x => x.Insignia) .FirstOrDefaultAsync(x => x.Id == RequestId); if (insigniaPeriod == null) return Error(GlobalMessages.InsigniaPeriodNotFound); @@ -2627,9 +2178,7 @@ namespace BMA.EHR.Insignia.Service.Controllers var row = 2; foreach (var item in requestProfiles) { - //var profile = _userProfileRepository.GetOfficerProfileById(item.ProfileId, AccessToken); - - workSheet.Cells[row, 1].Value = _userProfileRepository.GetOc(insigniaPeriod.OrganizationId, 0, AccessToken).Root; + workSheet.Cells[row, 1].Value = item.Root; workSheet.Cells[row, 2].Value = item.CitizenId; workSheet.Cells[row, 3].Value = item.Prefix == null ? "-" : ((item.Prefix == "นาย" || item.Prefix == "นาง" || item.Prefix == "นางสาว") ? item.Prefix : "-"); workSheet.Cells[row, 4].Value = item.Prefix == null ? "-" : ((item.Prefix == "นาย" || item.Prefix == "นาง" || item.Prefix == "นางสาว") ? "-" : item.Prefix); @@ -2638,8 +2187,6 @@ namespace BMA.EHR.Insignia.Service.Controllers workSheet.Cells[row, 7].Value = item.Gender == null ? "-" : item.Gender; workSheet.Cells[row, 8].Value = item.BirthDate == null ? "" : item.BirthDate.Value.ToThaiDate(); workSheet.Cells[row, 9].Value = item.DateAppoint == null ? "" : item.DateAppoint.Value.ToThaiDate(); - // workSheet.Cells[row, 10].Value = null; - //workSheet.Cells[row, 11].Value = item.Position == null ? "" : item.Position; workSheet.Cells[row, 12].Value = ""; workSheet.Cells[row, 13].Value = item.PosLevelName == null ? "" : item.PosLevelName; workSheet.Cells[row, 14].Value = ""; @@ -2717,39 +2264,13 @@ namespace BMA.EHR.Insignia.Service.Controllers var requestProfiles = insigniaPeriod.RequestProfiles.Where(x => x.Status == "PENDING").ToList(); if (req.ProfileType != null) requestProfiles = requestProfiles.Where(x => x.ProfileId != null) - //.Where(x => x.Profile.ProfileType.Trim().ToUpper() == req.ProfileType.Trim().ToUpper()) .ToList(); if (req.InsigniaId != null) requestProfiles = requestProfiles.Where(x => x.RequestInsignia.Id == req.InsigniaId).ToList(); - // if (req.OrgId != null) - // requestProfiles = requestProfiles.Where(x => x.Request.Organization.Id == req.OrgId).ToList(); var row = 2; foreach (var item in requestProfiles) { - //var profile = _userProfileRepository.GetOfficerProfileById(item.ProfileId, AccessToken); - //workSheet.Cells[row, 1].Value = _userProfileRepository.GetOc(insigniaPeriod.OrganizationId, 0, AccessToken).Root; - //workSheet.Cells[row, 2].Value = profile.CitizenId; - //workSheet.Cells[row, 3].Value = profile.Prefix == null ? "-" : ((profile.Prefix == "นาย" || profile.Prefix == "นาง" || profile.Prefix == "นางสาว") ? profile.Prefix : "-"); - //workSheet.Cells[row, 4].Value = profile.Prefix == null ? "-" : ((profile.Prefix == "นาย" || profile.Prefix == "นาง" || profile.Prefix == "นางสาว") ? "-" : profile.Prefix); - //workSheet.Cells[row, 5].Value = profile.FirstName; - //workSheet.Cells[row, 6].Value = profile.LastName; - //workSheet.Cells[row, 7].Value = profile.Gender == null ? "-" : profile.Gender; - //workSheet.Cells[row, 8].Value = profile.BirthDate.ToThaiDate(); - //workSheet.Cells[row, 9].Value = profile.DateAppoint == null ? null : profile.DateAppoint.Value.ToThaiDate(); - //// workSheet.Cells[row, 10].Value = null; - //// workSheet.Cells[row, 11].Value = item.Profile.Position == null ? null : item.Profile.Position.Name; - //workSheet.Cells[row, 12].Value = ""; - //workSheet.Cells[row, 13].Value = profile.PosLevel == null ? null : profile.PosLevel.PosLevelName; - //workSheet.Cells[row, 14].Value = ""; - //workSheet.Cells[row, 15].Value = null; - //workSheet.Cells[row, 16].Value = profile.Position == null ? "-" : profile.Position; - //workSheet.Cells[row, 17].Value = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount; - //workSheet.Cells[row, 18].Value = null; - //workSheet.Cells[row, 19].Value = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount; - //workSheet.Cells[row, 20].Value = ""; - //workSheet.Cells[row, 21].Value = ""; - //workSheet.Cells[row, 22].Value = null; - workSheet.Cells[row, 1].Value = _userProfileRepository.GetOc(insigniaPeriod.OrganizationId, 0, AccessToken).Root; + workSheet.Cells[row, 1].Value = item.Root; workSheet.Cells[row, 2].Value = item.CitizenId; workSheet.Cells[row, 3].Value = item.Prefix == null ? "-" : ((item.Prefix == "นาย" || item.Prefix == "นาง" || item.Prefix == "นางสาว") ? item.Prefix : "-"); workSheet.Cells[row, 4].Value = item.Prefix == null ? "-" : ((item.Prefix == "นาย" || item.Prefix == "นาง" || item.Prefix == "นางสาว") ? "-" : item.Prefix); @@ -2758,8 +2279,6 @@ namespace BMA.EHR.Insignia.Service.Controllers workSheet.Cells[row, 7].Value = item.Gender == null ? "-" : item.Gender; workSheet.Cells[row, 8].Value = item.BirthDate == null ? "" : item.BirthDate.Value.ToThaiDate(); workSheet.Cells[row, 9].Value = item.DateAppoint == null ? "" : item.DateAppoint.Value.ToThaiDate(); - // workSheet.Cells[row, 10].Value = null; - //workSheet.Cells[row, 11].Value = item.Position == null ? "" : item.Position; workSheet.Cells[row, 12].Value = ""; workSheet.Cells[row, 13].Value = item.PosLevelName == null ? "" : item.PosLevelName; workSheet.Cells[row, 14].Value = ""; diff --git a/BMA.EHR.Insignia/Requests/AddUserRequestInsigniaRequest.cs b/BMA.EHR.Insignia/Requests/AddUserRequestInsigniaRequest.cs index b973fbb4..7917d3ac 100644 --- a/BMA.EHR.Insignia/Requests/AddUserRequestInsigniaRequest.cs +++ b/BMA.EHR.Insignia/Requests/AddUserRequestInsigniaRequest.cs @@ -9,7 +9,6 @@ namespace BMA.EHR.Insignia.Service.Requests public Guid insigniaId { get; set; } public Guid insigniaPeriodId { get; set; } public string? Reason { get; set; } - public Guid OcId { get; set; } } } \ No newline at end of file diff --git a/BMA.EHR.Leave/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs index 300e377e..0a579986 100644 --- a/BMA.EHR.Leave/Controllers/LeaveReportController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveReportController.cs @@ -850,7 +850,7 @@ namespace BMA.EHR.Leave.Service.Controllers no = count, fullName = $"{p.Prefix}{p.FirstName} {p.LastName}",// _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken), position = p.Position == null ? "" : p.Position, - //positionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, + //positionLevel = p.PosLevel == null ? "" : p.PosLevel, //posNo = p.ProfileSalary == null ? "" : p.ProfileSalary.PosNo, positionLevel = p.PositionLevel == null ? "" : p.PositionLevel, posNo = p.PosNo == null ? "" : p.PosNo, @@ -1084,7 +1084,7 @@ namespace BMA.EHR.Leave.Service.Controllers { //var profile = await _userProfileRepository.SearchProfile(null, null, null); var profile = await _userProfileRepository.GetProfileWithKeycloak(AccessToken); - if(profile.Count > 0) + if (profile.Count > 0) { profile = profile.Where(p => p.IsLeave == false).ToList(); } @@ -1232,12 +1232,12 @@ namespace BMA.EHR.Leave.Service.Controllers workTotal += 1; if (!timeStamps.IsLocationCheckIn) { - if(timeStamps.CheckInLocationName == "ปฏิบัติงานที่บ้าน") + if (timeStamps.CheckInLocationName == "ปฏิบัติงานที่บ้าน") wfhTotal += 1; else if (timeStamps.CheckInLocationName == "ไปประชุม/อบรม/สัมมนา/ปฏิบัติงานที่บ้านนอกสถานที่") seminarTotal += 1; } - + } diff --git a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs index acb5f995..7e5c8e33 100644 --- a/BMA.EHR.Leave/Controllers/LeaveRequestController.cs +++ b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs @@ -348,7 +348,7 @@ namespace BMA.EHR.Leave.Service.Controllers leaveRequest.LeaveTypeCode = leaveType.Code; leaveRequest.Dear = approver; leaveRequest.PositionName = profile.Position == null ? "" : profile.Position; - leaveRequest.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName; + leaveRequest.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel; leaveRequest.OrganizationName = userOc; @@ -376,7 +376,7 @@ namespace BMA.EHR.Leave.Service.Controllers leave.CitizenId = profile.CitizenId; leave.PositionName = profile.Position == null ? "" : profile.Position; - leave.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName; + leave.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel; leave.OrganizationName = profile.Root ?? ""; @@ -628,7 +628,7 @@ namespace BMA.EHR.Leave.Service.Controllers oldData.LeaveTypeCode = leaveType.Code; oldData.Dear = approver; oldData.PositionName = profile.Position == null ? "" : profile.Position; - oldData.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName; + oldData.PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel; oldData.OrganizationName = profile.Oc ?? ""; _context.Entry(oldData.Type).State = Microsoft.EntityFrameworkCore.EntityState.Detached; @@ -729,7 +729,7 @@ namespace BMA.EHR.Leave.Service.Controllers Dear = profile.Commander ?? "", PositionName = profile.Position == null ? "" : profile.Position, - PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel.PosLevelName, + PositionLevelName = profile.PosLevel == null ? "" : profile.PosLevel, OrganizationName = profile.Root ?? "", //profile.Oc ?? "", LeaveLimit = leaveType.Limit, @@ -1574,8 +1574,8 @@ namespace BMA.EHR.Leave.Service.Controllers { refId = id, sysName = "SYS_LEAVE_LIST", - posLevelName = profile.PosLevel?.PosLevelName ?? "", - posTypeName = profile.PosType?.PosTypeName ?? "", + posLevelName = profile.PosLevel ?? "", + posTypeName = profile.PosType ?? "", }); } }