#!/bin/bash
set -e

echo "=========================================="
echo "Bot LastWar - Docker Startup Script"
echo "=========================================="

ENVIRONMENT=${APP_ENVIRONMENT:-reod}
echo "Environment: $ENVIRONMENT"

echo "Generando archivo .env desde variables de entorno..."

# Eliminar todos los archivos .env existentes para evitar conflictos
rm -f /var/www/html/bot/.env* 2>/dev/null || true

env | grep -E "^(DB_|JWT_|DISCORD_|TELEGRAM_|LIBRETRANSLATE_|N8N_|APP_|INTERNAL_API_KEY|TEST_ENV_LOAD)" > /tmp/env_vars.txt

# Determinar el nombre del archivo .env según el entorno
if [ "$ENVIRONMENT" = "reod" ]; then
    ENV_FILE="/var/www/html/bot/.env"
else
    ENV_FILE="/var/www/html/bot/.env.${ENVIRONMENT}"
fi

{
    echo "# Auto-generado desde variables de entorno"
    echo "# NO editar manualmente - los cambios se perderán al reiniciar"
    echo ""
    while IFS='=' read -r name value; do
        [ -z "$name" ] && continue
        # Renombrar APP_BASE_URL a APP_URL para compatibilidad con el código
        if [ "$name" = "APP_BASE_URL" ]; then
            echo "APP_URL=${value}"
        else
            echo "${name}=${value}"
        fi
    done < /tmp/env_vars.txt
} > "$ENV_FILE"

rm -f /tmp/env_vars.txt

echo "Archivo .env generado"

if [ -f /var/www/html/bot/composer.json ]; then
    echo "Instalando dependencias de Composer..."
    composer install --no-interaction --optimize-autoloader --no-dev 2>/dev/null || composer install --no-interaction
fi

mkdir -p /var/www/html/bot/logs 2>/dev/null || true
mkdir -p /var/www/html/bot/galeria 2>/dev/null || true
mkdir -p /var/run/supervisor 2>/dev/null || true
chmod -R 777 /var/www/html/bot/logs /var/log/apache2 2>/dev/null || true
touch /var/log/apache2/error.log 2>/dev/null || true
touch /var/log/apache2/access.log 2>/dev/null || true
chmod 666 /var/log/apache2/*.log 2>/dev/null || true
chown -R www-data:www-data /var/www/html/bot/logs /var/log/apache2 2>/dev/null || true

echo "Configurando sitio Apache..."
if [ "$ENVIRONMENT" = "reod" ]; then
    a2ensite reod-dragon.ddns.net.conf 2>/dev/null || true
else
    a2dissite reod-dragon.ddns.net.conf 2>/dev/null || true
fi

echo "Iniciando Supervisor..."
exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
