using Domain.Entities.Stocks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Stocks; public sealed class DerivRedemptionConditionConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(DerivRedemptionCondition), t => t.HasComment("SEIBro 파생결합증권 상환조건 (getRedCondiInfo) — 중간평가일·상환조건문·계산식(최대 1000자)")); builder.HasKey(x => x.ID); builder.HasIndex(x => new { x.Isin, x.RedCondiTpcd, x.ValatNtimesSeq }).IsUnique(); builder.Property(x => x.Isin).HasMaxLength(12).IsRequired().HasComment("종목코드 (ISIN, 스탬핑)"); builder.Property(x => x.RedCondiTpcd).HasMaxLength(1).IsRequired().HasComment("상환조건구분코드 (RED_CONDI_TPCD) — 1중간평가 2만기"); builder.Property(x => x.ValatNtimesSeq).HasComment("평가횟수일련번호 (VALAT_NTIMES_SEQ)"); builder.Property(x => x.MidValatPayDt).HasComment("중간평가지급일자 (MID_VALAT_PAY_DT)"); builder.Property(x => x.MidValatBeginDt).HasComment("중간평가시작일자 (MID_VALAT_BEGIN_DT)"); builder.Property(x => x.MidValatExpryDt).HasComment("중간평가종료일자 (MID_VALAT_EXPRY_DT)"); builder.Property(x => x.RedCondiContent).HasMaxLength(1000).HasComment("상환조건내용 (RED_CONDI_CONTENT)"); builder.Property(x => x.RedFormulaContent).HasMaxLength(1000).HasComment("상환계산식내용 (RED_FORMULA_CONTENT)"); } }