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

export async function POST(request: Request) {
  try {
    const body = await request.json();
    
    const kpi = await prisma.kPI.create({
      data: {
        employeeId: body.employeeId,
        title: body.title,
        description: body.description || '',
        targetValue: body.targetValue,
        measurementMethod: body.measurementMethod || '',
        frequency: body.frequency || 'Quarterly',
        performanceScore: body.performanceScore || 0,
        progress: body.progress || 0,
        targetDeadline: body.targetDeadline ? new Date(body.targetDeadline) : null,
        linkedWorkPlanId: body.linkedWorkPlanId || '',
        linkedGoalId: body.linkedGoalId || ''
      }
    });
    
    return NextResponse.json(kpi, { status: 201 });
  } catch (error) {
    console.error('Error creating KPI:', error);
    return NextResponse.json({ error: 'Failed to create KPI' }, { status: 500 });
  }
}
