import prisma from "@/lib/prisma"; type ThenArg = T extends PromiseLike ? U : T; export async function getAllProblems() { return await prisma.problem.findMany({ include: { templates: true, testcases: { include: { data: true, }, }, }, }); } export type ProblemWithDetails = ThenArg< ReturnType >[number]; export async function getAllProblemsWithTestcases() { return await prisma.problem.findMany({ include: { testcases: { include: { data: true, }, }, }, }); } export type ProblemWithTestcases = ThenArg< ReturnType >[number]; export async function getAllTestcases() { return await prisma.testcase.findMany({ include: { data: true, }, }); } export type TestcaseWithDetails = ThenArg< ReturnType >;