#!/bin/bash

# Script rápido para executar testes de segurança no SGSE
# Uso: ./teste_rapido.sh [tipo_teste]

echo "🛡️  Teste de Segurança SGSE - Execução Rápida"
echo ""

# Obter diretório do script
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
VENV_DIR="$SCRIPT_DIR/venv_seguranca"

# Verificar se Python está instalado
if ! command -v python3 &> /dev/null; then
    echo "❌ Python 3 não encontrado. Por favor, instale Python 3.8+"
    exit 1
fi

# Criar ambiente virtual se não existir
if [ ! -d "$VENV_DIR" ]; then
    echo "📦 Criando ambiente virtual..."
    cd "$SCRIPT_DIR"
    python3 -m venv venv_seguranca
    source venv_seguranca/bin/activate
    pip install requests > /dev/null 2>&1
    echo "✅ Ambiente virtual criado e dependências instaladas"
else
    # Ativar ambiente virtual
    source "$VENV_DIR/bin/activate"
fi

# Verificar se requests está instalado
if ! python3 -c "import requests" 2>/dev/null; then
    echo "⚠️  Biblioteca 'requests' não encontrada. Instalando..."
    pip install requests
fi

# Tipo de teste (padrão: todos)
TIPO_TESTE=${1:-todos}

# URL base (pode ser alterada via variável de ambiente)
URL_BASE=${SGSE_URL:-http://localhost:5173}
CONVEX_URL=${CONVEX_URL:-http://127.0.0.1:3210}

echo "📍 URL Base: $URL_BASE"
echo "📍 Convex URL: $CONVEX_URL"
echo ""

# Executar teste
case $TIPO_TESTE in
    brute_force|sql_injection|xss|ddos|path_traversal|command_injection|nosql|xxe)
        echo "🔍 Executando teste: $TIPO_TESTE"
        python3 "$SCRIPT_DIR/teste_seguranca.py" --url "$URL_BASE" --convex-url "$CONVEX_URL" --teste "$TIPO_TESTE"
        ;;
    todos)
        echo "🔍 Executando TODOS os testes..."
        python3 "$SCRIPT_DIR/teste_seguranca.py" --url "$URL_BASE" --convex-url "$CONVEX_URL"
        ;;
    *)
        echo "❌ Tipo de teste inválido: $TIPO_TESTE"
        echo ""
        echo "Tipos disponíveis:"
        echo "  - brute_force"
        echo "  - sql_injection"
        echo "  - xss"
        echo "  - ddos"
        echo "  - path_traversal"
        echo "  - command_injection"
        echo "  - nosql"
        echo "  - xxe"
        echo "  - todos (padrão)"
        exit 1
        ;;
esac

echo ""
echo "✅ Teste concluído!"

