import { getServerSession } from "next-auth";
import { authOptions } from "@/lib/auth";
import { prisma } from "@/lib/prisma";
import { FardamentosAdminClient } from "./FardamentosAdminClient";

export const metadata = { title: "Fardamentos" };

export default async function FardamentosAdminPage() {
  const session = await getServerSession(authOptions);
  const unidadeId = (session?.user as any)?.unidadeId;

  const [fardamentosRaw, unidades] = await Promise.all([
    prisma.fardamento.findMany({
      where: { unidadeId },
      include: {
        tamanhos: { orderBy: { tamanho: "asc" } },
        unidade: { select: { nome: true } },
      },
      orderBy: [{ destaque: "desc" }, { nome: "asc" }],
    }),
    prisma.unidade.findMany({ where: { ativa: true }, select: { id: true, nome: true } }),
  ]);

  // MySQL armazena imagens como Json — normaliza para string[]
  const fardamentos = fardamentosRaw.map((f) => ({
    ...f,
    imagens: (f.imagens as string[]) ?? [],
  }));

  return (
    <FardamentosAdminClient
      fardamentosIniciais={fardamentos}
      unidades={unidades}
      unidadeIdPadrao={unidadeId || unidades[0]?.id || ""}
    />
  );
}
