#!/bin/bash

# Arrête l'exécution du script si une commande échoue
set -e

# Récupère le mode d'installation (symlink ou git) et le nom du thème
MODE="$1"
THEME="$2"

# === Charger les utilitaires et la config ===
# Charge les fonctions utilitaires communes
source ./config/richkit/scripts/utils.sh
# Charge la configuration des thèmes
source_config

# === Valider le thème demandé ===
# Vérifie si le thème demandé existe dans la configuration
if [[ -z "${THEMES[$THEME]}" ]]; then
  echo
  echo "❌ Thème '$THEME' inconnu."
  echo
  show_themes
  exit 1
fi

# Définit le nom du package Composer et le chemin du thème
PACKAGE="myclientisrich/$THEME"
THEME_PATH="web/app/themes/$THEME"

# === Si le thème est déjà installé, demander confirmation ===
# Vérifie si le thème existe déjà (symlink ou dossier)
if [ -L "$THEME_PATH" ] || [ -d "$THEME_PATH" ]; then
  echo
  echo "⚠️  Le thème '$THEME' est déjà installé."
  ask_confirm "Le supprimer et le réinstaller ? (cela va tout virer)"
  ./caddy.sh remove "$THEME"
  echo
fi

# === Installation SYMLINK ===
# Mode développement : utilise un lien symbolique vers le dossier local
if [[ "$MODE" == "symlink" ]]; then
  echo
  echo "🔗 Installation du thème '$THEME' en mode SYMLINK..."
  # Configure le repository Composer pour utiliser un chemin local
  composer config repositories.$THEME "{\"type\": \"path\", \"url\": \"${LOCAL_PATHS[$THEME]}\", \"options\": {\"symlink\": true}}"
  echo
  composer require $PACKAGE:*

# === Installation GIT ===
# Mode production : clone depuis le dépôt Git
elif [[ "$MODE" == "git" ]]; then
  echo
  echo "📆 Installation du thème '$THEME' en mode GIT..."
  # Configure le repository Composer pour utiliser Git
  composer config repositories.$THEME "{\"type\": \"vcs\", \"url\": \"${GIT_URLS[$THEME]}\"}"
  echo

  # Vérifie la présence d'un fichier d'authentification pour Git
  if [ -f "./auth.json" ]; then
    echo "🔐 Authentification Composer détectée."
  else
    echo "⚠️ Aucune auth.json trouvée. Si Git est privé, pense à la copier."
  fi

  echo
  # Installe le thème depuis la branche master
  composer require $PACKAGE:dev-master

else
  echo "❌ Mode d'installation inconnu : '$MODE'"
  exit 1
fi

echo
echo "🎯 Installation terminée pour le thème '$THEME'."

# === Activer le thème via WP-CLI ===
echo
echo "🚀 Activation du thème '$THEME' dans WordPress..."
# Active le thème dans WordPress
wp theme activate "$THEME"
# Tente d'activer les plugins associés au thème si la commande existe
if wp cli has-command "$THEME:activate"; then
  echo "⚙️  Activation des plugins via WP-CLI..."
  wp "$THEME:activate"
else
  echo "⚠️  La commande '$THEME:activate' n'est pas dispo."
fi
echo

# === Supprimer TwentyTwentyFive s'il est là ===
# Nettoie en supprimant le thème par défaut de WordPress
if wp theme is-installed twentytwentyfive; then
  echo "🧹 Suppression du thème par défaut TwentyTwentyFive..."
  wp theme delete twentytwentyfive
else
  echo "✅ Le thème TwentyTwentyFive n'est pas installé. Rien à supprimer."
fi

echo
echo "✅ Tout est prêt, le thème '$THEME' est actif !"
