import { NextRequest, NextResponse } from 'next/server' import prisma from '@/lib/prisma' import { auth } from '@/auth' import { z } from 'zod' const positionSchema = z.object({ ideaId: z.string().min(1), positionX: z.number(), positionY: z.number(), }) export async function POST( request: NextRequest, { params }: { params: Promise<{ sessionId: string }> } ) { const session = await auth() if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } try { const { sessionId } = await params const body = await request.json() const { ideaId, positionX, positionY } = positionSchema.parse(body) const brainstormSession = await prisma.brainstormSession.findFirst({ where: { id: sessionId, userId: session.user.id }, }) if (!brainstormSession) { return NextResponse.json({ error: 'Session not found' }, { status: 404 }) } await prisma.brainstormIdea.update({ where: { id: ideaId }, data: { positionX, positionY }, }) return NextResponse.json({ success: true }) } catch (error: any) { if (error instanceof z.ZodError) { return NextResponse.json({ error: error.issues }, { status: 400 }) } console.error('Error updating position:', error) return NextResponse.json( { error: error.message || 'Failed to update position' }, { status: 500 } ) } }