import { requireAuth } from '~/server/utils/auth' import { prisma } from '~/server/utils/prisma' export default defineEventHandler(async (event) => { const user = requireAuth(event) const groupId = getRouterParam(event, 'id')! const group = await prisma.group.findUnique({ where: { id: groupId } }) if (!group) throw createError({ statusCode: 404, message: 'Group not found' }) if (!group.isPublic) throw createError({ statusCode: 403, message: 'Group is private' }) const existing = await prisma.groupMember.findUnique({ where: { userId_groupId: { userId: user.id, groupId } } }) if (existing) return { message: 'Already a member' } await prisma.groupMember.create({ data: { userId: user.id, groupId, role: 'member' } }) return { success: true, message: `Joined group "${group.name}"` } })