25 lines
1.0 KiB
C#
25 lines
1.0 KiB
C#
namespace LiteCharms.Features.MidrandBooks.Products.Entities;
|
|
|
|
public sealed class ProductConfiguration : IEntityTypeConfiguration<Product>
|
|
{
|
|
public void Configure(EntityTypeBuilder<Product> builder)
|
|
{
|
|
builder.Ignore(p => p.Price);
|
|
|
|
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.ThumbnailUrls).IsRequired(false);
|
|
|
|
builder.OwnsOne(f => f.Metadata, b => { b.ToJson(); });
|
|
}
|
|
}
|