<?php

namespace App\EventPaymentModules\DTO;

use App\Models\Event;
use App\Models\EventParticipant;
use App\ValueObjects\Amount;

/**
 * Eingabe für {@see \App\EventPaymentModules\EventPaymentModule::doPayment()}.
 * Von allen Modulen geteilt.
 */
final class DoPaymentRequest
{
    /**
     * @param array<string, mixed> $configuration Aufgelöste (pro-Event-)Konfiguration des Moduls.
     */
    public function __construct(
        public readonly Event $event,
        public readonly EventParticipant $participant,
        public readonly Amount $amount,
        public readonly array $configuration = [],
    ) {
    }
}
