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

export async function PUT(
  request: NextRequest,
  { params }: { params: Promise<{ id: string }> | { id: string } }
) {
  try {
    const { id } = await params;
    const body = await request.json();

    const ipi = await prisma.individualPerformanceIndicator.update({
      where: { id },
      data: {
        indicatorName: body.indicatorName,
        indicator: body.indicatorName ?? body.indicator,
        target: body.target,
        current: body.current ?? body.target,
        measurementCriteria: body.measurementCriteria,
        expectedPerformance: body.expectedPerformance,
        ratingScale: body.ratingScale,
        progress: body.progress,
        supervisorRating: body.supervisorRating,
        supervisorComment: body.supervisorComment,
        taskTitle: body.taskTitle,
        updatedAt: new Date(),
      },
    });

    return NextResponse.json(ipi);
  } catch (error) {
    console.error('Error updating IPI:', error);
    return NextResponse.json({ error: 'Failed to update IPI' }, { status: 500 });
  }
}

export async function DELETE(
  request: NextRequest,
  { params }: { params: Promise<{ id: string }> | { id: string } }
) {
  try {
    const { id } = await params;
    await prisma.individualPerformanceIndicator.delete({ where: { id } });
    return NextResponse.json({ message: 'IPI deleted successfully' });
  } catch (error) {
    console.error('Error deleting IPI:', error);
    return NextResponse.json({ error: 'Failed to delete IPI' }, { status: 500 });
  }
}
