/* =====================================================================
   lib/email.js — E-Mail-Versand über Resend. 1:1 portiert aus functions/_shared/email.js.
   sendeEmail() wirft NIE einen Fehler, gibt nur { ok, error? } zurück — eine fehlgeschlagene
   E-Mail darf nie eine Bestellung zum Scheitern bringen (siehe bestellung-erstellen.js).
   ===================================================================== */

const RESEND_API_URL = "https://api.resend.com/emails";
const STANDARD_ABSENDER = "Van's DIY & Bastelbedarf <onboarding@resend.dev>";

export async function sendeEmail({ to, subject, html, text, from }) {
  if (!process.env.RESEND_API_KEY) {
    return { ok: false, error: "RESEND_API_KEY nicht gesetzt — E-Mail-Versand noch nicht eingerichtet." };
  }
  try {
    const res = await fetch(RESEND_API_URL, {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.RESEND_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        from: from || process.env.RESEND_FROM || STANDARD_ABSENDER,
        to: Array.isArray(to) ? to : [to],
        subject,
        html,
        text,
      }),
    });
    if (!res.ok) {
      const fehlertext = await res.text().catch(() => "");
      return { ok: false, error: `Resend antwortete mit Status ${res.status}: ${fehlertext}` };
    }
    return { ok: true };
  } catch (err) {
    return { ok: false, error: err instanceof Error ? err.message : String(err) };
  }
}

export function escapeHtmlFuerEmail(str) {
  return String(str ?? "").replace(/[&<>"']/g, (c) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" }[c]));
}
