#!/bin/bash
# build-frontend-correto.sh
# Script para build do frontend no diretório correto

set -e

APP_DIR="/var/www/gestorstream"
FRONTEND_DIR="$APP_DIR/frontend"

echo "🔧 Build do Frontend - Diretório Correto"
echo ""

# Verificar se diretório existe
if [ ! -d "$FRONTEND_DIR" ]; then
    echo "❌ Erro: Diretório $FRONTEND_DIR não encontrado"
    exit 1
fi

cd "$FRONTEND_DIR" || exit 1

echo "📁 Diretório atual: $(pwd)"
echo ""

# Verificar se package.json existe
if [ ! -f "package.json" ]; then
    echo "❌ Erro: package.json não encontrado em $FRONTEND_DIR"
    echo "   Verifique se o diretório frontend está correto"
    exit 1
fi

echo "✅ package.json encontrado"
echo ""

# Ajustar permissões
echo "🔐 Ajustando permissões..."
if [ "$EUID" -eq 0 ]; then
    # Corrigir cache do npm primeiro
    NPM_CACHE="/var/www/.npm"
    if [ -d "$NPM_CACHE" ]; then
        echo "   Corrigindo cache do npm..."
        rm -rf "$NPM_CACHE"
    fi
    mkdir -p "$NPM_CACHE"
    chown -R www-data:www-data "$NPM_CACHE"
    chmod -R 755 "$NPM_CACHE"
    echo "   ✅ Cache do npm corrigido"
    
    # Ajustar permissões do frontend
    chown -R www-data:www-data "$FRONTEND_DIR"
    chmod -R 755 "$FRONTEND_DIR"
    echo "✅ Permissões ajustadas"
else
    echo "⚠️  Execute como root para ajustar permissões automaticamente"
    echo "   Ou execute: sudo bash fix-npm-cache-permissions.sh"
fi
echo ""

# Limpar dist/ se existir
if [ -d "dist" ]; then
    echo "🧹 Removendo dist/ antigo..."
    if [ "$EUID" -eq 0 ]; then
        rm -rf dist
    else
        sudo rm -rf dist
    fi
    echo "✅ dist/ removido"
    echo ""
fi

# Instalar dependências
echo "📦 Instalando dependências..."
echo "   (Isso pode levar alguns minutos...)"
if [ "$EUID" -eq 0 ]; then
    sudo -u www-data npm install --no-audit --no-fund
else
    npm install --no-audit --no-fund
fi

if [ $? -ne 0 ]; then
    echo "❌ Erro ao instalar dependências"
    echo "   Verifique os logs acima para mais detalhes"
    exit 1
fi

echo "✅ Dependências instaladas"
echo ""

# Build
echo "🔨 Executando build..."
echo "   (Isso pode levar alguns minutos...)"
if [ "$EUID" -eq 0 ]; then
    sudo -u www-data npm run build
else
    npm run build
fi

if [ $? -ne 0 ]; then
    echo "❌ Erro no build"
    echo "   Verifique os logs acima para mais detalhes"
    exit 1
fi

echo "✅ Build concluído"
echo ""

# Verificar index.html
if [ -f "dist/index.html" ]; then
    echo "✅ index.html criado com sucesso!"
    ls -lh dist/index.html
    echo ""
    echo "📊 Estrutura do dist/:"
    ls -lh dist/ | head -10
else
    echo "❌ ERRO: index.html não foi criado!"
    echo "   O build pode ter falhado silenciosamente"
    echo "   Verifique os logs do npm acima"
    exit 1
fi

echo ""
echo "=========================================="
echo "✅ Frontend buildado com sucesso!"
echo "=========================================="
echo ""
echo "📋 Próximos passos:"
echo "   1. Verificar se o site está acessível"
echo "   2. Se ainda der erro 403, verificar permissões:"
echo "      ls -la $FRONTEND_DIR/dist/"
echo "   3. Se necessário, ajustar permissões:"
echo "      sudo chown -R www-data:www-data $FRONTEND_DIR/dist/"
echo ""
