902942eee6
continuous-integration/drone/pr Build is passing
Sealed qualifying public classes Migrated database changes
25 lines
1.3 KiB
C#
25 lines
1.3 KiB
C#
namespace LiteCharms.Features.MidrandBooks.Authors.Entities;
|
|
|
|
public sealed class AuthorConfiguration : IEntityTypeConfiguration<Author>
|
|
{
|
|
public void Configure(EntityTypeBuilder<Author> 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.SocialMedia).IsRequired(false).HasColumnType("jsonb");
|
|
builder.Property(f => f.Enabled).HasDefaultValue(true);
|
|
}
|
|
}
|