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

export async function POST(request: NextRequest) {
  try {
    const body = await request.json();
    
    const trainingRequest = await prisma.trainingRequest.create({
      data: {
        employeeId: body.employeeId,
        employeeEmail: body.employeeEmail,
        courseRequested: body.courseRequested,
        trainingProvider: body.trainingProvider,
        trainingMode: body.trainingMode,
        regNo: body.regNo,
        estimatedCost: body.estimatedCost,
        proformaInvoice: body.proformaInvoice,
        admissionLetter: body.admissionLetter,
        preferredStartDate: new Date(body.preferredStartDate),
        preferredEndDate: new Date(body.preferredEndDate),
        justification: body.justification,
        expectedOutcomes: body.expectedOutcomes,
        previousTraining: body.previousTraining || false,
        status: 'Submitted',
        currentStage: 'HR',
        dateSubmitted: new Date(),
      }
    });
    
    return NextResponse.json(trainingRequest, { status: 201 });
  } catch (error) {
    console.error('Error creating training request:', error);
    return NextResponse.json({ error: 'Failed to create training request' }, { status: 500 });
  }
}
