import { NextResponse } from "next/server"; import { sendeKontaktEmail, sendeAnfrageBestaetigung } from "@/lib/mailer"; import { createServiceClient } from "@/lib/supabase"; export async function POST(request: Request) { let body: Record; try { body = await request.json(); } catch { return NextResponse.json({ ok: false, error: "Ungültige Anfrage" }, { status: 400 }); } const { name, email, betreff, nachricht, telefon } = body; if (!name?.trim() || !email?.trim() || !betreff?.trim()) { return NextResponse.json({ ok: false, error: "Pflichtfelder fehlen" }, { status: 400 }); } const result = await sendeKontaktEmail({ name, email, betreff, nachricht, telefon }); try { const db = createServiceClient(); await db.from("anfragen").insert({ name, email, betreff, nachricht: nachricht || null, status: "offen" }); } catch (err) { console.error("[Contact] Supabase insert error:", err); } sendeAnfrageBestaetigung({ name, email, betreff }).catch((err) => console.error("[Contact] Bestätigungsmail fehlgeschlagen:", err) ); if (!result.sent && !result.queued) { console.error( `[Contact] UNZUSTELLBAR – Anfrage konnte weder gesendet noch in Queue gespeichert werden:\n` + ` Zeit: ${new Date().toISOString()}\n` + ` Name: ${name}\n` + ` E-Mail: ${email}\n` + ` Telefon: ${telefon ?? "(nicht angegeben)"}\n` + ` Betreff: ${betreff}\n` + ` Nachricht: ${nachricht ?? "(keine)"}` ); return NextResponse.json({ ok: false, error: "Mail konnte nicht gesendet werden" }, { status: 500 }); } return NextResponse.json({ ok: true, queued: result.queued }); }