#!/usr/bin/env bash
#
# onx-exim-queue-delete — exim -Mrm <MESSAGE_ID>
#
# Postfix muadili: onx-postqueue-delete (postsuper -d <QUEUE_ID>)
#
# Exim message ID formati: XXXXXX-XXXXXX-XX (16 char + 2 char, base62)
# Ornek: 1abc23-Def456-78
# Regex: ^[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2}$
#
# stdin: {"message_id":"1abc23-Def456-78"}
# stdout: {"ok":true,"message_id":"...","message":"..."}

set -euo pipefail
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
source "${SCRIPT_DIR}/_lib/common.sh"

require_root
require_cmd jq

INPUT=$(cat)

MESSAGE_ID=$(_json_get "$INPUT" "message_id")

if [[ -z "$MESSAGE_ID" ]]; then
    json_fail 1 "Eksik alan: message_id"
fi

# Guvenlik: Exim message ID formati ^[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2}$
# Bazi varyantlar (-H suffix vs.) icin geni regex: alnum + tek tire ayrac
if ! [[ "$MESSAGE_ID" =~ ^[A-Za-z0-9]{6}-[A-Za-z0-9]{6}-[A-Za-z0-9]{2}$ ]]; then
    json_fail 1 "Gecersiz message_id formati (beklenen: XXXXXX-XXXXXX-XX)"
fi

# Exim binary auto-detect
EXIM_BIN=""
for bin in /usr/sbin/exim /usr/sbin/exim4; do
    [[ -x "$bin" ]] && { EXIM_BIN="$bin"; break; }
done
[[ -z "$EXIM_BIN" ]] && json_fail 2 "exim binary bulunamadi"

# exim -Mrm <ID> — mesaji silinmis isaretle ve queue'dan kaldir
if ! OUT=$("$EXIM_BIN" -Mrm "$MESSAGE_ID" 2>&1); then
    rc=$?
    json_fail 3 "exim -Mrm ${MESSAGE_ID} basarisiz (rc=$rc): $OUT"
fi

json_ok "{\"ok\":true,\"message_id\":\"${MESSAGE_ID}\",\"message\":\"exim -Mrm ${MESSAGE_ID} tamamlandi\"}"
