Added configurations for entity builders. Also added VoiceWorkLocaalization entity.

This commit is contained in:
2025-08-27 00:16:10 -04:00
parent d2201d6f9b
commit 22b8513e34
16 changed files with 299 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
using JSMR.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
namespace JSMR.Infrastructure.Data.Configuration;
public sealed class VoiceWorkSearchConfiguration : IEntityTypeConfiguration<VoiceWorkSearch>
{
public void Configure(EntityTypeBuilder<VoiceWorkSearch> builder)
{
builder.ToTable("voice_work_searches");
builder.HasKey(x => x.VoiceWorkId); // also the FK
builder.Property(x => x.SearchText).IsRequired(); // TEXT/LONGTEXT
builder.HasOne(x => x.VoiceWork)
.WithOne() // not navigated from VoiceWork in your model
.HasForeignKey<VoiceWorkSearch>(x => x.VoiceWorkId)
.OnDelete(DeleteBehavior.Cascade);
// MariaDB/MySQL (Pomelo) fulltext (BOOLEAN/NATURAL) — create an FT index
// Pomelo supports .HasMethod("FULLTEXT"). If your version doesn't, add it in a migration SQL.
//builder.HasIndex(x => x.SearchText)
// .HasDatabaseName("FT_SearchText")
// .HasMethod("FULLTEXT");
}
}