#!/usr/bin/env bash
# fix-platform-paths.sh — Perbaiki instalasi jobseeker-platform.sh yang
# salah tempat (bug ${HOME:-/opt/data} → /opt/data/home).
#
# Memindahkan/memperbaiki:
#   1. Tooling:  /opt/data/home/jobseeker           → /opt/data/jobseeker
#   2. API key:  /opt/data/home/.env                → tambah API_SERVER_KEY ke /opt/data/.env
#   3. Skill:    /opt/data/home/skills/jobseeker    → reinstall via hermes skills install
#   4. VNC key:  /opt/data/home/home/vncsetup/run   → /opt/data/home/vncsetup/run
# Idempoten & aman dijalankan ulang.
set -u
SRC_BASE="${SRC_BASE:-https://hermes-3s1llz-6080.jkt3.sumopod.my.id}"
HERMES_BIN="$(command -v hermes || echo /opt/hermes/bin/hermes)"
HH="${HERMES_HOME:-/opt/data}"
ok(){ echo "  ✓ $*"; }
info(){ echo "→ $*"; }
warn(){ echo "  ⚠ $*"; }

info "1/4 — Tooling jobseeker"
if [ -d /opt/data/home/jobseeker ] && [ ! -d /opt/data/jobseeker ]; then
  mv /opt/data/home/jobseeker /opt/data/jobseeker && ok "dipindah ke /opt/data/jobseeker"
elif [ -d /opt/data/jobseeker ]; then
  ok "/opt/data/jobseeker sudah ada"
else
  warn "tidak ada — biarkan (platform akan membuatnya saat dijalankan)"
fi

info "2/4 — API_SERVER_KEY di .env"
if [ -f /opt/data/home/.env ] && grep -q '^API_SERVER_KEY=' /opt/data/home/.env; then
  key=$(grep '^API_SERVER_KEY=' /opt/data/home/.env | head -1)
  touch /opt/data/.env; chmod 600 /opt/data/.env
  if grep -q '^API_SERVER_KEY=' /opt/data/.env; then
    warn "API_SERVER_KEY sudah ada di /opt/data/.env — bandingkan manual kalau beda"
  else
    printf '%s\n' "$key" >> /opt/data/.env && ok "API_SERVER_KEY disalin ke /opt/data/.env"
  fi
else
  ok "tidak ada API_SERVER_KEY salah tempat"
fi

info "3/4 — Skill jobseeker-agent (reinstall ke direktori benar)"
if "$HERMES_BIN" skills install "$SRC_BASE/jobseeker-agent-SKILL.md" \
    --category jobseeker --yes >/dev/null 2>&1; then
  ok "skill ter-install di direktori benar"
else
  mkdir -p "$HH/skills/jobseeker/jobseeker-agent"
  curl -fsSL "$SRC_BASE/jobseeker-agent-SKILL.md" \
    -o "$HH/skills/jobseeker/jobseeker-agent/SKILL.md" && ok "skill fallback manual → $HH/skills"
fi
if [ -d /opt/data/home/skills ]; then
  rm -rf /opt/data/home/skills && ok "sisa lama /opt/data/home/skills dihapus"
fi

info "4/4 — vnc-jwt-secret (jalur dobel home)"
if [ -f /opt/data/home/home/vncsetup/run/vnc-jwt-secret ]; then
  mkdir -p /opt/data/home/vncsetup/run
  if [ ! -s /opt/data/home/vncsetup/run/vnc-jwt-secret ]; then
    cp /opt/data/home/home/vncsetup/run/vnc-jwt-secret /opt/data/home/vncsetup/run/vnc-jwt-secret
    chmod 600 /opt/data/home/vncsetup/run/vnc-jwt-secret
    ok "vnc-jwt-secret disalin ke /opt/data/home/vncsetup/run/"
  else
    warn "vnc-jwt-secret sudah ada di tempat benar — biarkan"
  fi
  rm -rf /opt/data/home/home
else
  ok "tidak ada jalur dobel home"
fi

echo
echo "═══════════ VERIFIKASI AKHIR ═══════════"
[ -d /opt/data/jobseeker ] && ok "tooling: /opt/data/jobseeker ada ($(ls /opt/data/jobseeker | wc -l) file)" || warn "tooling belum ada"
grep -q '^API_SERVER_KEY=' /opt/data/.env && ok "API_SERVER_KEY ada di /opt/data/.env" || warn "API_SERVER_KEY belum ada"
ls /opt/data/skills/jobseeker/jobseeker-agent/SKILL.md >/dev/null 2>&1 && ok "skill di /opt/data/skills" || warn "skill belum ada"
[ -s /opt/data/home/vncsetup/run/vnc-jwt-secret ] && ok "vnc-jwt-secret ada" || warn "vnc-jwt-secret belum ada"
echo "═══════════════════════════════════════"
echo "Catatan: kalau API_SERVER_KEY/vnc-jwt-secret berubah, restart gateway: $HERMES_BIN gateway restart"
exit 0
