#!/usr/bin/env bash
# ═══════════════════════════════════════════════════════════════════════════
# lanzar-alloy.sh — Script de demo para el Episodio #834
# Lanza alloy con Docker Compose en 10 segundos
# ═══════════════════════════════════════════════════════════════════════════

set -e

VERDE='\033[0;32m'
AMARILLO='\033[1;33m'
ROJO='\033[0;31m'
AZUL='\033[0;34m'
NC='\033[0m'

echo -e "${AZUL}╔══════════════════════════════════════════════════════════════╗${NC}"
echo -e "${AZUL}║  🚀 alloy — Dashboard Docker en tiempo real               ║${NC}"
echo -e "${AZUL}║  Episodio #834 — atareao con Linux                         ║${NC}"
echo -e "${AZUL}╚══════════════════════════════════════════════════════════════╝${NC}"
echo ""

# 1. Comprobar prerequisitos
echo -e "${AMARILLO}🔍 Comprobando prerequisitos...${NC}"

if command -v docker &> /dev/null; then
    echo -e "  ${VERDE}✅ Docker encontrado${NC}"
    DOCKER_CMD="docker"
elif command -v podman &> /dev/null; then
    echo -e "  ${VERDE}✅ Podman encontrado${NC}"
    DOCKER_CMD="podman"
else
    echo -e "  ${ROJO}❌ Ni Docker ni Podman están instalados${NC}"
    exit 1
fi

# 2. Comprobar variables OIDC
echo -e "${AMARILLO}🔐 Comprobando configuración OIDC...${NC}"

if [ -f .env ]; then
    source .env
fi

MISSING=0
for var in OIDC_ISSUER_URL OIDC_CLIENT_ID OIDC_CLIENT_SECRET OIDC_REDIRECT_URL; do
    if [ -z "${!var}" ]; then
        echo -e "  ${ROJO}❌ Variable $var no configurada${NC}"
        MISSING=1
    fi
done

if [ $MISSING -eq 1 ]; then
    echo -e "${ROJO}❌ OIDC es OBLIGATORIO. alloy no arranca sin las 4 variables.${NC}"
    exit 1
fi

# 3. Preparar directorio y arrancar
DIR="/opt/alloy"
sudo mkdir -p "$DIR/data"
cd "$DIR"
sudo $DOCKER_CMD compose up -d

echo -e "${VERDE}✅ alloy está corriendo en http://localhost:3066${NC}"