import { notFound } from "next/navigation";
import {
  cachedGetExamAttemptSections,
  cachedGetSectionQuestions,
} from "@/lib/api/exams";
import SubmitConfirmationContent from "@/components/pages/exam/submit/content";
import { checkExamGuard, PageType } from "@/components/exam/exam-guard";
import QuestionLayout from "@/components/exam/question-layout";

export default async function ExamSubmitPage(props: {
  params: Promise<{ lang?: string; exam_id: string }>;
}) {
  const params = await props.params;
  const { examId, exam, latestAttempt } = await checkExamGuard(
    params,
    PageType.SUBMIT
  );

  if (!latestAttempt) {
    notFound();
  }

  const sections = await cachedGetExamAttemptSections(latestAttempt.id);
  if (!sections) {
    notFound();
  }

  const questionSection = sections.find((s) => s.section_type === 1);

  if (!questionSection || questionSection.status !== 1) {
    notFound();
  }

  const summaries = await cachedGetSectionQuestions(
    latestAttempt.id,
    questionSection.section_id
  );

  if (!summaries) {
    notFound();
  }

  return (
    <QuestionLayout exam={exam}>
      <div className="animate-fade-in max-w-2xl mx-auto">
        <SubmitConfirmationContent
          examId={examId}
          examAttemptId={latestAttempt.id}
          sectionId={questionSection.section_id}
          summaries={summaries}
        />
      </div>
    </QuestionLayout>
  );
}
