import Link from "next/link";
import { hasModuleAccess } from "@/lib/auth/module-access";
import { StrategicDiagnosticWizard } from "@/components/app/strategic-diagnostic-wizard";
import { PageShell } from "@/components/app/page-shell";
import { Button } from "@/components/ui/button";
import { Card, CardContent, CardHeader } from "@/components/ui/card";
import { requireOnboardedUser } from "@/lib/auth/user";
import { getStrategicDiagnosticSnapshot } from "@/lib/strategic-diagnostic/server";

export default async function StrategicDiagnosticPage() {
  const user = await requireOnboardedUser();
  const hasPaidModulesAccess = await hasModuleAccess(user, 2);

  if (!hasPaidModulesAccess) {
    return (
      <PageShell
        title="Modulo 2: Diagnostico Estrategico"
        description="Este modulo esta protegido por suscripcion de pago."
        action={<span className="rounded-full border border-[#d5ddec] bg-[#edf2fb] px-4 py-1 text-sm font-semibold text-[#5a6a87]">Bloqueado</span>}
      >
        <Card>
          <CardHeader>
            <h2 className="text-lg font-semibold text-[#1f2a40]">Acceso restringido</h2>
          </CardHeader>
          <CardContent className="space-y-3">
            <p className="text-sm text-[#64718a]">
              El Modulo 2 forma parte de la ruta premium. Tu cuenta actual puede completar el Diagnostico (Modulo 1) y ver los planes en la seccion Modulos.
            </p>
            <div className="flex flex-wrap gap-2">
              <Link href="/dashboard#modulos">
                <Button>Ver modulos y planes</Button>
              </Link>
              <Link href="/diagnostic">
                <Button variant="secondary">Ir a diagnostico</Button>
              </Link>
            </div>
          </CardContent>
        </Card>
      </PageShell>
    );
  }

  const snapshot = await getStrategicDiagnosticSnapshot(user.id);

  if (!snapshot) {
    return (
      <PageShell title="Modulo 2: Diagnostico Estrategico" description="Perfil competitivo para licitaciones publicas.">
        <Card>
          <CardHeader>
            <h2 className="text-lg font-semibold text-[#1f2a40]">No se encontro perfil organizacional</h2>
          </CardHeader>
          <CardContent className="space-y-3">
            <p className="text-sm text-[#64718a]">Completa primero tu onboarding para habilitar este modulo.</p>
            <Link href="/onboarding">
              <Button>Ir a onboarding</Button>
            </Link>
          </CardContent>
        </Card>
      </PageShell>
    );
  }

  return (
    <PageShell
      title="Modulo 2: Diagnostico Estrategico"
      description="Perfil competitivo para licitaciones publicas"
      action={<span className="rounded-full bg-[#0f2a5f] px-4 py-1 text-sm font-semibold text-white">Plan Activo</span>}
      className="space-y-6"
    >
      <StrategicDiagnosticWizard
        initialData={snapshot.data}
        initialScores={snapshot.scores}
        initialEvidenceBySection={snapshot.evidenceBySection}
        initialCompletedAt={snapshot.completedAt}
      />
    </PageShell>
  );
}
