#!/bin/bash
# Full npm reinstall for cPanel Node.js apps.
# cPanel stores packages in $VIRTUAL_ENV/lib/node_modules — not only ./node_modules.
set -euo pipefail

unset NODE_ENV
export NPM_CONFIG_PRODUCTION=false

APP_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$APP_ROOT"

echo "App root: $APP_ROOT"
echo "Node: $(node -v)"
echo "npm: $(npm -v)"
NODE_BIN="$(command -v node || true)"
if [ -n "${VIRTUAL_ENV:-}" ]; then
  VENV_ROOT="$VIRTUAL_ENV"
elif [[ "$NODE_BIN" == *"/nodevenv/"* ]]; then
  # e.g. /home/user/nodevenv/app/22/bin/node -> /home/user/nodevenv/app/22
  VENV_ROOT="$(cd "$(dirname "$NODE_BIN")/.." && pwd)"
else
  echo "ERROR: Could not detect cPanel virtualenv."
  echo "  Activate it first, or set VENV_ROOT manually."
  echo "  node: ${NODE_BIN:-not found}"
  exit 1
fi

echo "VENV_ROOT: $VENV_ROOT"
VENV_MODULES="$VENV_ROOT/lib/node_modules"
if [ ! -f prisma/schema.prisma ]; then
  echo "ERROR: prisma/schema.prisma is missing. Run git pull or copy the prisma/ folder."
  exit 1
fi

echo "Clearing virtualenv modules: $VENV_MODULES"
rm -rf "$VENV_MODULES"
rm -rf node_modules package-lock.json

NPM_CONFIG_OMIT=dev npm install

echo ""
echo "Package count:"
npm ls --all 2>/dev/null | wc -l || true

echo ""
echo "Checking build dependencies:"
npm ls tailwindcss postcss autoprefixer next typescript

echo ""
echo "Done. Run: npm run build"
