import { requireAuth } from '~/server/utils/auth' import { prisma } from '~/server/utils/prisma' export default defineEventHandler(async (event) => { const user = requireAuth(event) const userGroups = await prisma.groupMember.findMany({ where: { userId: user.id }, select: { groupId: true } }) const groupIds = userGroups.map(m => m.groupId) const canvasList = await prisma.canvas.findMany({ where: { OR: [ { ownerId: user.id }, { isPublic: true }, { groupId: { in: groupIds } } ] }, select: { id: true, name: true, ownerId: true, groupId: true, isPublic: true, createdAt: true, updatedAt: true, nodes: true }, orderBy: { updatedAt: 'desc' } }) return { canvases: canvasList.map(c => ({ ...c, nodeCount: Array.isArray(c.nodes) ? (c.nodes as any[]).length : 0, nodes: undefined })) } })