using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using Nuuru.Server.Models; namespace Nuuru.Server.Data.Configurations { public class NotificationConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.HasKey(n => n.Id); builder.HasIndex(n => new { n.UserId, n.IsRead, n.CreatedAt }); // Cascade delete: when user is deleted, remove their notifications builder.HasOne(n => n.User) .WithMany(u => u.Notifications) .HasForeignKey(n => n.UserId) .OnDelete(DeleteBehavior.Cascade); // User who triggered the notification (optional) builder.HasOne(n => n.TriggeredByUser) .WithMany() .HasForeignKey(n => n.TriggeredByUserId) .OnDelete(DeleteBehavior.SetNull); } } }