using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class OddLotPaymentConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(OddLotPayment), t => t.HasComment("SEIBro 단주대금 정보 (getOddLotInfo) — 단주대금 사유·산정기준·권리락일. PaymentSchedule 단주(구분3) 이벤트 구동")); builder.HasKey(x => x.ID); builder.HasIndex(x => new { x.IssucoCustno, x.PayDate, x.RgtStdDt }).IsUnique(); builder.Property(x => x.IssucoCustno).HasComment("발행회사 고객번호 (ISSUCO_CUSTNO, 요청 스탬핑)"); builder.Property(x => x.PayDate).IsRequired().HasComment("대금지급일 (TH1_PAY_TERM_BEGIN_DT, 요청 스탬핑)"); builder.Property(x => x.RgtStdDt).IsRequired().HasComment("권리기준일자 (RGT_STD_DT)"); builder.Property(x => x.RgtRacd).HasMaxLength(3).HasComment("권리사유코드 (RGT_RACD)"); builder.Property(x => x.RgtRacdNm).HasMaxLength(200).HasComment("권리사유명 (RGT_RACD_NM)"); builder.Property(x => x.RgtRsnDetailSortCd).HasMaxLength(2).HasComment("권리사유세부유형코드 (RGT_RSN_DTAIL_SORT_CD)"); builder.Property(x => x.EstmStdTpcd).HasMaxLength(2).HasComment("산정기준구분코드 (ESTM_STD_TPCD)"); builder.Property(x => x.EstmStdDt).HasComment("산정기준일자 (ESTM_STD_DT)"); builder.Property(x => x.EstmStdprc).HasPrecision(18, 4).HasComment("산정기준가 (ESTM_STDPRC)"); builder.Property(x => x.RostCloseBeginDt).HasComment("명부폐쇄시작일자 (ROST_CLOSE_BEGIN_DT)"); builder.Property(x => x.RostCloseExpryDt).HasComment("명부폐쇄종료일자 (ROST_CLOSE_EXPRY_DT)"); builder.Property(x => x.XrgtDt).HasComment("권리락일자 (XRGT_DT)"); } }