import { NextRequest, NextResponse } from 'next/server'; import { prisma } from '@/lib/prisma'; import { getCurrentUser } from '@/lib/auth'; // GET - Obtenir un chauffeur par ID export async function GET( request: NextRequest, { params }: { params: { id: string } } ) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const chauffeur = await prisma.chauffeur.findUnique({ where: { id: params.id }, }); if (!chauffeur) { return NextResponse.json( { error: 'Chauffeur non trouvé' }, { status: 404 } ); } return NextResponse.json(chauffeur); } catch (error) { console.error('Erreur lors de la récupération du chauffeur:', error); return NextResponse.json( { error: 'Erreur serveur' }, { status: 500 } ); } } // PUT - Mettre à jour un chauffeur export async function PUT( request: NextRequest, { params }: { params: { id: string } } ) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } const body = await request.json(); const { nom, prenom, dateNaissance, telephone, email, adresse, heuresContrat, dateDebutContrat, dateFinContrat, status } = body; const updateData: any = {}; if (nom) updateData.nom = nom; if (prenom) updateData.prenom = prenom; if (dateNaissance) updateData.dateNaissance = new Date(dateNaissance); if (telephone) updateData.telephone = telephone; if (email) updateData.email = email; if (adresse) updateData.adresse = adresse; if (heuresContrat !== undefined) updateData.heuresContrat = heuresContrat; if (dateDebutContrat) updateData.dateDebutContrat = new Date(dateDebutContrat); if (dateFinContrat !== undefined) { updateData.dateFinContrat = dateFinContrat ? new Date(dateFinContrat) : null; } if (status) updateData.status = status; const chauffeur = await prisma.chauffeur.update({ where: { id: params.id }, data: updateData, }); return NextResponse.json(chauffeur); } catch (error) { console.error('Erreur lors de la mise à jour du chauffeur:', error); return NextResponse.json( { error: 'Erreur serveur' }, { status: 500 } ); } } // DELETE - Supprimer un chauffeur export async function DELETE( request: NextRequest, { params }: { params: { id: string } } ) { try { const user = await getCurrentUser(); if (!user) { return NextResponse.json({ error: 'Non autorisé' }, { status: 401 }); } await prisma.chauffeur.delete({ where: { id: params.id }, }); return NextResponse.json({ success: true }); } catch (error) { console.error('Erreur lors de la suppression du chauffeur:', error); return NextResponse.json( { error: 'Erreur serveur' }, { status: 500 } ); } }