import { LearningAssistant } from "@/components/ai/learning-assistant";
import { requireStudent } from "@/lib/auth/session";
import { isAiConfigured } from "@/lib/ai/provider";
import { prisma } from "@/lib/db/prisma";
import { StudentHeader } from "@/components/student/student-header";

export const dynamic = "force-dynamic";

export default async function AiAssistantPage({ searchParams }: { searchParams: Promise<{ materi?: string }> }) {
  const session = await requireStudent();
  const query = await searchParams;
  const [student, unread] = await Promise.all([prisma.student.findUnique({ where: { userId: session.user.id }, select: { name: true, classId: true, class: { select: { name: true } } } }), prisma.notification.count({ where: { userId: session.user.id, readAt: null } })]);
  const clickedMaterial = query.materi && student ? await prisma.material.findFirst({ where: { slug: query.materi, status: "PUBLISHED", OR: [{ visibility: "PUBLIC" }, { visibility: "STUDENT_ONLY", classId: student.classId }] }, select: { id: true, title: true } }) : null;
  const activeProgress = !clickedMaterial ? await prisma.materialProgress.findFirst({ where: { userId: session.user.id, status: "IN_PROGRESS", material: { status: "PUBLISHED" } }, orderBy: { updatedAt: "desc" }, select: { material: { select: { id: true, title: true } } } }) : null;
  const material = clickedMaterial ?? activeProgress?.material ?? null;
  return <><StudentHeader name={student?.name ?? session.user.name} className={student?.class.name} unread={unread}/><main className="mx-auto min-h-svh max-w-4xl px-5 py-12"><p className="text-sm font-bold text-emerald-600">Portal Siswa</p><h1 className="mt-2 text-4xl font-black">AI Learning Assistant</h1><p className="mt-3 max-w-2xl text-slate-500">Jawaban menggunakan materi WEBKU sebagai konteks. Tetap periksa sumber materi dan diskusikan dengan guru jika ada keraguan.</p><LearningAssistant configured={isAiConfigured()} material={material}/></main></>;
}
