<?php
declare(strict_types=1);

namespace App\Application\System;

use App\Framework\Core\Events\ErrorOccurred;
use App\Framework\Core\Events\OnEvent;

final readonly class ErrorLogger
{
    /**
     * Logger für aufgetretene Fehler
     */
    #[OnEvent(priority: 10)]
    public function logError(ErrorOccurred $event): void
    {
        $time = $event->occurredAt->format('Y-m-d H:i:s');
        $requestId = $event->requestId ? "[Request: {$event->requestId}]" : '';
        $message = "[{$time}] ERROR {$requestId} {$event->context}: {$event->error->getMessage()}";

        // In einer produktiven Umgebung würden wir hier in eine Datei oder einen Service loggen
        error_log($message);
    }
}
