import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/db'; import { requireAuth } from '@/lib/auth/session'; async function getSettings() { let settings = await prisma.appSettings.findFirst(); if (!settings) { settings = await prisma.appSettings.create({ data: { votingOpen: true } }); } return settings; } export async function GET(request: NextRequest) { const authError = await requireAuth(request); if (authError) return authError; try { const settings = await getSettings(); return NextResponse.json(settings); } catch (error) { console.error('Error getting settings:', error); return NextResponse.json({ error: 'Internal server error' }, { status: 500 }); } } export async function PATCH(request: NextRequest) { const authError = await requireAuth(request); if (authError) return authError; try { const { votingOpen, directoryOrder } = await request.json(); const settings = await getSettings(); const updated = await prisma.appSettings.update({ where: { id: settings.id }, data: { ...(votingOpen !== undefined && { votingOpen }), ...(directoryOrder !== undefined && { directoryOrder }), } }); return NextResponse.json(updated); } catch (error) { console.error('Error updating settings:', error); return NextResponse.json({ error: 'Internal server error' }, { status: 500 }); } }