#!/usr/bin/env bash
# ============================================================
# KUL IDEAI — macOS Installer (Apple Silicon + Intel)
# https://webstree.com — Webstree AI yerel asistan kurulumu
# ============================================================
set -euo pipefail

RESET='\033[0m'
BOLD='\033[1m'
CYAN='\033[36m'
GREEN='\033[32m'
YELLOW='\033[33m'
RED='\033[31m'
DIM='\033[2m'

log()  { printf "${CYAN}[ideai]${RESET} %s\n" "$*"; }
ok()   { printf "${GREEN}[✓]${RESET} %s\n" "$*"; }
warn() { printf "${YELLOW}[!]${RESET} %s\n" "$*"; }
err()  { printf "${RED}[✗]${RESET} %s\n" "$*" >&2; }

banner() {
  printf "\n${BOLD}${CYAN}"
  cat <<'EOF'
   _  __ _   _ _        ___ ____  _____ _    ___
  | |/ /| | | | |      |_ _|  _ \| ____/ \  |_ _|
  | ' / | | | | |       | || | | |  _|/ _ \  | |
  | . \ | |_| | |___    | || |_| | |__/ ___ \ | |
  |_|\_\ \___/|_____|  |___|____/|_____/   \_\___|

EOF
  printf "${DIM}  macOS — Apple Silicon & Intel uyumlu${RESET}\n"
  printf "${DIM}  Qwen3.6:35b + Ollama + Kul fine-tuned${RESET}\n\n"
}

detect_arch() {
  if [[ "$(uname -m)" == "arm64" ]]; then
    echo "Apple Silicon (M1/M2/M3/M4)"
  else
    echo "Intel x86_64"
  fi
}

install_homebrew() {
  if command -v brew >/dev/null 2>&1; then
    ok "Homebrew zaten kurulu"
    return
  fi
  log "Homebrew kuruluyor..."
  /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  # Add brew to PATH (arch aware)
  if [[ -d /opt/homebrew/bin ]]; then
    eval "$(/opt/homebrew/bin/brew shellenv)"
  elif [[ -d /usr/local/bin ]]; then
    eval "$(/usr/local/bin/brew shellenv)"
  fi
}

install_ollama() {
  if command -v ollama >/dev/null 2>&1; then
    ok "Ollama zaten kurulu"
    return
  fi
  log "Ollama kuruluyor..."
  if command -v brew >/dev/null 2>&1; then
    brew install ollama
  else
    curl -fsSL https://ollama.com/download/Ollama-darwin.zip -o /tmp/ollama.zip
    unzip -q /tmp/ollama.zip -d /Applications/
    rm /tmp/ollama.zip
    warn "Ollama.app yüklendi — ilk açılışta izin ver"
  fi
  ok "Ollama hazır"
}

start_ollama() {
  if pgrep -x ollama >/dev/null; then
    ok "Ollama çalışıyor"
    return
  fi
  log "Ollama başlatılıyor (arka planda)..."
  nohup ollama serve > /tmp/ollama.log 2>&1 &
  sleep 3
  ok "Ollama aktif (log: /tmp/ollama.log)"
}

pull_models() {
  log "Qwen3.6:35b modeli çekiliyor (~23GB)..."
  ollama pull qwen3.6:35b
  ok "qwen3.6:35b hazır"

  log "Kul fine-tuned model kontrol..."
  ollama pull webstree-kul:35b 2>/dev/null || warn "Kul modeli henüz yayında değil — qwen3.6:35b kullanılacak"
}

install_ideai_cli() {
  local BIN_DIR="${HOME}/.local/bin"
  mkdir -p "$BIN_DIR"

  cat > "${BIN_DIR}/ideai" <<'IDEAI'
#!/usr/bin/env bash
MODEL="${IDEAI_MODEL:-webstree-kul:35b}"
if ! ollama list 2>/dev/null | grep -q "$MODEL"; then
  MODEL="qwen3.6:35b"
fi
if [ $# -eq 0 ]; then
  exec ollama run "$MODEL"
else
  exec ollama run "$MODEL" "$@"
fi
IDEAI
  chmod +x "${BIN_DIR}/ideai"

  # PATH'e ekle
  local SHELL_RC="${HOME}/.zshrc"
  [[ -f "${HOME}/.bash_profile" && ! -f "${HOME}/.zshrc" ]] && SHELL_RC="${HOME}/.bash_profile"

  if ! grep -q "${HOME}/.local/bin" "$SHELL_RC" 2>/dev/null; then
    echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$SHELL_RC"
    ok "PATH güncellendi: ${SHELL_RC}"
  fi
  ok "IDEAI CLI: ${BIN_DIR}/ideai"
}

create_config() {
  local CFG_DIR="${HOME}/.config/ideai"
  mkdir -p "$CFG_DIR"
  cat > "${CFG_DIR}/config.json" <<EOF
{
  "version": "1.0.0",
  "model": "webstree-kul:35b",
  "fallback_model": "qwen3.6:35b",
  "ollama_host": "http://127.0.0.1:11434",
  "theme": "dark",
  "primary_color": "#5d00ff",
  "telemetry": false,
  "installed_at": "$(date -u +%Y-%m-%dT%H:%M:%SZ)",
  "platform": "macos",
  "arch": "$(uname -m)"
}
EOF
  ok "Yapılandırma: ${CFG_DIR}/config.json"
}

main() {
  banner
  log "Mimari: $(detect_arch)"
  install_homebrew
  install_ollama
  start_ollama
  pull_models
  install_ideai_cli
  create_config

  printf "\n${BOLD}${GREEN}═══════════════════════════════════════════════${RESET}\n"
  printf "${BOLD}${GREEN}  ✓ macOS kurulumu tamam!${RESET}\n"
  printf "${BOLD}${GREEN}═══════════════════════════════════════════════${RESET}\n\n"
  printf "Yeni terminal aç veya: ${CYAN}source ~/.zshrc${RESET}\n\n"
  printf "Kullanım:\n"
  printf "  ${CYAN}ideai${RESET}              — interaktif chat\n"
  printf "  ${CYAN}ideai 'Merhaba'${RESET}    — tek soru\n\n"
  printf "${DIM}https://webstree.com/docs/ideai${RESET}\n\n"
}

main "$@"
