import { NextRequest, NextResponse } from 'next/server'; import { projectService } from '@/lib/prisma'; export async function GET(request: NextRequest) { try { // Get all projects with full data const projectsResult = await projectService.getAllProjects(); const projects = projectsResult.projects || projectsResult; // Format for export const exportData = { version: '1.0', exportDate: new Date().toISOString(), projects: projects.map(project => ({ id: project.id, title: project.title, description: project.description, content: project.content, tags: project.tags, category: project.category, featured: project.featured, github: project.github, live: project.live, published: project.published, imageUrl: project.imageUrl, difficulty: project.difficulty, timeToComplete: project.timeToComplete, technologies: project.technologies, challenges: project.challenges, lessonsLearned: project.lessonsLearned, futureImprovements: project.futureImprovements, demoVideo: project.demoVideo, screenshots: project.screenshots, colorScheme: project.colorScheme, accessibility: project.accessibility, performance: project.performance, analytics: project.analytics, createdAt: project.createdAt, updatedAt: project.updatedAt })) }; // Return as downloadable JSON file return new NextResponse(JSON.stringify(exportData, null, 2), { status: 200, headers: { 'Content-Type': 'application/json', 'Content-Disposition': `attachment; filename="portfolio-projects-${new Date().toISOString().split('T')[0]}.json"` } }); } catch (error) { console.error('Export error:', error); return NextResponse.json( { error: 'Failed to export projects' }, { status: 500 } ); } }