using Domain.Entities.Members; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Infrastructure.Persistence.Configurations.Members; public sealed class ChannelBroadcastStatsConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.HasOne(x => x.Channel).WithMany().HasForeignKey(x => x.ChannelID).OnDelete(DeleteBehavior.Cascade); builder.ToTable(nameof(ChannelBroadcastStats), x => x.HasComment("채널별 누적 방송 지표")); builder.HasKey(x => x.ChannelID); builder.Property(x => x.ChannelID).ValueGeneratedNever().HasComment("채널 ID"); builder.Property(x => x.TotalDurationSec).IsRequired().HasComment("누적 방송 시간 (초)"); builder.Property(x => x.CumulativeViews).IsRequired().HasComment("누적 조회수"); builder.Property(x => x.TotalLikes).IsRequired().HasComment("누적 좋아요"); builder.Property(x => x.SessionCount).IsRequired().HasComment("방송 횟수"); builder.Property(x => x.LastBroadcastAt).HasComment("마지막 방송 일시"); builder.Property(x => x.LastAggregatedAt).HasComment("마지막 집계 일시"); builder.Property(x => x.CreatedAt).IsRequired().HasComment("생성 일시"); } }