#!/bin/bash

# Aqui estão algumas sugestões de melhorias para seu script de deploy:

# 1. Adicionar verificação de erros
set -e  # Script para quando encontrar erro

# 2. Backup do banco de dados antes de migrar (opcional)
echo "Iniciando deploy..."

# Garantir que não há alterações locais pendentes
git stash -u || {
    echo "Erro ao fazer stash das alterações locais"
    exit 1
}

# Pull das alterações mais recentes
git pull origin main || {
    echo "Erro ao fazer pull das alterações"
    exit 1
}

# Aplicar alterações locais de volta, se houver
# git stash pop || {
#     # Se não houver stash, isso é normal - não precisa falhar
#     if [ $? -eq 128 ]; then
#         echo "Nenhuma alteração local para restaurar"
#     else
#         echo "Erro ao restaurar alterações locais"
#         exit 1
#     fi
# }

# Atualização do Composer com verificação
echo "Atualizando dependências..."
php composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist || {
    echo "Erro na instalação do Composer"
    exit 1
}

# 3. Colocar aplicação em modo manutenção durante deploy
php artisan down

# Comandos Artisan com verificações
echo "Executando comandos Artisan..."
php artisan optimize:clear
php artisan migrate --seed --force  # Adicionado --force para ambiente de produção
php artisan clear-compiled
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 4. Atualização do NPM (descomentado e com verificação)
echo "Atualizando dependências frontend..."
npm install || {
    echo "Erro na instalação do NPM"
    exit 1
}
npm run production || {
    echo "Erro ao buildar assets"
    exit 1
}

# 5. Voltar aplicação ao normal
php artisan up

# 6. Testes automatizados (opcional)
php artisan test

echo -e "\n✅ Deploy concluído com sucesso!"
echo "Atualização completada para 'KUKURA - DPT'"
