create project

This commit is contained in:
Kittapath 2023-03-23 12:31:21 +07:00
commit ffeab6a127
196 changed files with 36968 additions and 0 deletions

View file

@ -0,0 +1,32 @@
using BMA.EHR.Recurit.Exam.Service.Models;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Recurit.Exam.Service.Data
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
}
public DbSet<Prefix> Prefixes { get; set; }
public DbSet<Religion> Religions { get; set; }
public DbSet<Relationship> Relationships { get; set; }
public DbSet<EducationLevel> EducationLevels { get; set; }
public DbSet<Province> Provinces { get; set; }
public DbSet<District> Districts { get; set; }
public DbSet<SubDistrict> SubDistricts { get; set; }
}
}

315
Data/DatabaseSeeder.cs Normal file
View file

@ -0,0 +1,315 @@
using BMA.EHR.Core;
using BMA.EHR.Extensions;
using BMA.EHR.Recurit.Exam.Service.Models;
using BMA.EHR.Recurit.Exam.Service.Services;
using Newtonsoft.Json;
using OfficeOpenXml;
using System.Linq;
namespace BMA.EHR.Recurit.Exam.Service.Data
{
public static class DatabaseSeeder
{
#region " Seed Metadata "
public static async Task SeedPrefixAsync(WebApplication app)
{
using var scope = app.Services.CreateScope();
var service = scope.ServiceProvider.GetRequiredService<PrefixService>();
var insertedPrefix = new List<Prefix>();
if ((await service.GetsAsync()).Count() == 0)
{
// read excels into object
var excelFile = "SeedPerson.xlsx";
using (var excel = new ExcelPackage(new FileInfo(excelFile)))
{
// 1. Seed PrefixAsync
var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "prefix");
var totalRows = workSheet?.Dimension.Rows;
int row = 1;
while (row <= totalRows)
{
var cell1 = workSheet?.Cells[row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var prefix = insertedPrefix.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue<string>() ?? "")).FirstOrDefault();
if (prefix == null)
{
var inserted = new Prefix
{
Id = Guid.NewGuid(),
Name = workSheet?.Cells[row, 1]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now
};
insertedPrefix.Add(inserted);
await service.CreateAsync(inserted);
}
row++;
}
}
}
}
public static async Task SeedReligionAsync(WebApplication app)
{
using var scope = app.Services.CreateScope();
var service = scope.ServiceProvider.GetRequiredService<ReligionService>();
var insertedReligion = new List<Religion>();
if ((await service.GetsAsync()).Count() == 0)
{
// read excels into object
var excelFile = "SeedPerson.xlsx";
using (var excel = new ExcelPackage(new FileInfo(excelFile)))
{
// 1. Seed Religion
var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "religion");
var totalRows = workSheet?.Dimension.Rows;
int row = 1;
while (row <= totalRows)
{
var cell1 = workSheet?.Cells[row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var religion = insertedReligion.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue<string>() ?? "")).FirstOrDefault();
if (religion == null)
{
var inserted = new Religion
{
Id = Guid.NewGuid(),
Name = workSheet?.Cells[row, 1]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now
};
insertedReligion.Add(inserted);
await service.CreateAsync(inserted);
}
row++;
}
}
}
}
public static async Task SeedRelationshipAsync(WebApplication app)
{
using var scope = app.Services.CreateScope();
var service = scope.ServiceProvider.GetRequiredService<RelationshipService>();
var insertedRelationship = new List<Relationship>();
if ((await service.GetsAsync()).Count() == 0)
{
// read excels into object
var excelFile = "SeedPerson.xlsx";
using (var excel = new ExcelPackage(new FileInfo(excelFile)))
{
// 1. Seed Relationship
var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "relationship");
var totalRows = workSheet?.Dimension.Rows;
int row = 1;
while (row <= totalRows)
{
var cell1 = workSheet?.Cells[row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var relationship = insertedRelationship.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue<string>() ?? "")).FirstOrDefault();
if (relationship == null)
{
var inserted = new Relationship
{
Id = Guid.NewGuid(),
Name = workSheet?.Cells[row, 1]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now
};
insertedRelationship.Add(inserted);
await service.CreateAsync(inserted);
}
row++;
}
}
}
}
public static async Task SeedEducationLevelAsync(WebApplication app)
{
using var scope = app.Services.CreateScope();
var service = scope.ServiceProvider.GetRequiredService<EducationLevelService>();
var insertedEducationLevel = new List<EducationLevel>();
if ((await service.GetsAsync()).Count() == 0)
{
// read excels into object
var excelFile = "SeedPerson.xlsx";
using (var excel = new ExcelPackage(new FileInfo(excelFile)))
{
// 1. Seed EducationLevel
var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "educationlevel");
var totalRows = workSheet?.Dimension.Rows;
int row = 1;
while (row <= totalRows)
{
var cell1 = workSheet?.Cells[row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var educationLevel = insertedEducationLevel.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue<string>() ?? "")).FirstOrDefault();
if (educationLevel == null)
{
var inserted = new EducationLevel
{
Id = Guid.NewGuid(),
Name = workSheet?.Cells[row, 1]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now
};
insertedEducationLevel.Add(inserted);
await service.CreateAsync(inserted);
}
row++;
}
}
}
}
public static async Task SeedProvinceAsync(WebApplication app)
{
using var scope = app.Services.CreateScope();
var service = scope.ServiceProvider.GetRequiredService<ProvinceService>();
var districtService = scope.ServiceProvider.GetRequiredService<DistrictService>();
var subDistrictService = scope.ServiceProvider.GetRequiredService<SubDistrictService>();
var serializeOption = new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore };
var insertedProvince = new List<Province>();
if ((await service.GetsAsync()).Count() == 0)
{
// read excels into object
var excelFile = "SeedPerson.xlsx";
using (var excel = new ExcelPackage(new FileInfo(excelFile)))
{
// 1. Seed Province
var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "province");
var totalRows = workSheet?.Dimension.Rows;
int row = 2;
while (row <= totalRows)
{
var cell1 = workSheet?.Cells[row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var inserted = new Province
{
Id = Guid.NewGuid(),
Name = workSheet?.Cells[row, 1]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now,
Districts = new List<District>()
};
insertedProvince.Add(inserted);
await service.CreateAsync(inserted);
row++;
}
// 2. Seed District
var d_workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "district");
var d_totalRows = d_workSheet?.Dimension.Rows;
int d_row = 2;
while (d_row <= d_totalRows)
{
var cell1 = d_workSheet?.Cells[d_row, 1]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var province = insertedProvince.Where(x => x.Name == cell1).FirstOrDefault();
var inserted = new District
{
Id = Guid.NewGuid(),
Name = d_workSheet?.Cells[d_row, 2]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now,
SubDistricts = new List<SubDistrict>()
};
province?.Districts.Add(inserted);
var provinceId = province == null ? Guid.NewGuid() : province.Id;
var jsonString = JsonConvert.SerializeObject(inserted, serializeOption);
await districtService.CreateAsync(inserted, provinceId.ToString("D"));
d_row++;
}
// 3. Seed SubDistrict
var s_workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "subdistrict");
var s_totalRows = s_workSheet?.Dimension.Rows;
int s_row = 2;
var zipcodes = new List<string>();
while (s_row <= s_totalRows)
{
var cell1 = s_workSheet?.Cells[s_row, 1]?.GetValue<string>();
var cell2 = s_workSheet?.Cells[s_row, 2]?.GetValue<string>();
if (cell1 == "" || cell1 == null) break;
var province = insertedProvince.Where(x => x.Name == cell1).FirstOrDefault();
var district = province?.Districts.Where(x => x.Name == cell2).FirstOrDefault();
var inserted = new SubDistrict
{
Id = Guid.NewGuid(),
Name = s_workSheet?.Cells[s_row, 3]?.GetValue<string>() ?? "",
ZipCode = s_workSheet?.Cells[s_row, 4]?.GetValue<string>() ?? "",
IsActive = true,
CreatedFullName = "System Administrator",
CreatedAt = DateTime.Now,
};
if (!zipcodes.Contains(inserted.ZipCode))
zipcodes.Add(inserted.ZipCode);
district?.SubDistricts.Add(inserted);
var districtId = district == null ? Guid.NewGuid() : district.Id;
var jsonString = JsonConvert.SerializeObject(inserted, serializeOption);
await subDistrictService.CreateAsync(inserted, districtId.ToString("D"));
s_row++;
}
}
}
}
#endregion
}
}

View file

@ -0,0 +1,517 @@
// <auto-generated />
using System;
using BMA.EHR.Recurit.Exam.Service.Data;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
#nullable disable
namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations
{
[DbContext(typeof(ApplicationDbContext))]
partial class ApplicationDbContextModelSnapshot : ModelSnapshot
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "7.0.4")
.HasAnnotation("Relational:MaxIdentifierLength", 64);
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(2)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("varchar(150)")
.HasColumnOrder(1)
.HasComment("เขต/อำเภอ");
b.Property<Guid?>("ProvinceId")
.HasColumnType("char(36)");
b.HasKey("Id");
b.HasIndex("ProvinceId");
b.ToTable("Districts");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(2)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)")
.HasColumnOrder(1)
.HasComment("ระดับการศึกษา");
b.HasKey("Id");
b.ToTable("EducationLevels");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(3)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("varchar(50)")
.HasColumnOrder(2)
.HasComment("รายละเอียดคำนำหน้า");
b.HasKey("Id");
b.ToTable("Prefixes");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(2)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("varchar(150)")
.HasColumnOrder(1)
.HasComment("จังหวัด");
b.HasKey("Id");
b.ToTable("Provinces");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(2)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(50)
.HasColumnType("varchar(50)")
.HasColumnOrder(1)
.HasComment("ชื่อความสัมพันธ์");
b.HasKey("Id");
b.ToTable("Relationships");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(2)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(100)
.HasColumnType("varchar(100)")
.HasColumnOrder(1)
.HasComment("ศาสนา");
b.HasKey("Id");
b.ToTable("Religions");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("char(36)")
.HasColumnOrder(0)
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(100)
.HasComment("สร้างข้อมูลเมื่อ");
b.Property<string>("CreatedFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(104)
.HasComment("ชื่อ User ที่สร้างข้อมูล");
b.Property<string>("CreatedUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(101)
.HasComment("User Id ที่สร้างข้อมูล");
b.Property<Guid?>("DistrictId")
.HasColumnType("char(36)");
b.Property<bool>("IsActive")
.HasColumnType("tinyint(1)")
.HasColumnOrder(3)
.HasComment("สถานะการใช้งาน");
b.Property<string>("LastUpdateFullName")
.IsRequired()
.HasMaxLength(200)
.HasColumnType("varchar(200)")
.HasColumnOrder(105)
.HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด");
b.Property<string>("LastUpdateUserId")
.IsRequired()
.HasMaxLength(40)
.HasColumnType("varchar(40)")
.HasColumnOrder(103)
.HasComment("User Id ที่แก้ไขข้อมูลล่าสุด");
b.Property<DateTime?>("LastUpdatedAt")
.HasColumnType("datetime(6)")
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<string>("Name")
.IsRequired()
.HasMaxLength(150)
.HasColumnType("varchar(150)")
.HasColumnOrder(1)
.HasComment("เขต/อำเภอ");
b.Property<string>("ZipCode")
.IsRequired()
.HasMaxLength(10)
.HasColumnType("varchar(10)")
.HasColumnOrder(2)
.HasComment("รหัสไปรษณีย์");
b.HasKey("Id");
b.HasIndex("DistrictId");
b.ToTable("SubDistricts");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b =>
{
b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province")
.WithMany("Districts")
.HasForeignKey("ProvinceId");
b.Navigation("Province");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b =>
{
b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District")
.WithMany("SubDistricts")
.HasForeignKey("DistrictId");
b.Navigation("District");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b =>
{
b.Navigation("SubDistricts");
});
modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b =>
{
b.Navigation("Districts");
});
#pragma warning restore 612, 618
}
}
}