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

export async function GET(request: NextRequest) {
  try {
    const { searchParams } = new URL(request.url);
    const employeeId = searchParams.get('employeeId');
    
    let where: any = {};
    if (employeeId) {
      where.employeeId = employeeId;
    }
    
    const evaluations = await prisma.trainingEvaluation.findMany({
      where,
      orderBy: { evalDate: 'desc' }
    });
    
    return NextResponse.json(evaluations);
  } catch (error) {
    console.error('Error fetching training evaluations:', error);
    return NextResponse.json({ error: 'Failed to fetch training evaluations' }, { status: 500 });
  }
}

export async function POST(request: NextRequest) {
  try {
    const body = await request.json();
    
    const evaluation = await prisma.trainingEvaluation.create({
      data: {
        programId: body.programId,
        programTitle: body.programTitle,
        employeeId: body.employeeId,
        employeeName: body.employeeName,
        dept: body.dept,
        evalDate: new Date(body.evalDate),
        l1Rating: body.l1Rating,
        l1Feedback: body.l1Feedback,
        l2PreScore: body.l2PreScore || 0,
        l2PostScore: body.l2PostScore || 0,
        l2CertUploaded: body.l2CertUploaded || false,
        l2Status: body.l2Status || 'Pending',
        l3Status: 'Pending',
        l4MetricsImproved: false,
      }
    });
    
    return NextResponse.json(evaluation, { status: 201 });
  } catch (error) {
    console.error('Error creating training evaluation:', error);
    return NextResponse.json({ error: 'Failed to create training evaluation' }, { status: 500 });
  }
}
