import { canvases, userGroups } from '~/server/utils/db' export default defineEventHandler(async (event) => { const userId = getRouterParam(event, 'id') if (!userId) { throw createError({ statusCode: 400, message: 'User ID is required' }) } // Get user's group memberships const userGroupIds = Array.from(userGroups.values()) .filter(membership => membership.userId === userId) .map(membership => membership.groupId) // Get canvases owned by user or shared with user's groups const userCanvases = Array.from(canvases.values()).filter(canvas => { // User's own canvases if (canvas.ownerId === userId) return true // Group canvases if (canvas.groupId && userGroupIds.includes(canvas.groupId)) return true return false }) const canvasList = userCanvases.map(canvas => ({ id: canvas.id, name: canvas.name, ownerId: canvas.ownerId, createdAt: canvas.createdAt, updatedAt: canvas.updatedAt, isPublic: canvas.isPublic, groupId: canvas.groupId, nodeCount: canvas.nodes.length })) return { canvases: canvasList } })