using ErsatzTV.Core.Domain.Scheduling; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace ErsatzTV.Infrastructure.Data.Configurations.Scheduling; public class BlockConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Block"); builder.HasIndex(b => new { b.BlockGroupId, b.Name }) .IsUnique(); builder.HasMany(b => b.Items) .WithOne(i => i.Block) .HasForeignKey(i => i.BlockId) .OnDelete(DeleteBehavior.Cascade); builder.HasMany(b => b.TemplateItems) .WithOne(i => i.Block) .HasForeignKey(i => i.BlockId) .OnDelete(DeleteBehavior.Cascade); builder.HasMany(b => b.PlayoutHistory) .WithOne(h => h.Block) .HasForeignKey(h => h.BlockId) .IsRequired(false) .OnDelete(DeleteBehavior.Cascade); } }