<?php

namespace App\Domains\Event\Actions\SignUp;

use App\Models\Event;
use App\Models\Tenant;
use App\ValueObjects\Amount;
use DateTime;

class SignUpRequest {
    function __construct(
        public Event $event,
        public ?int $user_id,
        public string $firstname,
        public string $lastname,
        public ?string $nickname,
        public string $participationType,
        public Tenant $localGroup,
        public DateTime $birthday,
        public string $address_1,
        public ?string $address_2,
        public string $postcode,
        public string $city,
        public string $email_1,
        public ?string $phone_1,
        public ?string $email_2,
        public ?string $phone_2,
        public ?string $contact_person,
        public ?string $allergies,
        public ?string $intolerances,
        public ?string $medications,
        public ?DateTime $tetanus_vaccination,
        public string $eating_habit,
        public ?string $swimming_permission,
        public ?string $first_aid_permission,
        public bool $foto_socialmedia,
        public bool $foto_print,
        public bool $foto_webseite,
        public bool $foto_partner,
        public bool $foto_intern,
        public DateTime $arrival,
        public DateTime $departure,
        public int $arrival_eating,
        public int $departure_eating,
        public ?string $notes,
        public Amount $amount,
        public ?string $paymentMethod,
        public array $paymentOptions = [],
        /** Antworten auf die Teilnahmeoptionen: [ question_key => value ]. */
        public array $participationOptions = [],
        /** Aufgelöste Zusätze (Event-Addons): je Eintrag [ key, title, price, flat, days, amount ]. */
        public array $addonItems = [],
    ) {
    }
}
