<?php

declare(strict_types=1);

namespace App\Logging;

use Illuminate\Log\Logger;

/**
 * Tap для config/logging.php: вешает PiiScrubbingProcessor на канал.
 *
 * Использование: 'tap' => [\App\Logging\ScrubPii::class] в описании канала.
 */
final class ScrubPii
{
    public function __invoke(Logger $logger): void
    {
        // Illuminate\Log\Logger::getLogger() типизирован как PSR LoggerInterface,
        // но фактически возвращает Monolog\Logger (у него есть pushProcessor).
        $monolog = $logger->getLogger();
        if ($monolog instanceof \Monolog\Logger) {
            $monolog->pushProcessor(new PiiScrubbingProcessor);
        }
    }
}
