#!/usr/bin/env bash
# Restore — desempaqueta backup y mueve archivos al destino
# Uso: bash scripts/restore-from-backup.sh <tarball.tar.gz>
#
# Restaura todo el contenido del backup a /home/zen-admin/projects/active/lan-media
# NO restaura admin/.env (debe recrearse a mano por seguridad).
set -euo pipefail

if [ $# -lt 1 ]; then
  echo "Uso: $0 <backup.tar.gz>"
  echo ""
  echo "Backups disponibles en \$HOME:"
  ls -1t "$HOME"/karaoke-backup-*.tar.gz 2>/dev/null || echo "  (ninguno)"
  exit 1
fi

TARBALL="$1"
if [ ! -f "$TARBALL" ]; then
  echo "ERROR: no existe $TARBALL"
  exit 1
fi

DEST="/home/zen-admin/projects/active/lan-media"
if [ ! -d "$DEST" ]; then
  echo "ERROR: directorio destino no existe: $DEST"
  echo "  Crea primero el directorio o ajusta DEST en este script."
  exit 1
fi

TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT

echo "▶ Desempaquetando $TARBALL en $TMP..."
tar -xzf "$TARBALL" -C "$TMP"

EXTRACTED=$(ls "$TMP" | head -1)
if [ -z "$EXTRACTED" ]; then
  echo "ERROR: tarball vacío o malformado"
  exit 1
fi

echo "▶ Sincronizando contenido a $DEST..."
if ! command -v rsync &>/dev/null; then
  echo "  ⚠ rsync no disponible — usando cp -r"
  cp -r "$TMP/$EXTRACTED/." "$DEST/"
else
  rsync -a "$TMP/$EXTRACTED/" "$DEST/"
fi

echo ""
echo "✓ Restore completo a $DEST"
echo ""
echo "  RECORDATORIOS:"
echo "  1. Crear admin/.env (NO se restaura por seguridad):"
echo "       cat > $DEST/admin/.env <<'EOF'"
echo "       ADMIN_USER=diego"
echo "       ADMIN_PASSWORD=D13g0\$\$2026"
echo "       EOF"
echo "       chmod 600 $DEST/admin/.env"
echo ""
echo "  2. Verificar permisos ejecutables de scripts:"
echo "       chmod +x $DEST/scripts/*.sh"
echo ""
echo "  3. Instalar dependencias si la máquina es nueva:"
echo "       pip3 install -r $DEST/requirements-admin.txt"
echo "       pip3 install websockets"
echo "       sudo apt install -y pulseaudio-utils ffmpeg npm"
echo ""
echo "  4. Arrancar el stack:"
echo "       cd $DEST && bash scripts/start-event.sh"
echo ""
