<?php

declare(strict_types=1);

namespace App\Framework\Analytics\Bridges;

use App\Framework\Analytics\Listeners\SecurityAnalyticsListener;
use App\Framework\Exception\SecurityEvent\SecurityEventInterface;

/**
 * Bridge zwischen Security-System und Analytics
 *
 * Einfache Bridge die Security-Events an Analytics weiterleitet
 * ohne die ursprünglichen Systeme zu verändern
 */
final readonly class SecurityEventBridge
{
    public function __construct(
        private SecurityAnalyticsListener $analyticsListener,
        private bool $enabled = true
    ) {
    }

    /**
     * Verarbeitet Security-Event und leitet es an Analytics weiter
     */
    public function handleSecurityEvent(SecurityEventInterface $event): void
    {
        if (! $this->enabled) {
            return;
        }

        // Leite an Analytics-Listener weiter
        $this->analyticsListener->handleSecurityEvent($event);
    }

    /**
     * Factory-Methode für einfache Erstellung
     */
    public static function create(SecurityAnalyticsListener $listener, bool $enabled = true): self
    {
        return new self($listener, $enabled);
    }
}
