import { PostForm } from "@/admin/components/PostForm";
import { AdminAutoLayout } from "@/admin/layout/AdminAutoLayout";
import { requirePermission } from "@/lib/auth";
import { prisma } from "@/lib/prisma";

type NewPostPageProps = {
  searchParams: Promise<{ error?: string }>;
};

const errorMessages: Record<string, string> = {
  required: "Please enter a title, excerpt, and content. Excerpt and content must be at least 10 characters."
};

export default async function NewPostPage({ searchParams }: NewPostPageProps) {
  await requirePermission("posts");
  const params = await searchParams;
  const categories = await prisma.category.findMany({ orderBy: { name: "asc" } });

  return (
    <AdminAutoLayout
      description="Compose a new blog article with structured fields and SEO options."
      error={params.error}
      errorMessages={errorMessages}
      eyebrow="Editorial"
      title="New article"
      width="wide"
    >
      <PostForm categories={categories} />
    </AdminAutoLayout>
  );
}
