import { prisma } from "@/lib/prisma"; import { notFound } from "next/navigation"; import Link from "next/link"; interface Props { params: Promise<{ quizId: string }>; } export default async function AdminQuizAttemptsPage({ params }: Props) { const { quizId } = await params; const quiz = await prisma.quiz.findUnique({ where: { id: quizId }, include: { questions: { orderBy: { order: "asc" } }, attempts: { orderBy: { completedAt: "desc" } }, lesson: { select: { title: true, module: { select: { course: { select: { title: true } }, }, }, }, }, }, }); if (!quiz) notFound(); const userIds = [...new Set(quiz.attempts.map((a) => a.userId))]; const users = await prisma.user.findMany({ where: { id: { in: userIds } }, select: { id: true, name: true, email: true }, }); const userMap = Object.fromEntries(users.map((u) => [u.id, u])); return (
{quiz.lesson.module.course.title} · {quiz.questions.length} вопросов · {quiz.attempts.length} ответов
Ответов пока нет
) : ({user?.name ?? "—"}
{user?.email ?? attempt.userId}
{idx + 1}. {q.text}
{answers[q.id]?.trim() || —}