using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class ForeignSettlementNationConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(ForeignSettlementNation), t => t.HasComment("SEIBro 국가별 외화증권 결제현황 (getNationFrsecSetlInfo) — KSD 결제 매수/매도 결제건수·금액(USD), 국가×매매×종목구분별")); builder.HasKey(x => x.ID); builder.HasIndex(x => new { x.SetlDt, x.NationCd, x.IntlBizCacd, x.SecnTpcd }).IsUnique(); builder.HasIndex(x => new { x.NationCd, x.SetlDt }); builder.Property(x => x.SetlDt).IsRequired().HasComment("결제일자 (SETL_DT, 스탬핑)"); builder.Property(x => x.NationCd).HasMaxLength(2).IsRequired().HasComment("국가코드 (NATION_CD, 스탬핑) — US/JP/HK/CN/E1 등 43종"); builder.Property(x => x.IntlBizCacd).HasMaxLength(4).IsRequired().HasComment("국제업무분류코드 (INTL_BIZ_CACD) — 1110매수 1120매도"); builder.Property(x => x.SecnTpcd).HasMaxLength(2).IsRequired().HasComment("종목구분코드 (SECN_TPCD) — 71외화주식~78외화수익증권"); builder.Property(x => x.SetlCount).HasComment("결제건수 (SETL_COUNT)"); builder.Property(x => x.FrsecSetlAmt).HasColumnType("decimal(30,10)").HasComment("외화증권결제금액 (FRSEC_SETL_AMT) — USD, NUMBER(26,10)"); } }