#!/bin/bash
#############################################
# Script para Corrigir Autenticação MySQL
#############################################

set -e

echo "🔧 Corrigindo autenticação MySQL..."
echo ""

# Gerar senha aleatória
DB_PASS=$(openssl rand -base64 12 | tr -d "=+/" | cut -c1-12)
DB_NAME="gs_DerenBox"

echo "Criando usuário 'gestorstream' para a aplicação..."
echo "Senha gerada: $DB_PASS"
echo ""

# Criar usuário no MySQL
echo "Executando comandos SQL..."

# Tentar primeiro sem sudo, depois com sudo
if mysql -u root -e "SELECT 1;" &>/dev/null 2>&1; then
    MYSQL_CMD="mysql -u root"
    echo "Usando: mysql -u root"
else
    MYSQL_CMD="sudo mysql -u root"
    echo "Usando: sudo mysql -u root"
fi

$MYSQL_CMD << EOF
CREATE USER IF NOT EXISTS 'gestorstream'@'localhost' IDENTIFIED BY '$DB_PASS';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO 'gestorstream'@'localhost';
FLUSH PRIVILEGES;
EOF

if [ $? -ne 0 ]; then
    echo "❌ Falha ao criar usuário no MySQL"
    exit 1
fi

echo "✅ Usuário criado com sucesso!"
echo ""

# Atualizar .env
cd /var/www/gestorstream/backend

if [ ! -f ".env" ]; then
    echo "❌ Arquivo .env não encontrado em /var/www/gestorstream/backend"
    exit 1
fi

sed -i 's/DB_USERNAME=.*/DB_USERNAME=gestorstream/' .env
sed -i "s|DB_PASSWORD=.*|DB_PASSWORD=$DB_PASS|" .env

echo "✅ .env atualizado"
echo ""
echo "📝 Credenciais salvas:"
echo "   DB_USERNAME=gestorstream"
echo "   DB_PASSWORD=$DB_PASS"
echo ""

# Limpar cache
php artisan config:clear

# Testar conexão
echo "🧪 Testando conexão e executando migrações..."
if php artisan migrate --force; then
    echo ""
    echo "✅ SUCESSO! Conexão OK e migrações executadas!"
    echo ""
    echo "✨ Pronto! Agora você pode continuar a instalação."
else
    echo ""
    echo "❌ Ainda há problemas. Verifique os erros acima."
    exit 1
fi
