#!/bin/bash
# Instalacion correo UrbanGamers (Gmail SMTP)
# Uso: bash install.sh
#      bash install.sh hostlanty@gmail.com

set -e

MAIL_DIR="/var/www/servidor/mail"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

echo "=========================================="
echo " UrbanGamers - Correo Gmail SMTP"
echo "=========================================="

echo "[1/3] Copiando archivos..."
mkdir -p "$MAIL_DIR"
cp -f "$SCRIPT_DIR/send.php" "$MAIL_DIR/send.php"
cp -f "$SCRIPT_DIR/smtp.php" "$MAIL_DIR/smtp.php"
cp -f "$SCRIPT_DIR/config.example.php" "$MAIL_DIR/config.example.php"

if [ ! -f "$MAIL_DIR/config.php" ]; then
    API_KEY=$(openssl rand -hex 16 2>/dev/null || head -c 16 /dev/urandom | xxd -p | tr -d '\n')
    cat > "$MAIL_DIR/config.php" << EOF
<?php
return [
    'api_key' => '${API_KEY}',
    'from_email' => 'hostlanty@gmail.com',
    'from_name'  => 'UrbanGamers',
    'smtp' => [
        'host'       => 'smtp.gmail.com',
        'port'       => 587,
        'encryption' => 'tls',
        'username'   => 'hostlanty@gmail.com',
        'password'   => 'PON_CONTRASEŅA_DE_APLICACION',
    ],
];
EOF
    echo "[2/3] config.php creado."
    echo ""
    echo "IMPORTANTE: edita la contraseņa de aplicacion Gmail:"
    echo "  nano ${MAIL_DIR}/config.php"
    echo "  https://myaccount.google.com/apppasswords"
else
    API_KEY=$(php -r '$c=require "'"$MAIL_DIR"'/config.php"; echo $c["api_key"];')
    echo "[2/3] config.php ya existe."
fi

chown -R www-data:www-data "$MAIL_DIR"
chmod 755 "$MAIL_DIR"
chmod 644 "$MAIL_DIR/send.php" "$MAIL_DIR/smtp.php"
chmod 640 "$MAIL_DIR/config.php"

TEST_EMAIL="${1:-hostlanty@gmail.com}"

echo "[3/3] Probando..."
HTTP=$(curl -s -o /tmp/ug-mail-test.txt -w "%{http_code}" \
    -X POST "http://127.0.0.1/mail/send.php" \
    -H "Host: models.hostlanty.com" \
    --data-urlencode "key=${API_KEY}" \
    --data-urlencode "email=${TEST_EMAIL}" \
    --data-urlencode "code=123456" \
    --data-urlencode "type=register")

echo ""
echo "=========================================="
echo " RESULTADO: HTTP ${HTTP} -> $(cat /tmp/ug-mail-test.txt)"
echo "=========================================="
echo ""
echo "Gamemode (email_verify.pwn):"
echo "  #define EMAIL_API_HOST  \"models.hostlanty.com/mail/send.php\""
echo "  #define EMAIL_API_KEY   \"${API_KEY}\""
echo ""
if [ "$HTTP" = "200" ] && grep -q '^ok$' /tmp/ug-mail-test.txt 2>/dev/null; then
    echo "OK - Revisa ${TEST_EMAIL}"
else
    echo "Si sale smtp_error: pon la contraseņa de aplicacion en config.php"
    echo "Logs: tail -f /var/log/nginx/error.log"
fi
echo "=========================================="
