import { softDeleteDmMessage } from "../../db/chat";

/**
 * POST /api/chat/delete-message
 * Soft-Delete (Tombstone "Nachricht gelöscht") einer eigenen DM — für alle.
 * Body: { messageId }. Nur der Absender darf löschen (im Helper geprüft).
 * Die UPDATE auf direct_messages.deleted_at propagiert via Supabase-Realtime
 * an die Gegenseite. Group-Chat ist in diesem Release nicht aktiv (nur DM).
 */
export default defineEventHandler(async (event) => {
  const user = await requireUser(event);
  const body = await readBody(event);

  const messageId = body?.messageId as string | undefined;
  if (!messageId) {
    throw createError({ statusCode: 400, message: "messageId erforderlich" });
  }

  const deleted = await softDeleteDmMessage(user.id, messageId);
  if (!deleted) {
    throw createError({
      statusCode: 403,
      message: "Nachricht nicht gefunden oder nicht deine",
    });
  }
  return { deleted: true };
});
