import { NextResponse } from 'next/server'; import prisma from '@/lib/prisma'; import { LABEL_COLORS } from '@/lib/types'; import { auth } from '@/auth'; export const dynamic = 'force-dynamic'; export async function GET() { try { const session = await auth() if (!session?.user?.id || (session.user as any).role !== 'ADMIN') { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } const labels = await prisma.label.findMany(); const colors = Object.keys(LABEL_COLORS).filter(c => c !== 'gray'); // Exclude gray to force colors const updates = labels.map((label: any) => { const randomColor = colors[Math.floor(Math.random() * colors.length)]; return prisma.label.update({ where: { id: label.id }, data: { color: randomColor } }); }); await prisma.$transaction(updates); return NextResponse.json({ success: true, updated: updates.length, message: "All labels have been assigned a random non-gray color." }); } catch (error) { return NextResponse.json({ error: String(error) }, { status: 500 }); } }