#!/usr/bin/env bash
# ============================================================================
# SafeDoc — restaure EN LOCAL un texte anonymise (jeton -> valeur d'origine).
# 100% local : aucun appel reseau. Utilise la table sauvegardee par
# safedoc-anonymize.sh.
#
# Usage :
#   ./safedoc-restore.sh <fichier.safedoc-map.json>   (texte anonymise sur stdin)
#   echo "[PERSONNE_1] habite [ADRESSE_1]" | ./safedoc-restore.sh contrat.pdf.safedoc-map.json
# ============================================================================
set -euo pipefail
MAP="${1:?Usage: safedoc-restore.sh <map.json>  (texte anonymise sur stdin)}"
[ -f "$MAP" ] || { echo "Table introuvable: $MAP" >&2; exit 1; }

# heredoc capture dans une variable -> stdin reste le texte anonymise a restaurer
PYSRC="$(cat <<'PYEOF'
import os, sys, json
m = json.load(open(os.environ["SAFEDOC_MAP"], encoding="utf-8"))   # {valeur_originale: jeton}
txt = sys.stdin.read()
for original, token in sorted(m.items(), key=lambda kv: len(str(kv[1])), reverse=True):
    txt = txt.replace(str(token), str(original))
sys.stdout.write(txt)
PYEOF
)"
SAFEDOC_MAP="$MAP" python3 -c "$PYSRC"
