using System.Text.RegularExpressions;

namespace PolyTrader.Core.Security
{
    /// <summary>
    /// Entfernt bekannte Secret-Muster aus Text, der an extern gehostete Dienste (Deploymentcenter:
    /// Watchdog, Fehler-Reporting) geht. Nur die Musterprüfung selbst — Längenbegrenzung und
    /// Zeilenbehandlung entscheidet jeder Aufrufer selbst (eine kurze Statuszeile und ein mehrzeiliger
    /// Stacktrace brauchen unterschiedliche Regeln).
    /// </summary>
    public static class SecretRedactor
    {
        /// <summary>Entfernt Wallet-Adressen/Keys (0x-Hex) und verschlüsselte Secrets (enc:v1:…).</summary>
        public static string RemoveSecrets(string? text)
        {
            if (string.IsNullOrEmpty(text)) return string.Empty;
            string s = Regex.Replace(text, "0x[0-9a-fA-F]{8,}", "0x…");
            s = Regex.Replace(s, @"enc:v1:[A-Za-z0-9+/=]+", "enc:v1:…");
            return s;
        }
    }
}
