import { Head } from '@inertiajs/react';
import { ReportCardHeader } from '@/Components/ReportCard/ReportCardHeader';
import { StudentSummaryCard } from '@/Components/ReportCard/StudentSummaryCard';
import { ElementaryReportCard } from '@/Components/ReportCard/ElementaryReportCard';
import { MiddleSchoolReportCard } from '@/Components/ReportCard/MiddleSchoolReportCard';
import { HighSchoolReportCard } from '@/Components/ReportCard/HighSchoolReportCard';
import { DownloadPdfButton } from '@/Components/ReportCard/DownloadPdfButton';
import { buildReportCardModel, type ReportCardPageProps } from '@/lib/reportCard';

type Props = ReportCardPageProps & { selectedTerm: number | null; token: string };

/** نمای عمومی کارنامه از طریق لینک اشتراک‌گذاری — بدون ورود، فقط خواندنی. */
export default function PublicKarname(props: Props) {
  const { selectedTerm, token } = props;
  const model = buildReportCardModel(props, selectedTerm);

  if (!model) {
    return (
      <div className="rc-public-shell" dir="rtl">
        <Head title="کارنامه یافت نشد" />
        <div className="rc-public-empty">
          <i className="bi bi-file-earmark-x" />
          <p>کارنامه‌ای برای این لینک یافت نشد.</p>
        </div>
      </div>
    );
  }

  return (
    <div className="rc-public-shell" dir="rtl">
      <Head title={`کارنامه — ${model.student.fullName}`} />
      <div className="rc-public-inner page-stack">
        <ReportCardHeader
          schoolName={model.student.schoolName}
          schoolLogoUrl={model.student.schoolLogoUrl}
          academicYear={model.student.academicYear}
          action={<DownloadPdfButton href={`/karname/${token}/pdf`} />}
        />

        <StudentSummaryCard
          student={model.student}
          level={model.level}
          attendanceChips={model.level === 'elementary' ? model.attendance : undefined}
        />

        {model.level === 'elementary' && <ElementaryReportCard model={model} />}
        {model.level === 'middle' && <MiddleSchoolReportCard model={model} />}
        {model.level === 'high' && <HighSchoolReportCard model={model} />}

        <p className="rc-public-footer">
          این صفحه از طریق لینک اشتراک‌گذاری امن کارنامه باز شده و فقط جنبه‌ی مشاهده دارد &bull; دانشیار من
        </p>
      </div>
    </div>
  );
}
