using Domain.Entities.Paper; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Paper; public sealed class PaperFillConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.HasOne(x => x.Order).WithMany().HasForeignKey(x => x.OrderID).OnDelete(DeleteBehavior.Cascade); builder.HasIndex(x => x.OrderID).IsUnique(); builder.ToTable(nameof(PaperFill), t => t.HasComment("모의투자 체결 결과 (주문당 1건, 멱등)")); builder.HasKey(x => x.ID); builder.Property(x => x.ID).ValueGeneratedOnAdd().HasComment("PK"); builder.Property(x => x.OrderID).IsRequired().HasComment("주문 ID"); builder.Property(x => x.Price).HasPrecision(18, 0).IsRequired().HasComment("체결가"); builder.Property(x => x.Quantity).IsRequired().HasComment("수량"); builder.Property(x => x.Fee).HasPrecision(18, 0).IsRequired().HasComment("수수료"); builder.Property(x => x.Tax).HasPrecision(18, 0).IsRequired().HasComment("거래세"); builder.Property(x => x.Amount).HasPrecision(18, 0).IsRequired().HasComment("체결 총액"); builder.Property(x => x.RealizedPnL).HasPrecision(18, 0).HasComment("매도 확정 손익"); builder.Property(x => x.PriceDate).IsRequired().HasComment("체결가 기준일"); builder.Property(x => x.FilledAt).IsRequired(); } }