#!/usr/bin/env bash
# onx-php-override-clear — Remove per-domain PHP-FPM override conf.
#
# Tüm override direktiflerini temizler: override dosyasını siler ve FPM reload.
#
# Input (stdin JSON):
#   username      string  Linux username (onx_xxx)
#   domain        string  Domain adı (example.com)
#   php_version   string  "8.1", "8.2", "8.3", etc.
#
# Output (stdout JSON):
#   {"file":..., "removed":true|false}
#
# Exit codes: 0=ok 1=invalid-input 2=preflight-fail 3=exec-fail
#
# Deployed to: /usr/local/onoxsoft/bin/onx-php-override-clear

set -euo pipefail

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

# ── Read & parse stdin ───────────────────────────────────────────────────────
INPUT=$(cat)
onx_require_json "${INPUT}"

USERNAME=$(onx_json_get "${INPUT}" "username")
DOMAIN=$(onx_json_get "${INPUT}" "domain")
PHP_VERSION=$(onx_json_get "${INPUT}" "php_version")

# ── Input validation ─────────────────────────────────────────────────────────
onx_validate_username "${USERNAME}"
onx_validate_domain "${DOMAIN}"

[[ -z "${PHP_VERSION}" ]] && onx_die 1 "php_version is required"
[[ "${PHP_VERSION}" =~ ^[0-9]\.[0-9]$ ]] || onx_die 1 "php_version must be x.y format, got: ${PHP_VERSION}"

# php_version "8.2" → "82"
PHP_VERSION_NODOT="${PHP_VERSION//./}"

# ── Path setup ───────────────────────────────────────────────────────────────
POOL_DIR="/etc/opt/remi/php${PHP_VERSION_NODOT}/php-fpm.d"
OVERRIDE_FILE="${POOL_DIR}/${USERNAME}-${DOMAIN}.override.conf"
FPM_SERVICE="php${PHP_VERSION_NODOT}-php-fpm"

# ── Preflight ────────────────────────────────────────────────────────────────
command -v systemctl >/dev/null 2>&1 || onx_die 2 "systemctl not found"

# ── Remove override file ─────────────────────────────────────────────────────
REMOVED="false"
if [[ -f "${OVERRIDE_FILE}" ]]; then
    rm -f "${OVERRIDE_FILE}"
    REMOVED="true"
    onx_log "removed override file: ${OVERRIDE_FILE}"

    # Only reload FPM if the file actually existed
    if ! systemctl reload "${FPM_SERVICE}" 2>/dev/null; then
        onx_log "reload failed — trying restart for ${FPM_SERVICE}"
        if ! systemctl restart "${FPM_SERVICE}"; then
            onx_die 3 "FPM service ${FPM_SERVICE} failed to reload/restart after override clear"
        fi
    fi
else
    onx_log "no override file found (already clear): ${OVERRIDE_FILE}"
fi

# ── Success ──────────────────────────────────────────────────────────────────
onx_json_out \
    "file"        "${OVERRIDE_FILE}" \
    "removed"     "${REMOVED}" \
    "php_version" "${PHP_VERSION}" \
    "domain"      "${DOMAIN}"
