namespace LiteCharms.Features.MidrandBooks.Products.Entities; public sealed class ProductConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Products"); builder.HasKey(f => f.Id); builder.Property(f => f.CreatedAt).IsRequired().ValueGeneratedOnAdd().HasDefaultValueSql("now()"); builder.Property(f => f.UpdatedAt).HasDefaultValueSql("now()"); builder.Property(f => f.Type).IsRequired(); builder.Property(f => f.Name).IsRequired().HasMaxLength(255); builder.Property(f => f.Summary).IsRequired().HasMaxLength(512); builder.Property(f => f.Description).HasMaxLength(1024); builder.Property(f => f.ImageUrl).HasMaxLength(1024); builder.Property(f => f.Enabled).HasDefaultValue(false); builder.Property(f => f.Categories).IsRequired(false); builder.Property(f => f.ThumbnailUrls).IsRequired(false); builder.OwnsOne(f => f.Metadata, b => { b.ToJson(); }); } }