#!/usr/bin/env bash
# onx-reseller-vhost-remove — Per-reseller white-label vhost cleanup.
#
# Input (stdin JSON):
#   reseller_id    int       Reseller user id
#   domain         string    Bayinin panel hostname'i
#
# Output (stdout JSON):
#   {"vhost_path":..., "domain":..., "reseller_id":..., "removed":true,
#    "reloaded":true}
#
# Exit codes: 0=ok 1=invalid-input 2=preflight-fail 3=exec-fail

set -euo pipefail

SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
# shellcheck source=_lib/common.sh
source "${SCRIPT_DIR}/_lib/common.sh"

VHOST_DIR="/etc/httpd/conf.d"

INPUT=$(cat)
onx_require_json "${INPUT}"

RESELLER_ID=$(onx_json_get "${INPUT}" "reseller_id")
DOMAIN=$(onx_json_get "${INPUT}" "domain")

[[ -z "${RESELLER_ID}" ]] && onx_die 1 "reseller_id is required"
[[ "${RESELLER_ID}" =~ ^[0-9]+$ ]] || onx_die 1 "reseller_id must be a positive integer"
onx_validate_domain "${DOMAIN}"

VHOST_PATH="${VHOST_DIR}/reseller-${RESELLER_ID}-${DOMAIN}.conf"

# Idempotent: dosya yoksa "removed" = true ile çık (cleanup ikinci kez çağrılınca patlamasın)
REMOVED="false"
if [[ -f "${VHOST_PATH}" ]]; then
  rm -f "${VHOST_PATH}"
  REMOVED="true"

  if ! apachectl configtest 2>/dev/null; then
    onx_die 3 "apachectl configtest failed after removing reseller vhost"
  fi

  if ! systemctl reload httpd; then
    onx_die 3 "systemctl reload httpd failed"
  fi
fi

onx_json_out \
  "vhost_path"  "${VHOST_PATH}" \
  "domain"      "${DOMAIN}" \
  "reseller_id" "${RESELLER_ID}" \
  "removed"     "${REMOVED}" \
  "reloaded"    "${REMOVED}"
