#!/usr/bin/env bash
# ════════════════════════════════════════════════════════════════════════════
# Yerba Buena — Deploy final supplements-shop (refinamientos UX)
# ════════════════════════════════════════════════════════════════════════════
#
# Pull en VPS2 supledev de los commits finales:
#   353c2023 — Cloudinary on-the-fly (catalog/show/welcome)
#   391d195f — img-fluid + defensive CSS catalog-product-img
#   20491256 — sticky sidebar en /products-catalogue + detalle
#   19bb1fa6 — related products 1:1 cuadrados ("También te puede interesar")
#
# Uso:
#   scp -o ConnectTimeout=10 yerbabuena-deploy-final.sh vps2:/tmp/
#   ssh vps2 "sudo -u supledev bash /tmp/yerbabuena-deploy-final.sh"
#
# Path real del tenant (DNS custom apunta directo al dominio final):
#   /home/supledev/web/suplementosyerbabuena.com/public_html/git-files/supledev
#
# Pre-requisito: VPS2 (179.43.124.219:5633) accesible vía SSH.
# Si timeout: verificar HestiaCP panel o status del proveedor (probable
# mantenimiento de red del VPS).
# ════════════════════════════════════════════════════════════════════════════

set -e

TENANT_DIR="/home/supledev/web/suplementosyerbabuena.com/public_html/git-files/supledev"
DOMAIN="https://suplementosyerbabuena.com"

echo "═══════════════════════════════════════════════════════════════════"
echo "🚀 Yerba Buena — Deploy refinamientos UX supplements-shop"
echo "   $(date '+%Y-%m-%d %H:%M:%S')"
echo "═══════════════════════════════════════════════════════════════════"
echo

cd "$TENANT_DIR" || { echo "❌ TENANT_DIR no existe: $TENANT_DIR"; exit 1; }

echo "📍 Branch + último commit ANTES del pull:"
git branch --show-current
git log --oneline -1
echo

echo "═══ 1. Pull origin/cd-system ════════════════════════════════════════"
git pull origin cd-system 2>&1 | tail -15
echo
echo "📍 Commit DESPUÉS del pull:"
git log --oneline -1
echo

echo "═══ 2. Clear caches Laravel ═════════════════════════════════════════"
php artisan view:clear 2>&1 | tail -2
php artisan config:clear 2>&1 | tail -2
php artisan cache:clear 2>&1 | tail -2
rm -rf storage/framework/cache/data/* 2>/dev/null && echo "✓ site-config cache (24h TTL) cleared"
echo

echo "═══ 3. Restart PHP-FPM (invalida OPcache) ═══════════════════════════"
sudo systemctl restart php8.3-fpm 2>&1 | tail -3 || \
    sudo systemctl restart php-fpm 2>&1 | tail -3 || \
    echo "⚠️  No se pudo restart php-fpm — el opcache puede tardar en invalidar"
echo

echo "═══ 4. Verify archivos críticos en disco ════════════════════════════"

echo "🔍 catalogue.blade.php — img-fluid + sidebar-sticky:"
grep -E "catalog-product-img img-fluid|sidebar sidebar-sticky" \
    resources/views/modules/products/frontend/demos/demo-supplements-shop/catalogue.blade.php | head -2

echo
echo "🔍 show.blade.php — related-product-img + sidebar-sticky:"
grep -E "related-product-img|sidebar sidebar-sticky" \
    resources/views/modules/products/frontend/demos/demo-supplements-shop/show.blade.php | head -2

echo
echo "🔍 demo-supplements-shop.css — reglas defensive:"
grep -c "catalog-product-img\|related-product-img\|sidebar-sticky" \
    public/template/css/demos/demo-supplements-shop.css
echo "  (debe ser >= 6: ambos productos + sticky aparecen múltiples veces)"

echo
echo "═══ 5. Smoke tests HTTP en producción ═══════════════════════════════"

TS=$(date +%s)

echo "🌐 GET / (welcome):"
curl -s -o /dev/null -w "  HTTP %{http_code} | %{size_download}B | %{time_total}s\n" \
    --max-time 12 "${DOMAIN}/?b=${TS}"

echo "🌐 GET /products-catalogue:"
curl -s -o /tmp/yb-cat.html -w "  HTTP %{http_code} | %{size_download}B | %{time_total}s\n" \
    --max-time 12 "${DOMAIN}/products-catalogue?b=${TS}"

echo "🌐 GET un producto detalle (auto-detect slug):"
SLUG=$(curl -sL --max-time 12 "${DOMAIN}/products-catalogue?b=${TS}" | \
    grep -oE '/products-catalogue/[a-z0-9-]+' | grep -v 'category' | head -1 | \
    sed 's|/products-catalogue/||')
if [ -n "$SLUG" ]; then
    echo "  → slug detectado: $SLUG"
    curl -s -o /tmp/yb-show.html -w "  HTTP %{http_code} | %{size_download}B | %{time_total}s\n" \
        --max-time 12 "${DOMAIN}/products-catalogue/${SLUG}?b=${TS}"
else
    echo "  ⚠️  No se detectó slug en catalog"
fi

echo
echo "═══ 6. Verify rendered HTML tiene los fixes ═════════════════════════"

echo "✓ Catalog: img class incluye img-fluid?"
grep -oE 'class="catalog-product-img[^"]*img-fluid[^"]*"' /tmp/yb-cat.html | head -1
echo
echo "✓ Catalog: sidebar tiene class sticky?"
grep -oE 'class="sidebar sidebar-sticky"' /tmp/yb-cat.html | head -1
echo
echo "✓ Catalog: URLs Cloudinary transformadas w_X,h_X,c_fill?"
grep -oE 'res\.cloudinary\.com[^"]*w_600,h_600,c_fill[^"]*' /tmp/yb-cat.html | wc -l | tr -d ' '
echo "  (>0 = transformaciones aplicadas)"

if [ -f /tmp/yb-show.html ]; then
    echo
    echo "✓ Show: related-product-img cuadrados?"
    grep -oE 'class="[^"]*related-product-img[^"]*"' /tmp/yb-show.html | head -1
    echo
    echo "✓ Show: sidebar sticky?"
    grep -oE 'class="sidebar sidebar-sticky"' /tmp/yb-show.html | head -1
fi

echo
echo "═══════════════════════════════════════════════════════════════════"
echo "✅ Deploy completado"
echo "═══════════════════════════════════════════════════════════════════"
echo
echo "🔗 URLs a smoke-test manualmente (con Cmd+Shift+R para bypass browser cache):"
echo "   ${DOMAIN}/"
echo "   ${DOMAIN}/products-catalogue"
echo "   ${DOMAIN}/products-catalogue/${SLUG:-<slug>}"
echo
