From 36560a18374f4cdf825eb7dc0b351608b87ab47f Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 1 Mar 2026 14:31:08 +0100 Subject: [PATCH] fix: assign project to round on creation (create ProjectRoundState) - Add optional roundId field to project.create mutation input schema - After project creation, update project.roundId FK and create a ProjectRoundState record (state: PENDING) when roundId is supplied - Pass selectedRoundId from the new-project form to createProject.mutate() Co-Authored-By: Claude Opus 4.6 --- src/app/(admin)/admin/projects/new/page.tsx | 1 + src/server/routers/project.ts | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/app/(admin)/admin/projects/new/page.tsx b/src/app/(admin)/admin/projects/new/page.tsx index ede1105..a051c28 100644 --- a/src/app/(admin)/admin/projects/new/page.tsx +++ b/src/app/(admin)/admin/projects/new/page.tsx @@ -216,6 +216,7 @@ function NewProjectPageContent() { createProject.mutate({ programId: selectedProgramId, + roundId: selectedRoundId || undefined, title: title.trim(), teamName: teamName.trim() || undefined, description: description.trim() || undefined, diff --git a/src/server/routers/project.ts b/src/server/routers/project.ts index 47d0081..9d0c54c 100644 --- a/src/server/routers/project.ts +++ b/src/server/routers/project.ts @@ -484,6 +484,7 @@ export const projectRouter = router({ .input( z.object({ programId: z.string(), + roundId: z.string().optional(), title: z.string().min(1).max(500), teamName: z.string().optional(), description: z.string().optional(), @@ -553,6 +554,20 @@ export const projectRouter = router({ }, }) + if (input.roundId) { + await tx.project.update({ + where: { id: created.id }, + data: { roundId: input.roundId }, + }) + await tx.projectRoundState.create({ + data: { + projectId: created.id, + roundId: input.roundId, + state: 'PENDING', + }, + }) + } + // Create team members if provided const inviteList: { userId: string; email: string; name: string }[] = [] if (teamMembersInput && teamMembersInput.length > 0) {