import { NextRequest, NextResponse } from "next/server"; import { prisma } from "@/lib/prisma"; import { requireAuth } from "@/lib/auth"; // GET /api/groups/[id] — group details + member list export async function GET( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { try { const auth = await requireAuth(request); if (!auth) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } const { id } = await params; const group = await prisma.group.findUnique({ where: { id }, include: { owner: { select: { id: true, name: true, isPremium: true, isPro: true }, }, members: { include: { user: { select: { id: true, name: true, isPremium: true, isPro: true }, }, }, orderBy: { joinedAt: "asc" }, }, _count: { select: { members: true, threads: true }, }, }, }); if (!group) { return NextResponse.json({ error: "Group not found" }, { status: 404 }); } // Verify user is a member of this group const isMember = group.members.some((m) => m.userId === auth.userId); if (!isMember) { return NextResponse.json( { error: "You are not a member of this group" }, { status: 403 } ); } return NextResponse.json({ group }); } catch (error) { console.error("GET /api/groups/[id] error:", error); return NextResponse.json( { error: "Internal server error" }, { status: 500 } ); } }