#!/bin/bash

# Script pour arrêter tous les services Veza

set -e

PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$PROJECT_ROOT"

echo "🛑 Arrêt de tous les services Veza"
echo "=================================="
echo ""

# 1. Arrêter le frontend et le backend (si PIDs sauvegardés)
if [ -f ".service-pids" ]; then
    source .service-pids
    
    if [ -n "$FRONTEND_PID" ]; then
        echo "🛑 Arrêt du frontend (PID: $FRONTEND_PID)..."
        kill $FRONTEND_PID 2>/dev/null || echo "  Frontend déjà arrêté"
    fi
    
    if [ -n "$BACKEND_PID" ]; then
        echo "🛑 Arrêt du backend (PID: $BACKEND_PID)..."
        kill $BACKEND_PID 2>/dev/null || echo "  Backend déjà arrêté"
    fi
    
    rm .service-pids
fi

# 2. Arrêter tous les processus Go et Node restants (sécurité)
echo ""
echo "🧹 Nettoyage des processus orphelins..."

# Tuer les processus backend Go (port 8080)
BACKEND_PIDS=$(lsof -ti:8080 2>/dev/null || true)
if [ -n "$BACKEND_PIDS" ]; then
    echo "  Arrêt des processus sur le port 8080..."
    echo "$BACKEND_PIDS" | xargs kill -9 2>/dev/null || true
fi

# Tuer les processus frontend (port 3001)
FRONTEND_PIDS=$(lsof -ti:3001 2>/dev/null || true)
if [ -n "$FRONTEND_PIDS" ]; then
    echo "  Arrêt des processus sur le port 3001..."
    echo "$FRONTEND_PIDS" | xargs kill -9 2>/dev/null || true
fi

# 3. Arrêter Docker Compose
echo ""
echo "🐳 Arrêt des conteneurs Docker..."
docker-compose down

echo ""
echo "✅ Tous les services ont été arrêtés"
echo ""
echo "💡 Pour redémarrer l'application:"
echo "  ./scripts/quick-start.sh"
echo ""
