﻿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 ipis = await prisma.individualPerformanceIndicator.findMany({
      where: employeeId ? { employeeId } : {},
      orderBy: { createdAt: 'desc' }
    });
    
    return NextResponse.json(ipis);
  } catch (error) {
    console.error('Error fetching IPIs:', error);
    return NextResponse.json({ error: 'Failed to fetch IPIs' }, { status: 500 });
  }
}

export async function POST(request: Request) {
  try {
    const body = await request.json();
    
    const ipi = await prisma.individualPerformanceIndicator.create({
      data: {
        workPlanId: body.workPlanId,
        workPlanTaskId: body.workPlanTaskId,
        employeeId: body.employeeId,
        indicatorName: body.indicatorName,
        indicator: body.indicatorName,
        baseline: body.baseline || '0',
        target: body.target,
        current: body.current || '0',
        unit: body.unit || '%',
        progress: body.progress || 0,
        measurementCriteria: body.measurementCriteria,
        expectedPerformance: body.expectedPerformance,
        ratingScale: body.ratingScale,
        taskTitle: body.taskTitle
      }
    });
    
    return NextResponse.json(ipi, { status: 201 });
  } catch (error) {
    console.error('Error creating IPI:', error);
    return NextResponse.json({ error: 'Failed to create IPI' }, { status: 500 });
  }
}
