28 lines
1.1 KiB
C#
28 lines
1.1 KiB
C#
namespace LiteCharms.Features.MidrandBooks.Pages.Entities;
|
|
|
|
public sealed class BookPageConfiguration : IEntityTypeConfiguration<BookPage>
|
|
{
|
|
public void Configure(EntityTypeBuilder<BookPage> builder)
|
|
{
|
|
builder.ToTable("BookPages");
|
|
|
|
builder.HasKey(bp => bp.Id);
|
|
builder.Property(bp => bp.CreatedAt).IsRequired().ValueGeneratedOnAdd().HasDefaultValueSql("now()");
|
|
builder.Property(bp => bp.UpdatedAt).HasDefaultValueSql("now()");
|
|
builder.Property(bp => bp.Number).IsRequired().HasDefaultValue(0);
|
|
builder.Property(bp => bp.AuthorBookId).IsRequired();
|
|
builder.Property(bp => bp.Content).IsRequired();
|
|
builder.Property(bp => bp.Type).IsRequired();
|
|
builder.Property(bp => bp.ContentType).IsRequired();
|
|
builder.Property(bp => bp.Enabled).HasDefaultValue(true);
|
|
builder.Property(bp => bp.Notes).IsRequired(false);
|
|
|
|
builder.OwnsMany(f => f.References, b => { b.ToJson(); });
|
|
|
|
builder.HasOne(f =>f.Book)
|
|
.WithMany(b => b.Pages)
|
|
.HasForeignKey(f => f.AuthorBookId)
|
|
.OnDelete(DeleteBehavior.NoAction);
|
|
}
|
|
}
|