#!/bin/bash

# Script para otimizar o deploy - vendor/ mantido no servidor
# Este script é executado ANTES do deploy para preparar os arquivos

echo "🚀 Otimizando deploy - vendor/ será mantido no servidor..."

# Verificar se o vendor/ existe (opcional - pode não existir no pipeline)
if [ -d "vendor" ]; then
    echo "✅ Pasta vendor/ encontrada (será mantida no servidor)"
else
    echo "ℹ️  Pasta vendor/ não encontrada (normal - será mantida no servidor)"
fi

# Verificar se composer.lock existe
if [ ! -f "composer.lock" ]; then
    echo "❌ Arquivo composer.lock não encontrado!"
    exit 1
fi

echo "✅ Arquivo composer.lock encontrado"

# Verificar se as dependências estão atualizadas
echo "🔍 Verificando dependências..."
if ! composer validate --no-check-publish 2>/dev/null; then
    echo "⚠️ Aviso: composer.json pode ter problemas, mas continuando..."
fi

# Otimizar autoloader do Composer (se vendor/ existir)
if [ -d "vendor" ]; then
    echo "⚡ Otimizando autoloader do Composer..."
    composer dump-autoload --optimize --no-dev --classmap-authoritative
    
    # Verificar tamanho da pasta vendor
    vendor_size=$(du -sh vendor/ | cut -f1)
    echo "📊 Tamanho da pasta vendor/: $vendor_size"
    
    # Verificar se há arquivos de desenvolvimento no vendor
    dev_files=$(find vendor/ -name "*.md" -o -name "*.txt" -o -name "tests" -o -name "test" | wc -l)
    echo "📋 Arquivos de desenvolvimento encontrados: $dev_files"
else
    echo "ℹ️  Pasta vendor/ não encontrada - autoloader será otimizado no servidor"
    vendor_size="N/A"
    dev_files="N/A"
fi

echo "✅ Deploy otimizado! A pasta vendor/ será mantida no servidor."
echo ""
echo "📋 Informações do deploy:"
echo "  - Tamanho vendor/: $vendor_size"
echo "  - Arquivos dev: $dev_files"
echo "  - Upload vendor/: ❌ (mantido no servidor)"
echo ""
echo "🎯 Próximos passos:"
echo "  1. O pipeline fará upload APENAS do código"
echo "  2. A pasta vendor/ será mantida no servidor"
echo "  3. Execute 'composer install' manualmente quando necessário"
