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];
|
|
|
|
|
2025-04-11 07:58:37 +00:00
|
|
|
export async function getAllProblemsWithTestcases() {
|
|
|
|
return await prisma.problem.findMany({
|
|
|
|
include: {
|
|
|
|
testcases: {
|
|
|
|
include: {
|
|
|
|
data: true,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export type ProblemWithTestcases = ThenArg<
|
|
|
|
ReturnType<typeof getAllProblemsWithTestcases>
|
|
|
|
>[number];
|
|
|
|
|
2025-04-09 12:24:57 +00:00
|
|
|
export async function getAllTestcases() {
|
|
|
|
return await prisma.testcase.findMany({
|
|
|
|
include: {
|
|
|
|
data: true,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
export type TestcaseWithDetails = ThenArg<
|
|
|
|
ReturnType<typeof getAllTestcases>
|
|
|
|
>;
|
2025-04-14 06:11:29 +00:00
|
|
|
|
|
|
|
export async function getAllSubmissionsWithTestcaseResults() {
|
|
|
|
return await prisma.submission.findMany({
|
|
|
|
include: {
|
|
|
|
testcaseResults: {
|
|
|
|
include: {
|
|
|
|
testcase: {
|
|
|
|
include: {
|
|
|
|
data: true,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
export type SubmissionWithTestcaseResult = ThenArg<
|
|
|
|
ReturnType<typeof getAllSubmissionsWithTestcaseResults>
|
|
|
|
>[number];
|
|
|
|
|
|
|
|
export async function getAllTestcaseResultWithTestcase() {
|
|
|
|
return await prisma.testcaseResult.findMany({
|
|
|
|
include:{
|
|
|
|
testcase:{
|
|
|
|
include:{
|
|
|
|
data:true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
|
|
|
|
export type TestcaseResultWithTestcase=ThenArg<
|
|
|
|
ReturnType<typeof getAllTestcaseResultWithTestcase>
|
|
|
|
>[number];
|