/* =====================================================================
   POST /api/account/delete — löscht das echte Kundenkonto unwiderruflich (DSGVO Art. 17,
   "Recht auf Löschung"). Bewusst als echtes Selbstbedienungs-Werkzeug gebaut, nicht nur als
   "schreib uns eine E-Mail"-Hinweis — genau das, was rechtlich am saubersten ist und was
   VanVan vor Anfragen/Beschwerden schützt, die sonst manuell bearbeitet werden müssten.

   Löscht NUR den customers-Datensatz (Login-Identität) — bereits aufgegebene Bestellungen
   (orders-Tabelle) bleiben bestehen, weil dafür eine gesetzliche Aufbewahrungspflicht gilt
   (handels-/steuerrechtliche Aufbewahrungsfristen, § 257 HGB / § 147 AO) — das Konto ist davon
   rechtlich unabhängig. ===================================================================== */

import { json } from "../../_shared/http.js";
import { getCustomer, clearCustomerCookieHeader } from "../../_shared/customer-auth.js";

export async function onRequestPost(context) {
  const { request, env } = context;
  const customer = await getCustomer(request, env);
  if (!customer) return json(401, { ok: false, error: "Nicht angemeldet." });

  try {
    await env.DB.prepare(`DELETE FROM customers WHERE id = ?`).bind(customer.id).run();
  } catch {
    return json(500, { ok: false, error: "Konto konnte nicht gelöscht werden. Bitte versuche es erneut." });
  }

  const headers = new Headers({ "Content-Type": "application/json" });
  headers.append("Set-Cookie", clearCustomerCookieHeader());
  return new Response(JSON.stringify({ ok: true }), { status: 200, headers });
}
