# 🔧 Correção Rápida: Erro vendor/autoload.php não encontrado

## ❌ Problema

Durante a instalação, o erro ocorreu:
```
PHP Fatal error: Failed opening required '/var/www/gestorstream/backend/vendor/autoload.php'
```

Ou erro do Composer:
```
Warning: The lock file is not up to date with the latest changes in composer.json
Required package "aws/aws-sdk-php" is not present in the lock file
```

Isso significa que o `composer install` não completou com sucesso, geralmente porque:
1. O `composer.lock` está desatualizado em relação ao `composer.json`
2. Um pacote foi adicionado ao `composer.json` mas não está no `composer.lock`

## ✅ Solução Rápida

Execute estes comandos no servidor:

```bash
# 1. Ir para o diretório do backend
cd /var/www/gestorstream/backend

# 2. Verificar se composer.json existe
ls -la composer.json

# 3. Permitir superuser (evita avisos)
export COMPOSER_ALLOW_SUPERUSER=1

# 4. Limpar cache do Composer
composer clear-cache

# 5. Tentar instalar dependências
composer install --no-dev --optimize-autoloader --no-interaction

# 6. Se falhar com erro "lock file is not up to date" ou "not present in the lock file"
# Isso significa que composer.lock está desatualizado, fazer update:
composer update --no-dev --optimize-autoloader --no-interaction

# 7. Verificar se vendor foi criado
ls -la vendor/autoload.php

# 8. Se vendor/autoload.php existe, continuar com a configuração
```

## 🔄 Continuar Instalação Manualmente

Após corrigir o Composer, continue a instalação:

```bash
cd /var/www/gestorstream/backend

# 1. Criar .env se não existir
if [ ! -f ".env" ]; then
    cp .env.example .env
    # Editar .env com suas configurações
    nano .env
fi

# 2. Gerar chave da aplicação
php artisan key:generate --force

# 3. Executar migrações
php artisan migrate --force

# 4. Criar usuário admin (ajustar email e senha)
php artisan tinker
# No tinker:
# DB::table('users')->insert([
#     'name' => 'Administrador',
#     'email' => 'seu-email@exemplo.com',
#     'password' => Hash::make('sua-senha'),
#     'role' => 'admin',
#     'email_verified_at' => now(),
#     'created_at' => now(),
#     'updated_at' => now()
# ]);
# exit

# 5. Cache
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 6. Frontend
cd /var/www/gestorstream/frontend
npm install
npm run build

# 7. Permissões
cd /var/www/gestorstream
chown -R www-data:www-data .
chmod -R 775 .
chmod +x backend/artisan
chmod -R 777 backend/storage backend/bootstrap/cache

# 8. Reiniciar serviços
systemctl restart gestorstream-backend gestorstream-worker nginx
```

## 🔍 Diagnóstico

Se o `composer install` continuar falhando, verifique:

```bash
# Ver versão do Composer
composer --version

# Ver versão do PHP
php -v

# Ver extensões PHP necessárias
php -m | grep -E "mbstring|xml|curl|zip|gd|mysql|redis"

# Ver permissões do diretório
ls -la /var/www/gestorstream/backend/

# Ver espaço em disco
df -h

# Ver logs do Composer
composer install --no-dev --optimize-autoloader -vvv
```

## 📝 Nota

O script `install-production.sh` foi atualizado para:
- Verificar se `vendor/autoload.php` existe após `composer install`
- Mostrar erros do Composer (removido --quiet)
- Parar a instalação se o Composer falhar
- Tentar `composer update` se `composer install` falhar

Para uma nova instalação, use a versão atualizada do script.
