#!/usr/bin/env bash
# FutureMedia baslatici (macOS / Linux)

cd "$(dirname "${BASH_SOURCE[0]}")"

echo "================================"
echo "  FutureMedia baslatiliyor..."
echo "================================"
echo "Klasor: $(pwd)"
echo

if ! command -v node >/dev/null 2>&1; then
  echo "[HATA] Node.js bulunamadi. Once https://nodejs.org adresinden kurun."
  read -p "Devam etmek icin Enter'a bas..." _
  exit 1
fi
echo "Node.js bulundu: $(node -v)"

if ! command -v npm >/dev/null 2>&1; then
  echo "[HATA] npm bulunamadi (Node.js kurulumu eksik/bozuk olabilir)."
  read -p "Devam etmek icin Enter'a bas..." _
  exit 1
fi

SERVER_DIR="$(pwd)/server"
if [ ! -f "$SERVER_DIR/server.js" ]; then
  echo "[HATA] server klasoru bulunamadi: $SERVER_DIR"
  read -p "Devam etmek icin Enter'a bas..." _
  exit 1
fi

if [ ! -d "$SERVER_DIR/node_modules" ]; then
  echo
  echo "Bagimliliklar yukleniyor, bu birkac dakika surebilir..."
  echo "------------------------------------------------"
  if ! (cd "$SERVER_DIR" && npm install); then
    echo "------------------------------------------------"
    echo "[HATA] npm install basarisiz oldu. Internet baglantini kontrol et."
    read -p "Devam etmek icin Enter'a bas..." _
    exit 1
  fi
  echo "------------------------------------------------"
  echo "Bagimliliklar yuklendi."
  echo
fi

echo "Sunucu baslatiliyor: http://localhost:3000"

if [[ "$OSTYPE" == "darwin"* ]]; then
  osascript -e "tell application \"Terminal\" to do script \"cd '$SERVER_DIR' && npm start\"" >/dev/null
elif command -v gnome-terminal >/dev/null 2>&1; then
  gnome-terminal -- bash -c "cd '$SERVER_DIR' && npm start; exec bash"
elif command -v xterm >/dev/null 2>&1; then
  xterm -e "cd '$SERVER_DIR' && npm start" &
else
  (cd "$SERVER_DIR" && npm start &) 
fi

echo "Sunucunun hazir olmasi bekleniyor..."
READY=0
for i in $(seq 1 20); do
  if curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/health 2>/dev/null | grep -q "200"; then
    READY=1
    break
  fi
  sleep 1
done

if [ "$READY" = "1" ]; then
  echo "Sunucu hazir, tarayici aciliyor..."
  if [[ "$OSTYPE" == "darwin"* ]]; then
    open "http://localhost:3000"
  elif command -v xdg-open >/dev/null 2>&1; then
    xdg-open "http://localhost:3000"
  fi
else
  echo
  echo "[UYARI] Sunucu 20 saniye icinde yanit vermedi."
  echo "Acilan sunucu terminalinde bir hata olup olmadigini kontrol et."
  echo "Sunucu hazir olduktan sonra tarayicida manuel olarak sunu ac:"
  echo "   http://localhost:3000"
fi

echo
echo "Bu terminali kapatabilirsin, sunucu ayri pencerede calismaya devam eder."
