<?php

namespace App\EventPaymentModules\DTO;

use App\Models\EventParticipant;

/**
 * Eingabe für {@see \App\EventPaymentModules\EventPaymentModule::registrationSummary()}.
 *
 * Anker ist der (bereits erstellte) Teilnehmer -- daraus leiten die Module Event, Betrag/Restbetrag
 * und Verwendungszweck ab. $configuration ist die aufgelöste pro-Event-Config des Zahlungsmoduls,
 * $context steuert die kontextabhängige Ausgabe (z.B. GiroCode-Einbettung Web vs. Mail).
 */
final class RegistrationSummaryRequest
{
    /**
     * @param array<string, mixed> $configuration
     */
    public function __construct(
        public readonly EventParticipant $participant,
        public readonly array $configuration = [],
        public readonly RegistrationRenderContext $context = RegistrationRenderContext::Web,
    ) {
    }
}
