#!/bin/bash
# Genera el ZIP de entrega del proyecto para instalar en un cliente nuevo.
#
# Usa `git archive`: solo incluye archivos versionados en git, por lo que
# respeta .gitignore automaticamente (nunca incluye .env, vendor/,
# node_modules/, storage/logs/*, etc. porque esos nunca estan trackeados).
set -euo pipefail
cd "$(dirname "$0")/.."

VERSION=$(git rev-parse --short HEAD)
FECHA=$(date +%Y%m%d)
NOMBRE="facturacion-${FECHA}-${VERSION}.zip"
DESTINO="${1:-/tmp/${NOMBRE}}"

git archive --format=zip --output="${DESTINO}" HEAD

echo "Paquete generado: ${DESTINO}"
echo ""
echo "Pasos de instalacion en el servidor del cliente:"
echo "  1. unzip $(basename "${DESTINO}") -d facturacion && cd facturacion"
echo "  2. composer install --no-dev --optimize-autoloader"
echo "  3. npm install && npm run build"
echo "  4. cp .env.example .env"
echo "  5. Configurar el vhost de Apache (ver deploy/apache-vhost*.conf.example)"
echo "  6. php artisan instalador:token"
echo "     (esto genera la APP_KEY y un token; corre por SSH, antes de anunciar el subdominio)"
echo "  7. Visitar la URL que te muestra ese comando (/instalar?token=...) y completar"
echo "     el asistente web: base de datos, migracion y el primer usuario administrador."
echo "     El asistente se autobloquea (404) apenas termina, no hace falta borrar nada."
