import { requireAccount } from "@/lib/auth";
import { prisma } from "@/lib/db";
import { BroadcastsClient } from "@/components/broadcasts/broadcasts-client";

export const dynamic = "force-dynamic";

export default async function BroadcastsPage() {
  const membership = await requireAccount();
  const accountId = membership.account.id;

  const [broadcasts, templates, tags] = await Promise.all([
    prisma.broadcast.findMany({
      where: { accountId },
      include: {
        template: { select: { id: true, name: true } },
        _count: { select: { recipients: true } },
      },
      orderBy: { createdAt: "desc" },
    }),
    prisma.messageTemplate.findMany({
      where: { accountId, metaStatus: "APPROVED" },
      orderBy: { name: "asc" },
    }),
    prisma.tag.findMany({
      where: { accountId },
      orderBy: { name: "asc" },
    }),
  ]);

  return <BroadcastsClient broadcasts={broadcasts} templates={templates} tags={tags} />;
}
