import { cookies } from 'next/headers' import { getIronSession } from 'iron-session' import { SessionData, sessionOptions } from '@/lib/session' import { prisma } from '@/lib/prisma' import { productAccessFilter } from '@/lib/product-access' import { ideaToDto } from '@/lib/idea-dto' import { IdeaList } from '@/components/ideas/idea-list' export const dynamic = 'force-dynamic' export default async function IdeasPage() { const session = await getIronSession(await cookies(), sessionOptions) // M12: idee is strikt user_id-only (geen productAccessFilter — Q8). const ideas = await prisma.idea.findMany({ where: { user_id: session.userId, archived: false }, orderBy: { created_at: 'desc' }, include: { product: { select: { id: true, name: true, repo_url: true } } }, take: 200, }) // Productenlijst voor de filter-dropdown + voor "Nieuw idee"-form. // Producten zijn product-scoped (kan team-shared zijn) — productAccessFilter // is hier dus wél juist. const products = await prisma.product.findMany({ where: { ...productAccessFilter(session.userId), archived: false }, orderBy: { name: 'asc' }, select: { id: true, name: true, repo_url: true }, }) return (

Ideeën

Lichtgewicht voorstellen die je via Grill Me en Make Plan tot een PBI laat groeien.

ideaToDto(i))} products={products} isDemo={session.isDemo ?? false} />
) }