import { asc, eq } from "drizzle-orm"; import { notFound, redirect } from "next/navigation"; import { CatalogItemsBc, CatalogPagesBc, db } from "@/lib/db"; import { canAccess, getAdminContext, PERMS } from "@/lib/permissions"; import { BcPageDetail } from "../bc-manager"; export default async function BcPageDetailPage({ params: paramsPromise, }: { params: Promise<{ locale: string; id: string }>; }) { const { id: idStr } = await paramsPromise; const id = parseInt(idStr, 10); if (Number.isNaN(id)) notFound(); const { session, permissions } = await getAdminContext(); if (!canAccess(permissions, PERMS.CATALOG_VIEW, session.user.rank)) { redirect("/admin"); } const canEdit = canAccess(permissions, PERMS.CATALOG_EDIT, session.user.rank); const [bcPage] = await db .select() .from(CatalogPagesBc) .where(eq(CatalogPagesBc.id, id)) .limit(1); if (!bcPage) notFound(); const bcItems = await db .select() .from(CatalogItemsBc) .where(eq(CatalogItemsBc.pageId, id)) .orderBy(asc(CatalogItemsBc.orderNumber)); return ( ({ id: i.id, pageId: i.pageId, itemIds: i.itemIds, catalogName: i.catalogName, orderNumber: i.orderNumber, extradata: i.extradata, }))} canEdit={canEdit} /> ); }