namespace Kompas.Mcp.Core.Validation;

/// <summary>Разбор настройки авто-валидации из окружения (отдельно от COM — чтобы покрыть тестами).</summary>
public static class AutoValidationSettings
{
    /// <summary>Имя переменной окружения, задающей режим при старте сервера.</summary>
    public const string EnvironmentVariable = "KOMPAS_MCP_AUTOVALIDATE";

    /// <summary>
    /// Включена ли авто-валидация. По умолчанию (переменная не задана) — да.
    /// Выключают значения 0 | false | off | no | disabled (регистр не важен, пробелы обрезаются).
    /// </summary>
    public static bool ParseEnabled(string? value)
    {
        if (string.IsNullOrWhiteSpace(value)) return true;
        return value.Trim().ToLowerInvariant() switch
        {
            "0" or "false" or "off" or "no" or "disabled" => false,
            _ => true,
        };
    }

    /// <summary>Прочитать режим из переменной окружения процесса.</summary>
    public static bool ReadFromEnvironment()
        => ParseEnabled(Environment.GetEnvironmentVariable(EnvironmentVariable));
}
