import prisma from "@/lib/prisma";
import { getSessionUser } from "@/lib/auth";
import { PageHeader } from "@/components/layout/PageHeader";
import TeacherGradebookClient from "./TeacherGradebookClient";

export default async function TeacherGradebookPage({
  searchParams,
}: {
  searchParams: Promise<{ tsId?: string }>;
}) {
  const { tsId } = await searchParams;
  const user = await getSessionUser();
  if (!user || !user.teacherId) return null;

  const teacherSubjects = await prisma.teacherSubject.findMany({
    where: { teacherId: user.teacherId },
    include: {
      subject: true,
      class: {
        include: {
          members: {
            include: { student: true },
            orderBy: { student: { nis: "asc" } },
          },
        },
      },
      gradeWeights: true,
      grades: {
        include: { student: true },
      },
    },
  });

  return (
    <div className="space-y-6">
      <PageHeader
        title="Buku Nilai (Gradebook)"
        description="Atur bobot kategori penilaian dinamis, input nilai siswa, kalkulasi nilai akhir otomatis, dan ekspor laporan."
        breadcrumbs={[
          { label: "Dashboard", href: "/teacher/dashboard" },
          { label: "Buku Nilai" },
        ]}
      />

      <TeacherGradebookClient
        teacherSubjects={teacherSubjects}
        defaultTsId={tsId}
      />
    </div>
  );
}
