Index: iknow-api/Data/AppDbContext.cs
===================================================================
--- iknow-api/Data/AppDbContext.cs	(revision 70a9f6d6db7039b756db3476d3ae1155fd08d813)
+++ iknow-api/Data/AppDbContext.cs	(revision 4b35197f33eaeb2b932700e150e05058b7d4f366)
@@ -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);
         }
 
