import { NextRequest, NextResponse } from 'next/server'; import { jwtVerify } from 'jose'; import { prisma } from '@/lib/prisma'; const JWT_SECRET = new TextEncoder().encode( process.env.JWT_SECRET || 'your-secret-key-at-least-32-chars-long' ); export async function PATCH(request: NextRequest) { const token = request.cookies.get('token')?.value; if (!token) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } try { const { payload } = await jwtVerify(token, JWT_SECRET); const userId = payload.userId as string; const body = await request.json(); const { accentColor } = body; if (accentColor !== undefined && typeof accentColor !== 'string') { return NextResponse.json({ error: 'Invalid accentColor' }, { status: 400 }); } const updateData: { accentColor?: string } = {}; if (accentColor !== undefined) { updateData.accentColor = accentColor; } const updatedUser = await prisma.user.update({ where: { id: userId }, data: updateData, select: { id: true, username: true, accentColor: true, }, }); return NextResponse.json(updatedUser, { status: 200 }); } catch (error) { console.error('Update user settings error:', error); return NextResponse.json({ error: 'Internal server error' }, { status: 500 }); } }