From 5698a6b81f9927690fbb21139f21c290075fbe3f Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Wed, 9 Apr 2025 20:24:57 +0800 Subject: [PATCH] feat(types): add problem and testcase details types with prisma include --- src/types/prisma.ts | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/types/prisma.ts b/src/types/prisma.ts index fbd7b48..4227e41 100644 --- a/src/types/prisma.ts +++ b/src/types/prisma.ts @@ -2,9 +2,31 @@ import prisma from "@/lib/prisma"; type ThenArg = T extends PromiseLike ? U : T; -export async function getTestcaseWithData() { - const testcases = await prisma.testcase.findMany({ include: { data: true } }); - return testcases; +export async function getAllProblems() { + return await prisma.problem.findMany({ + include: { + templates: true, + testcases: { + include: { + data: true, + }, + }, + }, + }); } -export type TestcaseWithData = ThenArg>; +export type ProblemWithDetails = ThenArg< + ReturnType +>[number]; + +export async function getAllTestcases() { + return await prisma.testcase.findMany({ + include: { + data: true, + }, + }); +} + +export type TestcaseWithDetails = ThenArg< + ReturnType +>;