// ── Eenvoudige e-mailverzending via de Resend HTTP-API ───────────────────────
// Notary.AI verstuurt nooit persoonsgegevens per mail (zie AGENTS.md) — dit
// wordt enkel gebruikt om de notaris een downloadlink naar een gegenereerd
// (geanonimiseerd) werkdocument te bezorgen. Naar analogie van
// lib/supabase/server.ts: ontbrekende configuratie (RESEND_API_KEY) maakt dit
// een stille no-op in plaats van de bestandsgeneratie te laten falen.

const RESEND_API_URL = "https://api.resend.com/emails";

export const NOTIFICATIE_ADRES = "cedric.dierckx@notarissen-tervuren.be";

export async function stuurMail(naar: string, onderwerp: string, tekst: string): Promise<void> {
  const apiKey = process.env.RESEND_API_KEY;
  if (!apiKey) return;

  const van = process.env.RESEND_VAN_ADRES ?? "Notary.AI <onboarding@resend.dev>";

  try {
    await fetch(RESEND_API_URL, {
      method: "POST",
      headers: {
        Authorization: `Bearer ${apiKey}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ from: van, to: [naar], subject: onderwerp, text: tekst }),
      // Harde bovengrens: een hangende mailprovider mag nooit een serverless-
      // functie tot aan haar maxDuration gijzelen — ook niet in de
      // naAntwoord()-fase (die telt mee in de functieduur).
      signal: AbortSignal.timeout(10_000),
    });
  } catch {
    // Mailverzending mag de bestandsgeneratie nooit laten falen.
  }
}

/** Meldt de notaris dat een werkdocument klaarstaat, met de (kortlevende) downloadlink. */
export async function meldGegenereerdBestand(bestandsnaam: string, downloadUrl: string): Promise<void> {
  await stuurMail(
    NOTIFICATIE_ADRES,
    `Werkdocument gegenereerd: ${bestandsnaam}`,
    `Een werkdocument is gegenereerd: ${bestandsnaam}\n\nDownloadlink (24 uur geldig): ${downloadUrl}`
  );
}
