import { NextRequest, NextResponse } from 'next/server' import { auth } from '@/auth' import { getNoteHistory, restoreNoteVersion } from '@/app/actions/notes' export async function GET( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { const session = await auth() if (!session?.user?.id) { return NextResponse.json({ success: false, error: 'Unauthorized' }, { status: 401 }) } try { const { id } = await params const limitRaw = request.nextUrl.searchParams.get('limit') const limit = limitRaw ? Number.parseInt(limitRaw, 10) : 30 const entries = await getNoteHistory(id, Number.isNaN(limit) ? 30 : limit) return NextResponse.json({ success: true, data: entries }) } catch (error) { console.error('Error fetching note history:', error) return NextResponse.json({ success: false, error: 'Failed to fetch history' }, { status: 500 }) } } export async function POST( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { const session = await auth() if (!session?.user?.id) { return NextResponse.json({ success: false, error: 'Unauthorized' }, { status: 401 }) } try { const { id } = await params const body = await request.json() const historyEntryId = body?.historyEntryId if (!historyEntryId || typeof historyEntryId !== 'string') { return NextResponse.json({ success: false, error: 'historyEntryId is required' }, { status: 400 }) } const restoredNote = await restoreNoteVersion(id, historyEntryId) return NextResponse.json({ success: true, data: restoredNote }) } catch (error) { const message = error instanceof Error ? error.message : 'Failed to restore history version' console.error('Error restoring note history:', error) return NextResponse.json({ success: false, error: message }, { status: 500 }) } }