using Baya.Domain.Entities.Notifications; using Baya.Domain.Entities.User; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace Baya.Infrastructure.Persistence.Configuration.NotificationsConfig; internal sealed class NotificationConfig : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("Notifications", "ops"); builder.Property(n => n.Type).HasMaxLength(100).IsRequired(); builder.Property(n => n.Title).HasMaxLength(200).IsRequired(); builder.Property(n => n.IsRead).HasDefaultValue(false); // Serves unread-first paging and the cheap unread-count query. builder.HasIndex(n => new { n.UserId, n.IsRead, n.CreatedAt }); builder.HasOne() .WithMany() .HasForeignKey(n => n.UserId) .IsRequired(); } }