import Link from "next/link"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import prisma from "@/lib/prisma"; import { auth } from "@/lib/auth"; import { getDifficultyColorClass } from "@/lib/utils"; import { CircleCheckBigIcon, CircleDotIcon } from "lucide-react"; export default async function ProblemsetPage() { const problems = await prisma.problem.findMany({ where: { published: true }, orderBy: { id: "asc" }, select: { id: true, title: true, difficulty: true }, }); const session = await auth(); const userId = session?.user?.id; const submissions = userId ? await prisma.submission.findMany({ where: { userId }, select: { problemId: true, status: true }, }) : []; const completedProblems = new Set(submissions.filter(s => s.status === "AC").map(s => s.problemId)); const attemptedProblems = new Set(submissions.filter(s => s.status !== "AC").map(s => s.problemId)); return (