31 lines
922 B
C#
31 lines
922 B
C#
using Femto.Modules.Blog.Domain.Posts;
|
|
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
|
|
|
namespace Femto.Modules.Blog.Application.Configurations;
|
|
|
|
internal class PostConfiguration : IEntityTypeConfiguration<Post>
|
|
{
|
|
public void Configure(EntityTypeBuilder<Post> 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.Property<string>("PossibleReactionsJson").HasColumnName("possible_reactions");
|
|
|
|
table.Ignore(e => e.PossibleReactions);
|
|
}
|
|
}
|