#!/bin/bash

# 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 -e "${BLUE}╔════════════════════════════════════════════╗${NC}"
echo -e "${BLUE}║   � Mode Développement Mobile Activé     ║${NC}"
echo -e "${BLUE}╚════════════════════════════════════════════╝${NC}"
echo ""

# Vérifier le réseau actuel
NETWORK=$(ifconfig en0 | grep "inet " | awk '{print $2}')
echo -e "${YELLOW}📡 Votre IP locale : ${NETWORK}${NC}"
echo ""

# Afficher un avertissement
echo -e "${YELLOW}⚠️  AVERTISSEMENT SÉCURITÉ${NC}"
echo -e "   Le pare-feu macOS va être temporairement désactivé"
echo -e "   ✓ Utilisez uniquement sur un réseau de confiance"
echo -e "   ✓ Sera réactivé automatiquement à l'arrêt (Ctrl+C)"
echo ""

read -p "Continuer ? (o/n) " -n 1 -r
echo ""

if [[ ! $REPLY =~ ^[Oo]$ ]]; then
    echo -e "${RED}❌ Opération annulée${NC}"
    exit 1
fi

echo ""
echo -e "${GREEN}🔓 Désactivation du pare-feu...${NC}"
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate off

echo -e "${GREEN}✓ Pare-feu désactivé${NC}"
echo ""
echo -e "${BLUE}🚀 Démarrage du serveur Next.js...${NC}"
echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
echo ""

# Fonction pour réactiver le pare-feu
cleanup() {
    echo ""
    echo ""
    echo -e "${YELLOW}🛑 Arrêt détecté...${NC}"
    echo -e "${GREEN}🔒 Réactivation du pare-feu...${NC}"
    sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on
    
    # Vérifier que c'est bien réactivé
    STATUS=$(sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate)
    if [[ $STATUS == *"enabled"* ]]; then
        echo -e "${GREEN}✅ Pare-feu réactivé avec succès !${NC}"
    else
        echo -e "${RED}⚠️  Erreur : Le pare-feu n'a pas été réactivé !${NC}"
        echo -e "${RED}   Exécutez manuellement :${NC}"
        echo -e "${RED}   sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setglobalstate on${NC}"
    fi
    echo ""
    exit
}

# Capturer les signaux d'arrêt
trap cleanup INT TERM EXIT

# Démarrer le serveur
cd "$(dirname "$0")"
npm run dev:network

# Note : cleanup() sera appelé automatiquement grâce au trap EXIT
