import Link from 'next/link'; import { prisma } from '@/lib/prisma'; import AdminNav from '@/components/AdminNav'; export default async function DesignsPage() { let designs = []; try { designs = await prisma.designApproval.findMany({ select: { id: true, customerName: true, customerEmail: true, designPreviewUrl: true, status: true, createdAt: true, productId: true, }, orderBy: { createdAt: 'desc' }, }); // Fetch products separately to avoid relation issues const productIds = [...new Set(designs.map(d => d.productId))]; const products = await prisma.product.findMany({ where: { id: { in: productIds } }, select: { id: true, name: true }, }); const productMap = Object.fromEntries(products.map(p => [p.id, p])); // Add product to each design designs = designs.map(d => ({ ...d, product: productMap[d.productId], messages: [], })) as any; } catch (err) { console.error('Error fetching designs:', err); } const pending = designs.filter((d) => d.status === 'PENDING'); const approved = designs.filter((d) => d.status === 'APPROVED'); const rejected = designs.filter((d) => d.status === 'REJECTED'); const DesignList = ({ items, status }: { items: typeof designs; status: string }) => (
No designs.
) : ({d.customerName || d.customerEmail}
{last ? ( <> {last.sender === 'ADMIN' ? 'You: ' : ''} {last.body} > ) : ( 'No messages yet' )}