using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class ElsUnredeemedScaleConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(ElsUnredeemedScale), t => t.HasComment("SEIBro 기초자산별 미상환규모 (getBassetUnredScale) — ELS 지수 하락 리스크 지표. 일별 13기초자산×{41,43}")); builder.HasKey(x => x.ID); builder.HasIndex(x => new { x.StdDt, x.StndBassetCd, x.SecnTpcd }).IsUnique(); builder.HasIndex(x => new { x.StndBassetCd, x.StdDt }); builder.Property(x => x.StdDt).IsRequired().HasComment("기준일자 (STD_DT, 스탬핑)"); builder.Property(x => x.StndBassetCd).HasMaxLength(12).IsRequired().HasComment("표준기초자산코드 (STND_BASSET_CD, 스탬핑) — 입력 13종 KSD02* 원문"); builder.Property(x => x.SecnTpcd).HasMaxLength(2).IsRequired().HasComment("종목구분코드 (SECN_TPCD, 스탬핑) — 41ELS 43DLS"); builder.Property(x => x.BassetContent).HasMaxLength(500).HasComment("기초자산내용 (BASSET_CONTENT)"); builder.Property(x => x.UnredSecncnt).HasComment("미상환종목수 (UNRED_SECNCNT)"); builder.Property(x => x.UnredRema).HasColumnType("decimal(20,2)").HasComment("미상환잔액 (UNRED_REMA) — 원화 환산 합계"); } }