feat(final-docs): applicant.getFinalDocumentStatus procedure

This commit is contained in:
Matt
2026-06-09 15:17:47 +02:00
parent c53ec23109
commit 16e0a08f16
2 changed files with 53 additions and 0 deletions

View File

@@ -9,6 +9,7 @@ import { sendStyledNotificationEmail, sendTeamMemberInviteEmail } from '@/lib/em
import { logAudit } from '@/server/utils/audit'
import { createNotification } from '../services/in-app-notification'
import { checkRequirementsAndTransition, triggerInProgressOnActivity, transitionProject, isTerminalState } from '../services/round-engine'
import { getFinalDocumentStatusForProject } from '../services/final-documents'
import { EvaluationConfigSchema, MentoringConfigSchema } from '@/types/competition-configs'
import type { PrismaClient, Prisma, RoundType } from '@prisma/client'
@@ -1521,6 +1522,22 @@ export const applicantRouter = router({
}
}),
/** Grand-final document status for the caller's project (banner + mentor panel). */
getFinalDocumentStatus: protectedProcedure.query(async ({ ctx }) => {
const project = await ctx.prisma.project.findFirst({
where: {
OR: [
{ submittedByUserId: ctx.user.id },
{ teamMembers: { some: { userId: ctx.user.id } } },
],
},
orderBy: { createdAt: 'desc' },
select: { id: true },
})
if (!project) return null
return getFinalDocumentStatusForProject(ctx.prisma, project.id)
}),
/**
* Lightweight flags for conditional nav rendering.
*/