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.ThumbnailUrls).IsRequired(false).HasColumnType("jsonb"); builder.Property(f => f.Metadata).IsRequired(false).HasColumnType("jsonb"); builder.Property(f => f.Categories).IsRequired(false).HasColumnType("jsonb"); builder.Property(f => f.Enabled).HasDefaultValue(false); } }