using ErsatzTV.Core.Domain; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace ErsatzTV.Infrastructure.Data.Configurations; public class LibraryFolderConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("LibraryFolder"); builder.HasOne(f => f.Parent) .WithMany(p => p.Children) .HasForeignKey(f => f.ParentId) .IsRequired(false) .OnDelete(DeleteBehavior.Restrict); builder.HasOne(f => f.ImageFolderDuration) .WithOne(ifd => ifd.LibraryFolder) .HasForeignKey(ifd => ifd.LibraryFolderId) .IsRequired(false) .OnDelete(DeleteBehavior.Cascade); } }