#!/bin/bash
# ═══════════════════════════════════════════════════════════════════
# Sync vendor/ dan node_modules/ dari container ke host (Linux/Mac)
# Berguna untuk IDE autocomplete (PHPStorm, VSCode, dll)
#
# Pakai: bash docker/sync-host.sh
# ═══════════════════════════════════════════════════════════════════
set -e

cd "$(dirname "$0")/.."

echo ""
echo "===================================================="
echo " Syncing dependencies dari container ke host..."
echo "===================================================="
echo ""

if ! docker compose ps app | grep -q "Up"; then
    echo "[ERROR] Container 'app' belum jalan!"
    echo "Jalankan: docker compose up -d"
    exit 1
fi

# Sync vendor
echo "[1/2] Copying vendor/ (~150MB)..."
rm -rf vendor
docker compose cp app:/var/www/html/vendor ./vendor-tmp >/dev/null
if [ -d vendor-tmp/vendor ]; then
    mv vendor-tmp/vendor vendor
    rmdir vendor-tmp
elif [ -d vendor-tmp ]; then
    mv vendor-tmp vendor
fi
echo "  ✓ vendor/ ter-sync"

# Sync node_modules (hanya jika ada di container)
echo "[2/2] Checking node_modules..."
if docker compose exec -T app bash -c '[ -d /var/www/html/node_modules ] && [ "$(ls -A /var/www/html/node_modules 2>/dev/null)" ]' 2>/dev/null; then
    rm -rf node_modules
    docker compose cp app:/var/www/html/node_modules ./node_modules-tmp >/dev/null
    if [ -d node_modules-tmp/node_modules ]; then
        mv node_modules-tmp/node_modules node_modules
        rmdir node_modules-tmp
    elif [ -d node_modules-tmp ]; then
        mv node_modules-tmp node_modules
    fi
    echo "  ✓ node_modules/ ter-sync"
else
    echo "  ⊘ skip — node_modules kosong/tidak ada di container"
fi

echo ""
echo "===================================================="
echo " Selesai! Restart IDE untuk refresh autocomplete"
echo "===================================================="
