#!/usr/bin/env bash
# Contrôle post-build : la feuille du thème Filament compilée doit contenir
# plusieurs centaines de règles .dark, sinon le purge Tailwind a éliminé les
# variantes sombres (défaut vu sur Mobdie v1.2) et le build est refusé.
set -euo pipefail

SEUIL="${1:-500}"
BUILD_DIR="$(dirname "$0")/../public/build"

THEME_CSS=$(ls "$BUILD_DIR"/assets/theme-*.css 2>/dev/null | head -1)
if [ -z "$THEME_CSS" ]; then
    echo "ERREUR : aucun fichier theme-*.css dans public/build/assets — lancer npm run build." >&2
    exit 1
fi

NB_DARK=$(grep -o '\.dark' "$THEME_CSS" | wc -l | tr -d ' ')
echo "Feuille du thème : $THEME_CSS"
echo "Occurrences de .dark : $NB_DARK (seuil : $SEUIL)"

if [ "$NB_DARK" -lt "$SEUIL" ]; then
    echo "ÉCHEC : le CSS compilé ne contient que $NB_DARK occurrences de .dark (< $SEUIL)." >&2
    echo "Le purge Tailwind a probablement éliminé les variantes sombres — corriger avant livraison." >&2
    exit 1
fi

# v2.0 : l'espace apprenant a sa PROPRE feuille, indépendante du thème Filament. Un purge qui
# n'éliminerait que ses variantes sombres passerait inaperçu ici sans ce second contrôle — et
# 95 % des visites de cet espace viennent d'un téléphone, souvent en mode sombre.
SEUIL_FORMATION="${2:-40}"
FORMATION_CSS=$(ls "$BUILD_DIR"/assets/formation-*.css 2>/dev/null | head -1)
if [ -z "$FORMATION_CSS" ]; then
    echo "ERREUR : aucun fichier formation-*.css dans public/build/assets — lancer npm run build." >&2
    exit 1
fi

NB_DARK_FORMATION=$(grep -o '\.dark' "$FORMATION_CSS" | wc -l | tr -d ' ')
echo "Feuille de l'espace apprenant : $FORMATION_CSS"
echo "Occurrences de .dark : $NB_DARK_FORMATION (seuil : $SEUIL_FORMATION)"

if [ "$NB_DARK_FORMATION" -lt "$SEUIL_FORMATION" ]; then
    echo "ÉCHEC : la feuille de l'espace apprenant ne contient que $NB_DARK_FORMATION occurrences de .dark (< $SEUIL_FORMATION)." >&2
    exit 1
fi

echo "OK : le mode sombre est bien présent dans les deux feuilles compilées."
