import { NextRequest, NextResponse } from "next/server"; import prisma from "@/lib/prisma"; export async function GET( request: NextRequest, context: { params: { inviteCode: string } } ) { try { const { inviteCode } = await context.params; // Récupérer le groupe avec ses membres et leurs informations utilisateur const group = await prisma.group.findUnique({ where: { inviteCode }, include: { players: { include: { user: { select: { id: true, name: true, avatar: true, }, }, }, }, }, }); if (!group) { return NextResponse.json({ error: "Groupe non trouvé" }, { status: 404 }); } // Formater la réponse pour le frontend return NextResponse.json({ id: group.id, name: group.name, inviteCode: group.inviteCode, status: group.status, createdAt: group.createdAt, players: group.players.map((player) => ({ id: player.userId, name: player.user.name, avatar: player.user.avatar, isReady: player.isReady, })), }); } catch (error: any) { console.error("Erreur lors de la récupération du groupe:", error); return NextResponse.json( { error: "Erreur serveur", details: error.message, }, { status: 500 } ); } } export async function POST( request: NextRequest, context: { params: { inviteCode: string } } ) { try { const { inviteCode } = await context.params; // Mettre à jour le statut du groupe const updatedGroup = await prisma.group.update({ where: { inviteCode }, data: { status: "PLAYING" }, include: { players: { include: { user: { select: { id: true, name: true, }, }, }, }, }, }); // Formater la réponse pour le frontend return NextResponse.json({ ...updatedGroup, players: updatedGroup.players.map((player) => ({ id: player.userId, name: player.user.name, isReady: player.isReady, })), }); } catch (error) { console.error("Erreur lors du démarrage de la partie:", error); return NextResponse.json({ error: "Erreur serveur" }, { status: 500 }); } }