import { NextResponse } from 'next/server'; import { revalidatePath } from 'next/cache'; import { getCards, saveCards } from '@/lib/db'; import { Card } from '@/types'; export const dynamic = 'force-dynamic'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); const portalId = searchParams.get('portalId'); const cards = await getCards(portalId || undefined); return NextResponse.json(cards); } export async function POST(request: Request) { try { const incomingCard: Card = await request.json(); const cards = await getCards(); const existingIndex = cards.findIndex(c => c.id === incomingCard.id); if (existingIndex >= 0) { cards[existingIndex] = incomingCard; } else { cards.push(incomingCard); } await saveCards(cards); revalidatePath('/'); // Force public portal to update instantly return NextResponse.json(incomingCard, { status: 200 }); } catch (error) { return NextResponse.json({ error: 'Failed to save card' }, { status: 500 }); } } // NEW: Bulk update for saving card reordering export async function PUT(request: Request) { try { const updatedCards: Card[] = await request.json(); await saveCards(updatedCards); revalidatePath('/'); // Force public portal to update instantly return NextResponse.json({ success: true }, { status: 200 }); } catch (error) { return NextResponse.json({ error: 'Failed to reorder cards' }, { status: 500 }); } } export async function DELETE(request: Request) { try { const { searchParams } = new URL(request.url); const id = searchParams.get('id'); if (!id) return NextResponse.json({ error: 'Card ID required' }, { status: 400 }); const cards = await getCards(); const filteredCards = cards.filter(c => c.id !== id); await saveCards(filteredCards); revalidatePath('/'); // Force public portal to update instantly return NextResponse.json({ success: true }, { status: 200 }); } catch (error) { return NextResponse.json({ error: 'Failed to delete card' }, { status: 500 }); } }