#!/usr/bin/env bash
# Faunamix kökünden çalıştırın: ./scripts/start-php-api.sh
# Port meşgul ve dinleyen süreç php ise: zaten ayakta kabul edilir (çıkış 0).
# Başka süreç: PID listelenir, çıkış 1. Alternatif port: FAUNAMIX_PHP_PORT=8081 ./scripts/start-php-api.sh
#
# PHP 8.0+ zorunlu (api/lib/i18n_columns.php match ifadesi). MAMP örneği:
#   export PATH="/Applications/MAMP/bin/php/php8.2.0/bin:$PATH"
#   ./scripts/start-php-api.sh
set -euo pipefail
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$ROOT"

PORT="${FAUNAMIX_PHP_PORT:-${PHP_API_PORT:-8080}}"
HOST="${FAUNAMIX_PHP_HOST:-localhost}"

if [[ -f api/.env ]]; then
  set -a
  # shellcheck disable=SC1091
  source api/.env
  set +a
  echo "[php-api] Ortam: api/.env"
else
  set -a
  # shellcheck disable=SC1091
  source api/env.example
  set +a
  echo "[php-api] Ortam: api/env.example (MySQL şifren varsa api/.env oluşturup DB_PASS yaz)"
fi

if command -v lsof >/dev/null 2>&1; then
  if lsof -i ":${PORT}" -sTCP:LISTEN -n -P 2>/dev/null | grep -q .; then
    if lsof -i ":${PORT}" -sTCP:LISTEN -n -P 2>/dev/null | awk 'NR>1 {print $1}' | grep -qi '^php$'; then
      echo "[php-api] ${HOST}:${PORT} zaten PHP ile dinleniyor — API çalışıyor sayılır."
      echo "[php-api] Yeniden başlatmak için: kill \$(lsof -t -iTCP:${PORT} -sTCP:LISTEN)"
      exit 0
    fi
    echo "[php-api] Hata: ${PORT} portu meşgul ve dinleyen süreç PHP değil."
    lsof -i ":${PORT}" -sTCP:LISTEN -n -P 2>/dev/null || true
    echo "[php-api] Çözüm: süreci durdurun veya FAUNAMIX_PHP_PORT=8081 ./scripts/start-php-api.sh deneyin."
    exit 1
  fi
fi

PHP_BIN="${FAUNAMIX_PHP_BIN:-php}"
if ! command -v "${PHP_BIN}" >/dev/null 2>&1; then
  echo "[php-api] Hata: PHP bulunamadı (${PHP_BIN}). FAUNAMIX_PHP_BIN veya PATH ayarlayın."
  exit 1
fi
PHP_MAJOR="$("${PHP_BIN}" -r 'echo PHP_MAJOR_VERSION;')"
if [[ "${PHP_MAJOR}" -lt 8 ]]; then
  echo "[php-api] Hata: PHP ${PHP_MAJOR} desteklenmiyor — PHP 8.0+ gerekli (MAMP php8.2 PATH örneği üstte)."
  exit 1
fi
echo "[php-api] PHP $("${PHP_BIN}" -r 'echo PHP_VERSION;')"
echo "[php-api] Başlatılıyor: http://${HOST}:${PORT} (kökdən /api/*.php)"
exec "${PHP_BIN}" -S "${HOST}:${PORT}"
