#!/bin/bash

echo "╔════════════════════════════════════════════════════════════════════╗"
echo "║                  VALIDATION COMPLÈTE DU CORRECTIF                  ║"
echo "╚════════════════════════════════════════════════════════════════════╝"
echo ""

ERRORS=0

# Test 1: Syntaxe Python
echo "🔍 Test 1: Validation syntaxe Python..."
if python3 -m py_compile /var/www/lucas/analyze.py 2>/dev/null; then
    echo "   ✅ Syntaxe valide"
else
    echo "   ❌ Erreur de syntaxe"
    ERRORS=$((ERRORS+1))
fi
echo ""

# Test 2: Import du module
echo "🔍 Test 2: Import du module analyze..."
if python3 -c "import sys; sys.path.insert(0, '/var/www/lucas'); import analyze" 2>/dev/null; then
    echo "   ✅ Import réussi"
else
    echo "   ❌ Échec d'import"
    ERRORS=$((ERRORS+1))
fi
echo ""

# Test 3: Tests de robustesse JSON
echo "🔍 Test 3: Tests de robustesse JSON..."
if python3 /var/www/lucas/test_json_robustness.py 2>&1 | grep -q "8 réussis, 0 échoués"; then
    echo "   ✅ 8/8 tests passés"
else
    echo "   ❌ Certains tests ont échoué"
    ERRORS=$((ERRORS+1))
fi
echo ""

# Test 4: Vérification des fichiers créés
echo "🔍 Test 4: Vérification des fichiers..."
FILES=(
    "/var/www/lucas/analyze.py"
    "/var/www/lucas/check_gemini_health.py"
    "/var/www/lucas/test_json_robustness.py"
    "/var/www/lucas/test_analyze_full.py"
    "/var/www/lucas/GEMINI_FIX_README.md"
    "/var/www/lucas/CORRECTIF_TECHNIQUE.md"
    "/var/www/lucas/CHANGELOG_v2.0.md"
)

for FILE in "${FILES[@]}"; do
    if [ -f "$FILE" ]; then
        echo "   ✅ $(basename $FILE)"
    else
        echo "   ❌ $(basename $FILE) manquant"
        ERRORS=$((ERRORS+1))
    fi
done
echo ""

# Test 5: Vérification des permissions
echo "🔍 Test 5: Vérification des permissions..."
if [ -x "/var/www/lucas/analyze.py" ]; then
    echo "   ✅ analyze.py est exécutable"
else
    echo "   ⚠️  analyze.py n'est pas exécutable"
fi
echo ""

# Test 6: Taille du fichier principal
echo "🔍 Test 6: Vérification taille analyze.py..."
SIZE=$(stat -f%z /var/www/lucas/analyze.py 2>/dev/null || stat -c%s /var/www/lucas/analyze.py 2>/dev/null)
if [ "$SIZE" -gt "10000" ]; then
    echo "   ✅ Taille: $SIZE octets (contenu significatif)"
else
    echo "   ❌ Taille: $SIZE octets (trop petit)"
    ERRORS=$((ERRORS+1))
fi
echo ""

# Résumé
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
if [ $ERRORS -eq 0 ]; then
    echo "✅ VALIDATION RÉUSSIE - Tous les tests sont passés"
    echo ""
    echo "Le correctif est prêt pour la production."
    echo "Vous pouvez monitorer avec: python3 /var/www/lucas/check_gemini_health.py"
    exit 0
else
    echo "❌ VALIDATION ÉCHOUÉE - $ERRORS erreur(s) détectée(s)"
    echo ""
    echo "Veuillez corriger les erreurs avant de déployer."
    exit 1
fi
