#!/bin/bash

# Скрипт проверки настройки Google Safe Browsing API
# Использование: ./scripts/check-google-safe-browsing.sh

echo "🔍 Проверка настройки Google Safe Browsing API"
echo "================================================"

# Проверяем наличие .env файла
if [ ! -f .env ]; then
    echo "❌ Файл .env не найден"
    exit 1
fi

# Загружаем переменные окружения
source .env

echo ""
echo "📋 Текущие настройки:"
echo "GOOGLE_SAFE_BROWSING_API_KEY: ${GOOGLE_SAFE_BROWSING_API_KEY:-'не настроен'}"
echo "GOOGLE_SAFE_BROWSING_ENABLED: ${GOOGLE_SAFE_BROWSING_ENABLED:-'не настроен'}"
echo "GOOGLE_SAFE_BROWSING_CLIENT_ID: ${GOOGLE_SAFE_BROWSING_CLIENT_ID:-'не настроен'}"
echo "GOOGLE_SAFE_BROWSING_CLIENT_VERSION: ${GOOGLE_SAFE_BROWSING_CLIENT_VERSION:-'не настроен'}"

echo ""
echo "🔧 Проверка конфигурации Laravel..."

# Проверяем конфигурацию через Artisan
if command -v php &> /dev/null; then
    echo "✅ PHP найден, проверяем конфигурацию..."
    
    # Проверяем, что Laravel работает
    if php artisan --version &> /dev/null; then
        echo "✅ Laravel работает"
        
        # Проверяем конфигурацию валидации
        echo ""
        echo "📊 Конфигурация валидации ссылок:"
        php artisan config:show links.validation.google_safe_browsing 2>/dev/null || echo "❌ Конфигурация не найдена"
        
    else
        echo "❌ Laravel не работает"
    fi
else
    echo "❌ PHP не найден"
fi

echo ""
echo "🌐 Проверка доступности API..."

# Проверяем доступность Google Safe Browsing API
if [ ! -z "$GOOGLE_SAFE_BROWSING_API_KEY" ]; then
    echo "✅ API ключ настроен, проверяем доступность..."
    
    # Тестируем API с тестовым URL
    TEST_URL="http://testsafebrowsing.appspot.com/s/malware.html"
    
    RESPONSE=$(curl -s -X POST "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=$GOOGLE_SAFE_BROWSING_API_KEY" \
        -H "Content-Type: application/json" \
        -d "{
            \"client\": {
                \"clientId\": \"${GOOGLE_SAFE_BROWSING_CLIENT_ID:-skleroznik-api}\",
                \"clientVersion\": \"${GOOGLE_SAFE_BROWSING_CLIENT_VERSION:-1.0.0}\"
            },
            \"threatInfo\": {
                \"threatTypes\": [\"MALWARE\"],
                \"platformTypes\": [\"ANY_PLATFORM\"],
                \"threatEntryTypes\": [\"URL\"],
                \"threatEntries\": [{\"url\": \"$TEST_URL\"}]
            }
        }" 2>/dev/null)
    
    if [ $? -eq 0 ]; then
        if echo "$RESPONSE" | grep -q "matches"; then
            echo "✅ API работает корректно (обнаружена тестовая угроза)"
        elif echo "$RESPONSE" | grep -q "error"; then
            echo "❌ API вернул ошибку: $RESPONSE"
        else
            echo "✅ API работает (тестовая ссылка безопасна)"
        fi
    else
        echo "❌ Ошибка подключения к API"
    fi
else
    echo "⚠️  API ключ не настроен"
fi

echo ""
echo "📝 Рекомендации:"

if [ -z "$GOOGLE_SAFE_BROWSING_API_KEY" ]; then
    echo "1. Получите API ключ в Google Cloud Console"
    echo "2. Добавьте GOOGLE_SAFE_BROWSING_API_KEY в .env файл"
    echo "3. Включите Safe Browsing API в проекте"
    echo "4. Ограничьте API ключ по доменам и API"
elif [ "$GOOGLE_SAFE_BROWSING_ENABLED" != "true" ]; then
    echo "1. Установите GOOGLE_SAFE_BROWSING_ENABLED=true в .env"
    echo "2. Перезапустите приложение"
else
    echo "✅ Google Safe Browsing API настроен корректно"
fi

echo ""
echo "📚 Документация: docs/GOOGLE_SAFE_BROWSING_SETUP.md"
echo "🔗 Google Cloud Console: https://console.cloud.google.com/"
