import { requireAuth } from '~/server/utils/auth' import { prisma } from '~/server/utils/prisma' export default defineEventHandler(async (event) => { const user = requireAuth(event) const allGroups = await prisma.group.findMany({ where: { isPublic: true }, include: { members: { include: { user: { select: { id: true, username: true } } } }, _count: { select: { members: true, canvases: true } } }, orderBy: { createdAt: 'desc' } }) return { groups: allGroups.map(g => ({ id: g.id, name: g.name, description: g.description, isPublic: g.isPublic, ownerId: g.ownerId, createdAt: g.createdAt, updatedAt: g.updatedAt, memberCount: g._count.members, canvasCount: g._count.canvases, isMember: g.members.some(m => m.userId === user.id) })) } })