namespace LiteCharms.Features.MidrandBooks.Pages.Entities; public class BookPageConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder 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.Notes).IsRequired(false).HasColumnType("jsonb"); builder.Property(bp => bp.References).IsRequired(false).HasColumnType("jsonb"); builder.Property(bp => bp.Enabled).HasDefaultValue(true); builder.HasOne(f =>f.Book) .WithMany(b => b.Pages) .HasForeignKey(f => f.AuthorBookId) .OnDelete(DeleteBehavior.NoAction); } }