namespace LiteCharms.Entities.Configuration; public class OrderConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable(nameof(Order)); builder.HasKey(f => f.Id); builder.Property(f => f.CreatedAt).ValueGeneratedOnAdd(); builder.Property(f => f.UpdatedAt).IsRequired(false).ValueGeneratedOnUpdate(); builder.Property(f => f.CustomerId).IsRequired(); builder.Property(f => f.QuoteId).IsRequired(false); builder.Property(f => f.RefundId).IsRequired(false); builder.Property(f => f.ShoppingCartId).IsRequired(); builder.Property(f => f.Status).HasConversion().IsRequired(); builder.Property(f => f.Notes).HasColumnType("jsonb").IsRequired(false); builder.HasOne(f => f.Quote) .WithOne(f => f.Order) .HasForeignKey(f => f.QuoteId) .OnDelete(DeleteBehavior.Restrict); builder.HasOne(f => f.Customer) .WithMany(f => f.Orders) .HasForeignKey(f => f.CustomerId) .OnDelete(DeleteBehavior.Restrict); } }