namespace LiteCharms.Features.Shop.Orders.Entities; public class OrderConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Orders"); builder.HasKey(f => f.Id); builder.Property(f => f.CreatedAt).ValueGeneratedOnAdd().HasDefaultValueSql("now()"); builder.Property(f => f.UpdatedAt).IsRequired(false).HasDefaultValueSql(null); builder.Property(f => f.CustomerId).IsRequired(); builder.Property(f => f.Status).HasConversion().IsRequired(); builder.Property(f => f.Requirements).HasColumnType("jsonb").IsRequired(false); builder.Property(f => f.Notes).HasColumnType("jsonb").IsRequired(false); builder.Property(f => f.Terms).HasColumnType("jsonb").IsRequired(false); builder.Property(f => f.InvoiceUrl).IsRequired(false).HasMaxLength(2048); builder.HasOne(o => o.Customer) .WithMany(c => c.Orders) .HasForeignKey(o => o.CustomerId) .IsRequired() .OnDelete(DeleteBehavior.Restrict); } }