using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; using mws.backend.dotnet.domain.Projects; namespace mws.backend.dotnet.infrastructure.Persistence.Configuration; public class ProjectConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder e) { e.ToTable("projects"); e.HasKey(p => p.Id); e.Property(p => p.Name).HasMaxLength(200).IsRequired(); e.Property(p => p.Description).HasMaxLength(2000); e.Property(p => p.Status).HasConversion().HasMaxLength(20); e.HasIndex(p => p.CreatedBy); e.HasIndex(p => p.UpdatedBy); e.HasOne(p => p.CreatedByUser) .WithMany() .HasForeignKey(p => p.CreatedBy) .OnDelete(DeleteBehavior.Restrict); e.HasOne(p => p.UpdatedByUser) .WithMany() .HasForeignKey(p => p.UpdatedBy) .OnDelete(DeleteBehavior.Restrict); } }