import type { Metadata } from "next";
import { db } from "@/lib/db";
import AdminJournalsClient from "./AdminJournalsClient";

export const metadata: Metadata = { title: "Admin: Journals" };

export default async function AdminJournalsPage() {
  const [journals, categories, slides, publications, testimonials, subscribers, adminUser] = await Promise.all([
    db.journal.findMany({
      include: {
        category: true,
        author: { select: { name: true, email: true } },
      },
      orderBy: { createdAt: "desc" },
    }),
    db.journalCategory.findMany({ orderBy: { name: "asc" } }),
    db.journalSlide.findMany({ orderBy: { sortOrder: "asc" } }),
    db.publication.findMany({ orderBy: { sortOrder: "asc" } }),
    db.journalTestimonial.findMany({ orderBy: { createdAt: "desc" } }),
    db.journalSubscriber.findMany({ orderBy: { subscribedAt: "desc" } }),
    db.user.findFirst({ where: { role: "admin" } }),
  ]);

  return (
    <AdminJournalsClient
      journals={journals as never}
      categories={categories}
      slides={slides}
      publications={publications}
      testimonials={testimonials}
      subscribers={subscribers as never}
      adminUserId={adminUser?.id || ""}
    />
  );
}
