using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class PaymentScheduleConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(PaymentSchedule), t => t.HasComment("SEIBro 대금지급일정 정보 (getCostPaySchedul) — 배당금/단주대금 지급일정. 날짜 스윕 × 지급구분{1,3}, 지급일 window delete+insert")); builder.HasKey(x => x.ID); builder.HasIndex(x => new { x.Th1PayTermBeginDt, x.PayCostTpcd }); builder.HasIndex(x => x.Isin); builder.Property(x => x.IssucoCustno).HasComment("발행회사 고객번호 (ISSUCO_CUSTNO)"); builder.Property(x => x.Isin).HasMaxLength(12).IsFixedLength().IsRequired().HasComment("종목번호 (ISIN)"); builder.Property(x => x.KorSecnNm).HasMaxLength(100).HasComment("한글종목명 (KOR_SECN_NM)"); builder.Property(x => x.SecnKacd).HasMaxLength(4).HasComment("종목종류코드 (SECN_KACD) — 101보통주 201우선주"); builder.Property(x => x.RgtStdDt).HasComment("권리기준일자 (RGT_STD_DT)"); 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.PayCostTpcd).HasMaxLength(1).IsRequired().HasComment("지급대금구분코드 (PAY_COST_TPCD, 요청 스탬핑) — 1배당금 3단주대금"); builder.Property(x => x.Th1PayTermBeginDt).IsRequired().HasComment("대금지급일 (TH1_PAY_TERM_BEGIN_DT, 요청 스탬핑)"); } }