using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using UniVerse.Domain.Entities; namespace UniVerse.Infrastructure.Data.Configurations; public class UserNotificationConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("user_notifications"); builder.HasKey(n => n.Id); builder.Property(n => n.Id).HasColumnName("id"); builder.Property(n => n.UserId).HasColumnName("user_id"); builder.Property(n => n.Type).HasColumnName("type").HasMaxLength(50).IsRequired(); builder.Property(n => n.Title).HasColumnName("title").HasMaxLength(255).IsRequired(); builder.Property(n => n.Body).HasColumnName("body").HasMaxLength(1000).IsRequired(); builder.Property(n => n.IsRead).HasColumnName("is_read").HasDefaultValue(false); builder.Property(n => n.CreatedAt).HasColumnName("created_at").HasDefaultValueSql("NOW()"); builder.HasOne(n => n.User) .WithMany(u => u.Notifications) .HasForeignKey(n => n.UserId) .OnDelete(DeleteBehavior.Cascade); builder.HasIndex(n => new { n.UserId, n.CreatedAt }); } }