<?php

namespace App\Domains\Event\Actions\SetPaymentMethods;

use App\Models\Event;

class SetPaymentMethodsRequest
{
    public Event $event;

    /**
     * Gewünschte Zahlungsmethoden-Slugs für das Event.
     *
     * @var array<int, string>
     */
    public array $paymentMethods;

    /**
     * Optionale pro-Event-Config-Overrides je Zahlungsmethode: [slug => [option => value]].
     * Fehlt ein Slug, bleibt die bestehende Config erhalten bzw. wird beim ersten Zuweisen
     * aus der Tenant-Config als Snapshot kopiert.
     *
     * @var array<string, array<string, mixed>>
     */
    public array $paymentMethodConfigurations;

    public function __construct(Event $event, array $paymentMethods, array $paymentMethodConfigurations = [])
    {
        $this->event = $event;
        $this->paymentMethods = $paymentMethods;
        $this->paymentMethodConfigurations = $paymentMethodConfigurations;
    }
}
