﻿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 targets = await prisma.quarterlyTarget.findMany({
      where: employeeId ? { employeeId } : {},
      orderBy: [{ year: 'desc' }, { quarter: 'asc' }]
    });
    
    return NextResponse.json(targets);
  } catch (error) {
    console.error('Error fetching quarterly targets:', error);
    return NextResponse.json({ error: 'Failed to fetch quarterly targets' }, { status: 500 });
  }
}

export async function POST(request: Request) {
  try {
    const body = await request.json();
    
    const target = await prisma.quarterlyTarget.create({
      data: {
        employeeId: body.employeeId,
        title: body.title,
        quarter: body.quarter,
        year: body.year,
        target: body.target,
        kpiMeasurement: body.kpiMeasurement,
        expectedOutcome: body.expectedOutcome,
        completionTimeline: body.completionTimeline,
        weight: body.weight || 0,
        progress: body.progress || 0,
        status: body.status || 'Not Started',
        linkedWorkPlanId: body.linkedWorkPlanId,
        linkedDeptTargetId: body.linkedDeptTargetId,
        supervisorComments: body.supervisorComments
      }
    });
    
    return NextResponse.json(target, { status: 201 });
  } catch (error) {
    console.error('Error creating quarterly target:', error);
    return NextResponse.json({ error: 'Failed to create quarterly target' }, { status: 500 });
  }
}
