refactor: tech debt batch 3 — type safety + assignment router split
All checks were successful
Build and Push Docker Image / build (push) Successful in 13m4s

#5 — Replaced 55x PrismaClient | any with proper Prisma types across 8 files
- Service files: PrismaClient | any → PrismaClient, tx: any → Prisma.TransactionClient
- Fixed 4 real bugs uncovered by typing:
  - mentor-workspace.ts: wrong FK fields (mentorAssignmentId → workspaceId, role → senderRole)
  - ai-shortlist.ts: untyped string passed to CompetitionCategory enum filter
  - result-lock.ts: unknown passed where Prisma.InputJsonValue required

#9 — Split assignment.ts (2,775 lines) into 6 focused files:
  - shared.ts (93 lines) — MOVABLE_EVAL_STATUSES, buildBatchNotifications, getCandidateJurors
  - assignment-crud.ts (473 lines) — 8 core CRUD procedures
  - assignment-suggestions.ts (880 lines) — AI suggestions + job runner
  - assignment-notifications.ts (138 lines) — 2 notification procedures
  - assignment-redistribution.ts (1,162 lines) — 8 reassign/transfer procedures
  - index.ts (15 lines) — barrel export with router merge, zero frontend changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-10 12:47:06 +01:00
parent 1c78ecf21d
commit 6b40fe7726
16 changed files with 2836 additions and 2851 deletions

View File

@@ -0,0 +1,15 @@
import { router } from '../../trpc'
import { reassignAfterCOI, reassignDroppedJurorAssignments } from '../../services/juror-reassignment'
import { assignmentCrudRouter } from './assignment-crud'
import { assignmentSuggestionsRouter } from './assignment-suggestions'
import { assignmentNotificationsRouter } from './assignment-notifications'
import { assignmentRedistributionRouter } from './assignment-redistribution'
export { reassignAfterCOI, reassignDroppedJurorAssignments }
export const assignmentRouter = router({
...assignmentCrudRouter._def.procedures,
...assignmentSuggestionsRouter._def.procedures,
...assignmentNotificationsRouter._def.procedures,
...assignmentRedistributionRouter._def.procedures,
})