2025-04-09 11:37:47 +00:00
|
|
|
import prisma from "@/lib/prisma";
|
|
|
|
|
|
|
|
type ThenArg<T> = T extends PromiseLike<infer U> ? U : T;
|
|
|
|
|
2025-04-09 12:24:57 +00:00
|
|
|
export async function getAllProblems() {
|
|
|
|
return await prisma.problem.findMany({
|
|
|
|
include: {
|
|
|
|
templates: true,
|
|
|
|
testcases: {
|
|
|
|
include: {
|
|
|
|
data: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
2025-04-09 11:37:47 +00:00
|
|
|
}
|
|
|
|
|
2025-04-09 12:24:57 +00:00
|
|
|
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>
|
|
|
|
>;
|