import type { Metadata } from "next";
import RodapeDoHelp from "../rodape";
import Voltar from "../voltar";
import Image from "next/image";
import Link from "next/link";
import { notFound } from "next/navigation";
import { DESENHOS, ROTULO_DO_NIVEL, leitor } from "@/lib/help";

/**
 * O índice de uma seção: todos os artigos daquele módulo.
 *
 * Serve para quem sabe o módulo mas não o artigo — o caso de quem travou numa
 * tela e veio pelo nome dela.
 */

export const revalidate = 60;

type Props = { params: Promise<{ secao: string }> };

async function buscar(slug: string) {
  const db = leitor();
  const { data: secao } = await db
    .from("help_sections")
    .select("id,slug,title,description,icon,color")
    .eq("slug", slug)
    .eq("active", true)
    .maybeSingle();
  if (!secao) return null;

  const { data: artigos } = await db
    .from("help_articles")
    .select("id,slug,title,subtitle,level,position,updated_at")
    .eq("section_id", secao.id)
    .eq("status", "published")
    .order("position", { ascending: true });

  return { secao, artigos: artigos ?? [] };
}

export async function generateMetadata({ params }: Props): Promise<Metadata> {
  const { secao } = await params;
  const achado = await buscar(secao);
  if (!achado) return { title: "Seção não encontrada" };
  return {
    title: `${achado.secao.title} · Centro de aprendizado`,
    description: achado.secao.description || undefined,
  };
}

export default async function PaginaDaSecao({ params }: Props) {
  const { secao: slug } = await params;
  const achado = await buscar(slug);
  if (!achado) notFound();

  const { secao, artigos } = achado;

  return (
    <main className="hl">
      <div className="hl-barra hl-grao">
        <div className="hl-topo">
          <Link className="hl-marca" href="/aprender">
            <Image src="/brand-logo.svg" alt="Ktalogu" width={112} height={21} priority style={{ height: 21, width: "auto" }} />
            <span className="hl-selo">Aprender</span>
          </Link>
          <div className="hl-topo-fim">
            <a className="hl-btn hl-btn-marca" href="https://admin.ktalogu.com.br" style={{ height: 38, padding: "0 15px", fontSize: 13.5 }}>
              Abrir o sistema
            </a>
          </div>
        </div>
      </div>

      <section className="hl-secao" style={{ paddingTop: 44 }}>
        <nav className="hl-migalha">
          <Voltar destino="/aprender" rotulo="Centro de aprendizado" />
          <Link href="/aprender">Centro de aprendizado</Link>
          <span>/</span>
          <span style={{ color: "var(--tinta)" }}>{secao.title}</span>
        </nav>

        <div style={{ display: "flex", alignItems: "center", gap: 18, marginTop: 22 }}>
          <span className="hl-marca-secao" style={{ background: `linear-gradient(135deg, ${secao.color}, ${secao.color}bb)`, width: 54, height: 54, borderRadius: 15 }}>
            <svg width="26" height="26" viewBox="0 0 24 24" fill="none" aria-hidden="true">
              <path d={DESENHOS[secao.icon] ?? DESENHOS.livro} stroke="#fff" strokeWidth="2" strokeLinejoin="round" strokeLinecap="round" />
            </svg>
          </span>
          <div>
            <h2 style={{ fontFamily: "var(--fonte-titulo)", fontSize: 38, fontWeight: 700, letterSpacing: "-0.038em", margin: 0 }}>
              {secao.title}
            </h2>
            {secao.description ? (
              <p style={{ margin: "7px 0 0", fontSize: 15.5, color: "var(--tinta-2)", maxWidth: "56ch" }}>{secao.description}</p>
            ) : null}
          </div>
        </div>

        {artigos.length === 0 ? (
          <p style={{ marginTop: 34, color: "var(--tinta-3)" }}>Os artigos desta seção estão a caminho.</p>
        ) : (
          <div className="hl-grade" style={{ marginTop: 34 }}>
            {artigos.map((a) => (
              <Link key={a.id} className="hl-modulo" href={`/aprender/${secao.slug}/${a.slug}`}>
                <span className="hl-chapa" style={{ color: "var(--roxo)" }}>
                  {ROTULO_DO_NIVEL[a.level] ?? "Começando"}
                </span>
                <h3 style={{ marginTop: 10 }}>{a.title}</h3>
                <p>{a.subtitle || ""}</p>
                <span className="hl-modulo-pe">
                  <span className="hl-chapa">Ler</span>
                  <svg className="hl-seta" width="18" height="18" viewBox="0 0 24 24" fill="none">
                    <path d="M5 12h13M13 6l6 6-6 6" stroke="#16112b" strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round" />
                  </svg>
                </span>
              </Link>
            ))}
          </div>
        )}
      </section>

      <RodapeDoHelp />
    </main>
  );
}
