#!/bin/bash
# ========================================
# SEO Generator Server - Setup Checker
# Vérifie que tout est prêt avant lancement
# ========================================

# Couleurs
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

echo ""
echo "========================================"
echo "  SEO Generator - Vérification Setup"
echo "========================================"
echo ""

ERRORS=0
WARNINGS=0

# 1. Vérifier Node.js
echo -n "🔍 Node.js... "
if command -v node &> /dev/null; then
    VERSION=$(node --version)
    echo -e "${GREEN}OK${NC} ($VERSION)"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

# 2. Vérifier npm
echo -n "🔍 npm... "
if command -v npm &> /dev/null; then
    VERSION=$(npm --version)
    echo -e "${GREEN}OK${NC} ($VERSION)"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

# 3. Vérifier package.json
echo -n "🔍 package.json... "
if [ -f "package.json" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

# 4. Vérifier node_modules
echo -n "🔍 node_modules... "
if [ -d "node_modules" ]; then
    COUNT=$(find node_modules -maxdepth 1 -type d | wc -l)
    echo -e "${GREEN}OK${NC} ($COUNT packages)"
else
    echo -e "${YELLOW}MANQUANT${NC} (lancez: npm install)"
    WARNINGS=$((WARNINGS + 1))
fi

# 5. Vérifier .env
echo -n "🔍 .env... "
if [ -f ".env" ]; then
    echo -e "${GREEN}OK${NC}"

    # Vérifier variables critiques
    echo ""
    echo "  Variables d'environnement:"

    if grep -q "GOOGLE_SERVICE_ACCOUNT_EMAIL" .env; then
        echo -e "  ✓ GOOGLE_SERVICE_ACCOUNT_EMAIL"
    else
        echo -e "  ${YELLOW}✗ GOOGLE_SERVICE_ACCOUNT_EMAIL manquante${NC}"
        WARNINGS=$((WARNINGS + 1))
    fi

    if grep -q "GOOGLE_PRIVATE_KEY" .env; then
        echo -e "  ✓ GOOGLE_PRIVATE_KEY"
    else
        echo -e "  ${YELLOW}✗ GOOGLE_PRIVATE_KEY manquante${NC}"
        WARNINGS=$((WARNINGS + 1))
    fi

    if grep -q "GOOGLE_SHEETS_ID" .env; then
        echo -e "  ✓ GOOGLE_SHEETS_ID"
    else
        echo -e "  ${YELLOW}✗ GOOGLE_SHEETS_ID manquante${NC}"
        WARNINGS=$((WARNINGS + 1))
    fi

    if grep -q "ANTHROPIC_API_KEY" .env; then
        echo -e "  ✓ ANTHROPIC_API_KEY"
    else
        echo -e "  ${YELLOW}✗ ANTHROPIC_API_KEY manquante${NC}"
        WARNINGS=$((WARNINGS + 1))
    fi

else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo ""

# 6. Vérifier dossiers requis
echo -n "🔍 Dossier configs/... "
if [ -d "configs" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${YELLOW}MANQUANT${NC} (sera créé automatiquement)"
    WARNINGS=$((WARNINGS + 1))
fi

echo -n "🔍 Dossier public/... "
if [ -d "public" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo -n "🔍 Dossier lib/... "
if [ -d "lib" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo ""

# 7. Vérifier fichiers critiques
echo -n "🔍 lib/ConfigManager.js... "
if [ -f "lib/ConfigManager.js" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo -n "🔍 public/index.html... "
if [ -f "public/index.html" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo -n "🔍 public/config-editor.html... "
if [ -f "public/config-editor.html" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo -n "🔍 public/production-runner.html... "
if [ -f "public/production-runner.html" ]; then
    echo -e "${GREEN}OK${NC}"
else
    echo -e "${RED}MANQUANT${NC}"
    ERRORS=$((ERRORS + 1))
fi

echo ""
echo "========================================"
echo "  Résumé"
echo "========================================"
echo ""

if [ $ERRORS -eq 0 ] && [ $WARNINGS -eq 0 ]; then
    echo -e "${GREEN}✅ Tout est prêt !${NC}"
    echo ""
    echo "Vous pouvez lancer le serveur avec :"
    echo "  ./start-server.sh"
    echo "  OU"
    echo "  npm start"
    exit 0
elif [ $ERRORS -eq 0 ]; then
    echo -e "${YELLOW}⚠️  $WARNINGS avertissement(s)${NC}"
    echo ""
    echo "Le serveur peut démarrer mais certaines fonctionnalités"
    echo "pourraient ne pas fonctionner correctement."
    echo ""
    echo "Recommandation :"
    echo "  - Vérifiez le fichier .env"
    echo "  - Lancez: npm install"
    exit 0
else
    echo -e "${RED}❌ $ERRORS erreur(s) détectée(s)${NC}"
    if [ $WARNINGS -gt 0 ]; then
        echo -e "${YELLOW}⚠️  $WARNINGS avertissement(s)${NC}"
    fi
    echo ""
    echo "Corrigez les erreurs avant de lancer le serveur."
    exit 1
fi
