using Femto.Modules.Blog.Domain.Posts; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Femto.Modules.Blog.Application.Configurations; internal class PostConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder table) { table.ToTable("post"); table.OwnsMany(post => post.Media).WithOwner(); table.OwnsMany( post => post.Reactions, reactions => { reactions.WithOwner().HasForeignKey(r => r.PostId); reactions.HasKey(r => new { r.PostId, r.AuthorId, r.Emoji, }); } ); table.OwnsMany(p => p.Comments).WithOwner(); table.Property("PossibleReactionsJson").HasColumnName("possible_reactions"); table.Ignore(e => e.PossibleReactions); } }