feat(tests): общие тесты с автором, в истории только результаты ученика (для всех ролей)

Made-with: Cursor
This commit is contained in:
Константин Лебединский
2026-04-01 23:09:17 +05:00
parent d8805bd4ed
commit 35f27a6eb7
4 changed files with 79 additions and 19 deletions
@@ -0,0 +1,26 @@
-- Общие тесты в контексте пары: studentId = id назначенного ученика; authorId = кто создал.
-- Результаты (TestResult) привязаны к ученику (studentId).
ALTER TABLE "Test" ADD COLUMN "authorId" INTEGER;
UPDATE "Test" SET "authorId" = "studentId";
UPDATE "Test" AS t
SET "studentId" = ta."studentId"
FROM "TutorAssignment" AS ta
WHERE t."authorId" = ta."tutorId";
ALTER TABLE "Test" ALTER COLUMN "authorId" SET NOT NULL;
ALTER TABLE "Test" ADD CONSTRAINT "Test_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE "TestResult" ADD COLUMN "studentId" INTEGER;
UPDATE "TestResult" AS tr
SET "studentId" = t."studentId"
FROM "Test" AS t
WHERE tr."testId" = t."id";
ALTER TABLE "TestResult" ALTER COLUMN "studentId" SET NOT NULL;
ALTER TABLE "TestResult" ADD CONSTRAINT "TestResult_studentId_fkey" FOREIGN KEY ("studentId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;