using GymLogAI.Core.Entities; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; namespace GymLogAI.Persistence.Configurations; public sealed class WorkoutExerciseConfiguration : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.ToTable("workout_exercises"); builder.HasKey(x => x.Id); builder.Property(x => x.Id).ValueGeneratedNever(); builder.Property(x => x.Notes).HasMaxLength(2000); builder.HasOne(x => x.Exercise) .WithMany(x => x.WorkoutExercises) .HasForeignKey(x => x.ExerciseId) .OnDelete(DeleteBehavior.Restrict); builder.HasMany(x => x.Sets) .WithOne(x => x.WorkoutExercise) .HasForeignKey(x => x.WorkoutExerciseId) .OnDelete(DeleteBehavior.Cascade); builder.HasIndex(x => new { x.WorkoutId, x.Order }).IsUnique(); } }