feat(types): add problem and testcase details types with prisma include

This commit is contained in:
cfngc4594 2025-04-09 20:24:57 +08:00
parent a02335b255
commit 5698a6b81f

View File

@ -2,9 +2,31 @@ import prisma from "@/lib/prisma";
type ThenArg<T> = T extends PromiseLike<infer U> ? U : T; type ThenArg<T> = T extends PromiseLike<infer U> ? U : T;
export async function getTestcaseWithData() { export async function getAllProblems() {
const testcases = await prisma.testcase.findMany({ include: { data: true } }); return await prisma.problem.findMany({
return testcases; include: {
templates: true,
testcases: {
include: {
data: true,
},
},
},
});
} }
export type TestcaseWithData = ThenArg<ReturnType<typeof getTestcaseWithData>>; export type ProblemWithDetails = ThenArg<
ReturnType<typeof getAllProblems>
>[number];
export async function getAllTestcases() {
return await prisma.testcase.findMany({
include: {
data: true,
},
});
}
export type TestcaseWithDetails = ThenArg<
ReturnType<typeof getAllTestcases>
>;