#!/bin/bash

# Script de démarrage pour UnionFlow Client - Développement Local
# Usage: ./start-local.sh

echo "🚀 Démarrage de UnionFlow Client en mode développement local"
echo "============================================================"
echo ""

# Vérification des prérequis
echo "📋 Vérification des prérequis..."

# Vérifier Java
if ! command -v java &> /dev/null; then
    echo "❌ Java n'est pas installé. Veuillez installer Java 17+"
    exit 1
fi

JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | cut -d'.' -f1)
if [ "$JAVA_VERSION" -lt 17 ]; then
    echo "❌ Java 17+ requis. Version actuelle: $JAVA_VERSION"
    exit 1
fi
echo "✅ Java $JAVA_VERSION détecté"

# Vérifier Maven
if ! command -v mvn &> /dev/null; then
    echo "❌ Maven n'est pas installé. Veuillez installer Maven 3.8+"
    exit 1
fi
echo "✅ Maven détecté"

# Vérifier Keycloak
echo ""
echo "🔍 Vérification de Keycloak sur http://localhost:8180..."
if curl -s http://localhost:8180 > /dev/null; then
    echo "✅ Keycloak est accessible"
else
    echo "⚠️  Keycloak ne répond pas sur http://localhost:8180"
    echo "   Assurez-vous que Keycloak est démarré avant de continuer."
    read -p "   Voulez-vous continuer quand même? (y/N) " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# Vérifier le backend (optionnel)
echo ""
echo "🔍 Vérification du backend sur http://localhost:8085..."
if curl -s http://localhost:8085 > /dev/null; then
    echo "✅ Backend est accessible"
else
    echo "⚠️  Backend ne répond pas sur http://localhost:8085"
    echo "   L'application fonctionnera mais les appels API échoueront."
fi

# Charger les variables d'environnement depuis .env si présent
if [ -f .env ]; then
    echo ""
    echo "📄 Chargement des variables d'environnement depuis .env..."
    export $(cat .env | grep -v '^#' | xargs)
    echo "✅ Variables chargées"
else
    echo ""
    echo "⚠️  Fichier .env non trouvé"
    echo "   Créez un fichier .env depuis .env.example si nécessaire"
fi

# Afficher la configuration
echo ""
echo "⚙️  Configuration actuelle:"
echo "   - Port application: 8086"
echo "   - Keycloak: http://localhost:8180"
echo "   - Backend: ${UNIONFLOW_BACKEND_URL:-http://localhost:8085}"
echo "   - Client Secret: ${KEYCLOAK_CLIENT_SECRET:-[non défini, utilise valeur par défaut]}"

# Démarrer l'application
echo ""
echo "🚀 Démarrage de l'application..."
echo ""
echo "============================================================"
echo "Une fois démarré, accédez à: http://localhost:8086"
echo "Pour arrêter: Ctrl+C"
echo "============================================================"
echo ""

# Démarrer avec Quarkus dev mode
./mvnw quarkus:dev
