#!/bin/bash
# ========================================
# SEO Generator Server - Launcher Linux/WSL
# ========================================

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

echo ""
echo "========================================"
echo "  SEO Generator Server - Launcher"
echo "========================================"
echo ""

# Vérifier que Node.js est installé
if ! command -v node &> /dev/null; then
    echo -e "${RED}[ERREUR]${NC} Node.js n'est pas installé ou pas dans le PATH"
    echo ""
    echo "Installez Node.js avec:"
    echo "  sudo apt-get update"
    echo "  sudo apt-get install nodejs npm"
    echo ""
    exit 1
fi

echo -e "${GREEN}[OK]${NC} Node.js détecté: $(node --version)"

# Vérifier que npm est installé
if ! command -v npm &> /dev/null; then
    echo -e "${RED}[ERREUR]${NC} npm n'est pas installé"
    exit 1
fi

echo -e "${GREEN}[OK]${NC} npm détecté: $(npm --version)"
echo ""

# Vérifier que package.json existe
if [ ! -f "package.json" ]; then
    echo -e "${RED}[ERREUR]${NC} package.json introuvable"
    echo "Assurez-vous d'être dans le bon dossier"
    exit 1
fi

# Vérifier que .env existe
if [ ! -f ".env" ]; then
    echo -e "${YELLOW}[ATTENTION]${NC} Fichier .env introuvable"
    echo "Le serveur risque de ne pas fonctionner correctement"
    echo ""
    read -p "Continuer quand même? (y/N) " -n 1 -r
    echo ""
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# Vérifier que node_modules existe, sinon installer
if [ ! -d "node_modules" ]; then
    echo -e "${BLUE}[INFO]${NC} Installation des dépendances..."
    npm install
    if [ $? -ne 0 ]; then
        echo -e "${RED}[ERREUR]${NC} Erreur lors de l'installation des dépendances"
        exit 1
    fi
    echo ""
fi

# Vérifier que le dossier configs existe
if [ ! -d "configs" ]; then
    echo -e "${BLUE}[INFO]${NC} Création du dossier configs..."
    mkdir -p configs
fi

echo "========================================"
echo "  Démarrage du serveur..."
echo "========================================"
echo ""
echo -e "${GREEN}Mode:${NC} MANUAL"
echo -e "${GREEN}Port:${NC} 3000"
echo -e "${GREEN}WebSocket:${NC} 8081"
echo ""
echo -e "${BLUE}Interface disponible sur:${NC}"
echo "  http://localhost:3000"
echo ""
echo -e "${YELLOW}Appuyez sur Ctrl+C pour arrêter le serveur${NC}"
echo "========================================"
echo ""

# Option pour ouvrir automatiquement le navigateur (si disponible)
# DÉSACTIVÉ par défaut pour accélérer le démarrage
# Décommentez les lignes suivantes si vous voulez l'option interactive
# if command -v xdg-open &> /dev/null; then
#     read -p "Ouvrir le navigateur automatiquement? (y/N) " -n 1 -r
#     echo ""
#     if [[ $REPLY =~ ^[Yy]$ ]]; then
#         # Attendre 2 secondes que le serveur démarre
#         (sleep 2 && xdg-open http://localhost:3000) &
#     fi
# fi

# ⚡ DÉMARRAGE RAPIDE: Ouvrir le navigateur automatiquement en background
if command -v xdg-open &> /dev/null; then
    (sleep 3 && xdg-open http://localhost:3000) &> /dev/null &
fi

# Démarrer le serveur en mode MANUAL
npm start

# Si le serveur s'arrête
echo ""
echo "========================================"
echo "  Serveur arrêté"
echo "========================================"
