﻿import { NextResponse } from 'next/server';
import prisma from '@/lib/prisma';

export async function GET(request: Request) {
  try {
    const { searchParams } = new URL(request.url);
    const employeeId = searchParams.get('employeeId');
    
    const where = employeeId ? { employeeId } : {};
    
    const [workPlans, kpis, quarterlyTargets, ipis, pips] = await Promise.all([
      prisma.workPlan.findMany({ where, orderBy: { createdAt: 'desc' } }),
      prisma.kPI.findMany({ where, orderBy: { createdAt: 'desc' } }),
      prisma.quarterlyTarget.findMany({ where, orderBy: [{ year: 'desc' }, { quarter: 'asc' }] }),
      prisma.individualPerformanceIndicator.findMany({ where, orderBy: { createdAt: 'desc' } }),
      prisma.performanceImprovementPlan.findMany({ where, orderBy: { createdAt: 'desc' } })
    ]);
    
    const workPlansWithTasks = workPlans.map(wp => ({
      ...wp,
      tasks: wp.tasks ? JSON.parse(wp.tasks) : []
    }));
    
    const pipsWithAreas = pips.map(pip => ({
      ...pip,
      improvementAreas: pip.improvementAreas ? JSON.parse(pip.improvementAreas) : []
    }));
    
    return NextResponse.json({
      success: true,
      workPlans: workPlansWithTasks,
      kpis,
      quarterlyTargets,
      ipis,
      pips: pipsWithAreas
    });
  } catch (error) {
    console.error('Sync API Error:', error);
    return NextResponse.json({ error: 'Failed to fetch performance data' }, { status: 500 });
  }
}
