import { eq } from "drizzle-orm";
import { getDb } from "../../../../db";
import { applications } from "../../../../db/schema";
import { ApplicationStatus, safeJsonArray, statusMeta } from "../../../../lib/workflow";
import { requireChatGPTUser } from "../../../chatgpt-auth";
import { PrintButton } from "./PrintButton";

export const dynamic = "force-dynamic";

export default async function CandidateReportPage({ params }: { params: Promise<{ reference: string }> }) {
  const { reference } = await params;
  const user = await requireChatGPTUser(`/candidate/report/${reference}`);
  const [application] = await getDb().select().from(applications).where(eq(applications.reference, reference)).limit(1);
  if (!application || application.email !== user.email.toLowerCase()) {
    return <main className="report-page" dir="rtl"><div className="report-sheet"><h1>التقرير غير متوفر لهذا الحساب</h1><a href="/candidate">العودة لفضاء المترشح</a></div></main>;
  }
  const strengths = safeJsonArray(application.eligibilityStrengths);
  const missing = safeJsonArray(application.eligibilityMissing);
  const meta = statusMeta[application.status as ApplicationStatus] ?? statusMeta.new;
  return (
    <main className="report-page" dir="rtl">
      <div className="report-toolbar"><a href="/candidate">← فضاء المترشح</a><PrintButton /></div>
      <article className="report-sheet">
        <header><div><span>C+</span><b>Compétences+</b><small>Conseil • Formation • Accompagnement</small></div><div><small>تقرير توجيهي شخصي</small><strong>{application.reference}</strong></div></header>
        <section className="report-intro"><small>VAE Navigator</small><h1>{application.eligibilityTitle || "تقرير الدراسة الأولية"}</h1><p>{application.eligibilitySummary}</p></section>
        <section className="report-score-row"><div className="report-score"><strong>{application.eligibilityScore || "—"}%</strong><span>مؤشر توجيهي</span></div><dl><div><dt>المترشح</dt><dd>{application.fullName}</dd></div><div><dt>المجال</dt><dd>{application.professionalField}</dd></div><div><dt>الخبرة</dt><dd>{application.experienceLabel}</dd></div><div><dt>الهدف</dt><dd>{application.targetLabel}</dd></div></dl></section>
        <section className="report-recommendation"><small>التوصية الأولية</small><h2>{application.eligibilityRecommendation || "تشخيص الملف والوثائق مع مستشار قبل تثبيت المسار النهائي."}</h2></section>
        <section className="report-columns"><div><h3>نقاط القوة</h3>{strengths.length ? strengths.map((item) => <p key={item}>✓ {item}</p>) : <p>تُحدد بعد دراسة الوثائق.</p>}</div><div><h3>ما يحتاج الاستكمال</h3>{missing.length ? missing.map((item) => <p key={item}>○ {item}</p>) : <p>لا توجد عناصر محددة في المحاكاة.</p>}</div></section>
        <section className="report-status"><div><small>حالة الملف</small><b>{meta.label}</b></div><div><small>نسبة التقدم</small><b>{meta.progress}%</b></div><div><small>الخطوة المقبلة</small><b>{application.nextAction}</b></div></section>
        <footer><p>هذه قراءة توجيهية وليست قبولاً أو ضماناً للحصول على دبلوم. القرار النهائي مرتبط بدراسة الوثائق ومتطلبات الجهة المختصة.</p><span>competences.plus30@gmail.com • +212 6 68 21 73 13</span></footer>
      </article>
    </main>
  );
}
