import { notFound } from "next/navigation";
import { prisma } from "@/lib/prisma";
import { ensureInvoiceNumber } from "@/lib/actions/invoice";
import InvoiceDocument from "@/components/InvoiceDocument";

export default async function AdminOrderInvoicePage({ params }: { params: Promise<{ id: string }> }) {
  const { id } = await params;

  const order = await prisma.order.findUnique({
    where: { id },
    include: { items: { include: { product: true, variant: true } } },
  });
  if (!order) notFound();

  const invoiceNumber = await ensureInvoiceNumber(id);
  const [company, tax] = await Promise.all([prisma.companyDetails.findFirst(), prisma.taxSettings.findFirst()]);

  return <InvoiceDocument order={order} invoiceNumber={invoiceNumber} company={company} tax={tax} />;
}
