import { NextRequest, NextResponse } from 'next/server' import prisma from '@/lib/prisma' // Helper to parse JSON fields function parseNote(dbNote: any) { return { ...dbNote, checkItems: dbNote.checkItems ? JSON.parse(dbNote.checkItems) : null, labels: dbNote.labels ? JSON.parse(dbNote.labels) : null, } } // GET /api/notes/[id] - Get a single note export async function GET( request: NextRequest, { params }: { params: { id: string } } ) { try { const note = await prisma.note.findUnique({ where: { id: params.id } }) if (!note) { return NextResponse.json( { success: false, error: 'Note not found' }, { status: 404 } ) } return NextResponse.json({ success: true, data: parseNote(note) }) } catch (error) { console.error('GET /api/notes/[id] error:', error) return NextResponse.json( { success: false, error: 'Failed to fetch note' }, { status: 500 } ) } } // PUT /api/notes/[id] - Update a note export async function PUT( request: NextRequest, { params }: { params: { id: string } } ) { try { const body = await request.json() const updateData: any = { ...body } // Stringify JSON fields if they exist if ('checkItems' in body) { updateData.checkItems = body.checkItems ? JSON.stringify(body.checkItems) : null } if ('labels' in body) { updateData.labels = body.labels ? JSON.stringify(body.labels) : null } updateData.updatedAt = new Date() const note = await prisma.note.update({ where: { id: params.id }, data: updateData }) return NextResponse.json({ success: true, data: parseNote(note) }) } catch (error) { console.error('PUT /api/notes/[id] error:', error) return NextResponse.json( { success: false, error: 'Failed to update note' }, { status: 500 } ) } } // DELETE /api/notes/[id] - Delete a note export async function DELETE( request: NextRequest, { params }: { params: { id: string } } ) { try { await prisma.note.delete({ where: { id: params.id } }) return NextResponse.json({ success: true, message: 'Note deleted successfully' }) } catch (error) { console.error('DELETE /api/notes/[id] error:', error) return NextResponse.json( { success: false, error: 'Failed to delete note' }, { status: 500 } ) } }