import { NextResponse } from "next/server"; import { createAdminClient } from "@/lib/supabase/server"; import { verifyAdmin, isAdminError } from "@/lib/admin"; export const runtime = "nodejs"; // POST /api/admin/candidatures/[id]/reject - Rejeter une candidature export async function POST( _request: Request, { params }: { params: Promise<{ id: string }> } ) { const auth = await verifyAdmin(); if (isAdminError(auth)) { return NextResponse.json({ error: auth.error }, { status: auth.status }); } const { id } = await params; const supabase = createAdminClient(); // Récupérer les infos du candidat avant de rejeter const { data: candidature } = await supabase .from("candidatures") .select("firstname, email") .eq("id", id) .single() as { data: { firstname: string; email: string } | null }; const { error } = await supabase .from("candidatures") .update({ status: "rejected" } as never) .eq("id", id); if (error) { return NextResponse.json({ error: error.message }, { status: 500 }); } // Email de rejet au candidat if (candidature && process.env.RESEND_API_KEY) { try { const { Resend } = await import("resend"); const resend = new Resend(process.env.RESEND_API_KEY); const fromEmail = process.env.RESEND_FROM_EMAIL || "HookLab "; await resend.emails.send({ from: fromEmail, to: candidature.email, subject: "Résultat de ta candidature HookLab", html: `
H
HookLab

Salut ${candidature.firstname},

Merci d'avoir pris le temps de candidater au programme HookLab.

Après étude de ton dossier, nous ne pouvons pas retenir ta candidature pour le moment. Le programme est très sélectif et nous cherchons des profils très spécifiques.

Nous te souhaitons le meilleur dans ta progression. N'hésite pas à recandidater dans quelques mois si ta situation évolue.

HookLab - Programme TikTok Shop

`, }); } catch (emailError) { console.error("Erreur envoi email rejet:", emailError); } } return NextResponse.json({ success: true, message: "Candidature rejetée." }); }