using JSMR.Domain.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace JSMR.Infrastructure.Data.Configuration; public sealed class VoiceWorkLocalizationConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("voice_work_localizations"); builder.HasKey(x => x.VoiceWorkLocalizationId); builder.Property(x => x.Language).IsRequired().HasMaxLength(10); builder.Property(x => x.ProductName).HasMaxLength(256); builder.Property(x => x.Description).HasMaxLength(512); builder.HasOne(x => x.VoiceWork) .WithMany(v => v.Localizations) .HasForeignKey(x => x.VoiceWorkId) .OnDelete(DeleteBehavior.Cascade); builder.HasIndex(x => new { x.VoiceWorkId, x.Language }).IsUnique(); builder.HasIndex(x => x.VoiceWorkId); builder.HasIndex(x => x.ProductName); } }