namespace LiteCharms.Features.MidrandBooks.Authors.Entities; public sealed class AuthorConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Authors"); 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.PublisherType).IsRequired(); builder.Property(f => f.VatNumber).IsRequired(false).HasMaxLength(255); builder.Property(f => f.Name).IsRequired().HasMaxLength(255); builder.Property(f => f.LastName).IsRequired().HasMaxLength(255); builder.Property(f => f.Biography).IsRequired(false).HasMaxLength(2048); builder.Property(f => f.Email).IsRequired().HasMaxLength(512); builder.Property(f => f.Website).IsRequired(false).HasMaxLength(1024); builder.Property(f => f.ImageUrl).IsRequired().HasMaxLength(2048); builder.Property(f => f.ThumbnailImageUrl).IsRequired(false).HasMaxLength(2048); builder.Property(f => f.Enabled).HasDefaultValue(true); builder.OwnsMany(f => f.SocialMedia, b => { b.ToJson(); }); } }