namespace LiteCharms.Features.Shop.Leads.Entities; public class LeadConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Leads"); 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); builder.Property(f => f.Source); builder.Property(f => f.ClickId); builder.Property(f => f.WebClickId); builder.Property(f => f.AppClickId); builder.Property(f => f.CampaignId); builder.Property(f => f.AdGroupId); builder.Property(f => f.AdName); builder.Property(f => f.TargetId); builder.Property(f => f.FeedItemId); builder.Property(f => f.ClickLocation); builder.Property(f => f.Status).IsRequired(); builder.Property(f => f.AttributionHash).IsRequired(true); builder.HasOne(f => f.Customer) .WithMany(f => f.Leads) .HasForeignKey(f => f.CustomerId) .OnDelete(DeleteBehavior.Restrict); } }