Index: iknow-api/Data/AppDbContext.cs
===================================================================
--- iknow-api/Data/AppDbContext.cs	(revision 39f76a913d87c2aaad3ab3e11cb09f9857de636e)
+++ iknow-api/Data/AppDbContext.cs	(revision bf18ca470c976f4e869fd0b440ca1a5f596fcb82)
@@ -25,4 +25,5 @@
         public DbSet<Documents> Documents { get; set; }
         public DbSet<Payment> Payments { get; set; }
+        public DbSet<ProfessorSubjects> ProfessorSubjects { get; set; }
 
 
@@ -165,4 +166,28 @@
                 .HasForeignKey(es => es.Id)
                 .OnDelete(DeleteBehavior.Restrict);
+
+            // -------------------------
+            // ProfessorSubjects (many-to-many: Professor -> Semester -> Subject)
+            // -------------------------
+            modelBuilder.Entity<ProfessorSubjects>()
+                .HasKey(ps => new { ps.ProfessorId, ps.SemesterId, ps.SubjectId });
+
+            modelBuilder.Entity<ProfessorSubjects>()
+                .HasOne(ps => ps.Professor)
+                .WithMany()
+                .HasForeignKey(ps => ps.ProfessorId)
+                .OnDelete(DeleteBehavior.Cascade);
+
+            modelBuilder.Entity<ProfessorSubjects>()
+                .HasOne(ps => ps.Semester)
+                .WithMany()
+                .HasForeignKey(ps => ps.SemesterId)
+                .OnDelete(DeleteBehavior.Cascade);
+
+            modelBuilder.Entity<ProfessorSubjects>()
+                .HasOne(ps => ps.Subject)
+                .WithMany()
+                .HasForeignKey(ps => ps.SubjectId)
+                .OnDelete(DeleteBehavior.Cascade);
         }
 
