import { auth } from "@/lib/auth";
import { prisma } from "@/lib/prisma";
import { MaterialesClient } from "./materiales-client";

async function getMateriales(empresaId: string) {
  const materiales = await prisma.material.findMany({
    where: { empresaId },
    include: {
      movimientos: {
        orderBy: { createdAt: "desc" },
        take: 5,
        include: {
          obra: { select: { nombre: true } },
        },
      },
    },
    orderBy: { nombre: "asc" },
  });

  const obras = await prisma.obra.findMany({
    where: { empresaId },
    select: { id: true, nombre: true },
  });

  const alertas = materiales.filter(
    (m) => m.activo && m.stockActual <= m.stockMinimo
  );

  return { materiales, obras, alertas };
}

export default async function MaterialesPage() {
  const session = await auth();

  if (!session?.user?.empresaId) {
    return <div>Error: No se encontro la empresa</div>;
  }

  const data = await getMateriales(session.user.empresaId);

  return <MaterialesClient data={data} />;
}
