#!/bin/bash

echo "🚀 Démarrage de Veza Platform en mode développement..."

# Vérifier si les ports sont disponibles
check_port() {
    if lsof -Pi :$1 -sTCP:LISTEN -t >/dev/null ; then
        echo "⚠️  Le port $1 est déjà utilisé. Arrêt du processus..."
        sudo lsof -ti:$1 | xargs kill -9 2>/dev/null || true
    fi
}

# Vérifier et libérer les ports
check_port 8081
check_port 5176

# Démarrer le backend
echo "📡 Démarrage du backend API..."
cd veza-backend-api
go run simple-server.go &
BACKEND_PID=$!
cd ..

# Attendre que le backend démarre
sleep 3

# Vérifier que le backend fonctionne
if curl -s http://localhost:8081/api/v1/health > /dev/null; then
    echo "✅ Backend API démarré avec succès sur http://localhost:8081"
else
    echo "❌ Erreur: Le backend n'a pas démarré correctement"
    exit 1
fi

# Démarrer le frontend
echo "🌐 Démarrage du frontend web..."
cd veza-frontend
npm run dev &
FRONTEND_PID=$!
cd ..

# Attendre que le frontend démarre
sleep 5

# Vérifier que le frontend fonctionne
if curl -s http://localhost:5176 > /dev/null; then
    echo "✅ Frontend web démarré avec succès sur http://localhost:5176"
else
    echo "❌ Erreur: Le frontend n'a pas démarré correctement"
    exit 1
fi

echo ""
echo "🎉 Veza Platform est maintenant opérationnel !"
echo ""
echo "📱 Applications disponibles:"
echo "   🌐 Web App: http://localhost:5176"
echo "   📊 API Backend: http://localhost:8081"
echo "   📈 Health Check: http://localhost:8081/api/v1/health"
echo ""
echo "🖥️  Pour démarrer l'application desktop:"
echo "   ./start-desktop.sh"
echo ""
echo "⏹️  Pour arrêter tous les services:"
echo "   ./stop-veza.sh"
echo ""

# Fonction de nettoyage
cleanup() {
    echo ""
    echo "🛑 Arrêt des services..."
    kill $BACKEND_PID 2>/dev/null || true
    kill $FRONTEND_PID 2>/dev/null || true
    echo "✅ Services arrêtés"
    exit 0
}

# Capturer Ctrl+C pour arrêter proprement
trap cleanup SIGINT

# Attendre indéfiniment
echo "⏳ Appuyez sur Ctrl+C pour arrêter les services..."
wait 