#!/bin/bash
# Script de démarrage du frontend Veza en environnement lab avec vraie BDD
# Usage: ./scripts/start_lab.sh

set -e

# Couleurs
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m'

SCRIPT_DIR=$(dirname "$0")

echo -e "${GREEN}🚀 Démarrage du frontend Veza en mode Lab${NC}"

# Vérifier que nous sommes dans apps/web
if [ ! -f "package.json" ]; then
    echo -e "${RED}❌ Erreur: Ce script doit être exécuté depuis le répertoire apps/web${NC}"
    exit 1
fi

# 1. Chargement de .env.lab si présent
if [ -f .env.lab ]; then
  echo -e "${YELLOW}📄 Chargement de la configuration depuis .env.lab...${NC}"
  export $(grep -v '^#' .env.lab | xargs)
fi

# 2. Valeurs par défaut (si non définies dans .env.lab)
export VITE_API_URL="${VITE_API_URL:-http://localhost:8080/api/v1}"
export VITE_WS_URL="${VITE_WS_URL:-ws://localhost:8081}"
export VITE_STREAM_URL="${VITE_STREAM_URL:-http://localhost:8082}"
export VITE_USE_MSW="${VITE_USE_MSW:-0}"
export VITE_APP_NAME="${VITE_APP_NAME:-Veza Lab}"

echo -e "${GREEN}📋 Configuration active :${NC}"
echo -e "  API URL   : $VITE_API_URL"
echo -e "  WS URL    : $VITE_WS_URL"
echo -e "  Stream URL: $VITE_STREAM_URL"
echo -e "  Mode MSW  : $VITE_USE_MSW"
echo ""

# 3. Vérification des backends
echo -e "${YELLOW}🔍 Lancement du diagnostic backend...${NC}"
# On appelle le script frère check_backend.sh
if [ -f "$SCRIPT_DIR/check_backend.sh" ]; then
    bash "$SCRIPT_DIR/check_backend.sh" || {
        echo -e "${RED}❌ Échec de la vérification des backends.${NC}"
        echo -e "${YELLOW}   Le frontend risque de ne pas fonctionner correctement.${NC}"
        # On ne bloque pas forcément le start (ou on demande confirmation), 
        # mais ici le check_backend.sh exit 1 si critique. 
        # Si on veut forcer l'arrêt : exit 1
        # L'énoncé dit : "check_backend.sh avant de lancer Vite"
        exit 1
    }
else
    echo -e "${YELLOW}⚠️  Script check_backend.sh introuvable, pas de vérification préalable.${NC}"
fi

# 4. Démarrage
echo ""
echo -e "${GREEN}🌐 Démarrage de Vite...${NC}"
if [ ! -d "node_modules" ]; then
    npm install
fi

# On passe les vars explicitement au cas où vite ne les chope pas par l'export shell (normalement si)
# Mais Vite lit aussi les .env donc attention aux conflits. 
# L'export shell a priorité sur .env files pour process.env, mais Vite config client...
# Vite remplace import.meta.env par les valeurs.
npm run dev
