#!/bin/bash

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

# Récupère le nom du thème à supprimer
THEME="$1"

# === 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 un thème a été spécifié
if [[ -z "$THEME" ]]; then
  echo "❌ Aucun thème spécifié. Utilisation : ./caddy.sh remove [theme]"
  exit 1
fi

# Vérifie si le thème existe dans la configuration
if [[ -z "${THEMES[$THEME]}" ]]; then
  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"

echo
echo "🧹 Suppression complète du thème '$THEME'..."
echo

# 1. WP-CLI cleanup si présent
# Exécute la commande de nettoyage du thème si elle existe
if command -v wp >/dev/null 2>&1; then
  echo "⚙️  Exécution de 'wp $THEME:cleanup'..."
  echo
  wp "$THEME:cleanup" || echo "⚠️  Commande '$THEME:cleanup' absente ou échouée"
  echo
else
  echo "⚠️  WP-CLI non disponible, aucun nettoyage exécuté"
  echo
fi

# 2. Supprimer le package Composer si encore là
# Vérifie si le package est installé via Composer et le supprime
if composer show "$PACKAGE" >/dev/null 2>&1; then
  echo "🧹 Suppression de $PACKAGE via Composer..."
  echo
  composer remove "$PACKAGE"
  echo
fi

# 3. Supprimer le repo custom s'il existe
# Nettoie la configuration Composer en supprimant le repository personnalisé
composer config --unset "repositories.$THEME" || true

# 4. Supprimer symlink ou dossier
# Supprime le thème selon son type (symlink ou dossier)
if [ -L "$THEME_PATH" ]; then
  echo "🔗 Symlink détecté → suppression"
  rm "$THEME_PATH"
elif [ -d "$THEME_PATH" ]; then
  echo "📁 Dossier détecté → suppression"
  rm -rf "$THEME_PATH"
else
  echo "❓ Aucun fichier ou lien trouvé pour '$THEME'"
fi

echo
echo "✅ Thème '$THEME' supprimé proprement."
