<?php

namespace App\Domains\Event\Actions\UpdateEvent;

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

class UpdateEventRequest {
    public Event $event;
    public string $eventName;
    public string $eventLocation;
    public string $postalCode;
    public string $email;
    public DateTime $earlyBirdEnd;
    public DateTime $registrationFinalEnd;
    public int $alcoholicsAge;
    public bool $sendWeeklyReports;
    public bool $registrationAllowed;
    public Amount $flatSupport;
    public Amount $supportPerPerson;
    public array $contributingLocalGroups;
    public array $eatingHabits;

    public function __construct(Event $event, string $eventName, string $eventLocation, string $postalCode, string $email, DateTime $earlyBirdEnd, DateTime $registrationFinalEnd, int $alcoholicsAge, bool $sendWeeklyReports, bool $registrationAllowed, Amount $flatSupport, Amount $supportPerPerson, array $contributingLocalGroups, array $eatingHabits)
    {
        $this->event = $event;
        $this->eventName = $eventName;
        $this->eventLocation = $eventLocation;
        $this->postalCode = $postalCode;
        $this->email = $email;
        $this->earlyBirdEnd = $earlyBirdEnd;
        $this->registrationFinalEnd = $registrationFinalEnd;
        $this->alcoholicsAge = $alcoholicsAge;
        $this->sendWeeklyReports = $sendWeeklyReports;
        $this->registrationAllowed = $registrationAllowed;
        $this->flatSupport = $flatSupport;
        $this->supportPerPerson = $supportPerPerson;
        $this->contributingLocalGroups = $contributingLocalGroups;
        $this->eatingHabits = $eatingHabits;
    }
}
