HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/globfdxw/www/wp-content/plugins/give/src/EventTickets/ViewModels/EventDetails.php
<?php

namespace Give\EventTickets\ViewModels;

use Give\DonationForms\Models\DonationForm;
use Give\EventTickets\Actions\AttachAttendeeDataToTicketData;
use Give\EventTickets\DataTransferObjects\EventTicketTypeData;
use Give\EventTickets\Models\Event;
use Give\EventTickets\Models\EventTicketType;

/**
 * @since 3.6.0
 */
class EventDetails
{

    /**
     * @since 3.6.0
     * @var Event
     */
    protected $event;

    /**
     * @since 3.6.0
     */
    public function __construct(Event $event)
    {
        $this->event = $event;
    }

    /**
     * @since 3.6.0
     */
    public function exports(): array
    {
        $tickets = $this->event->eventTickets()->getAll() ?? [];

        return array_merge($this->event->toArray(), [
            'ticketTypes' => array_map(function (EventTicketType $ticketType) {
                return EventTicketTypeData::make($ticketType)->toArray();
            }, $this->event->ticketTypes()->getAll() ?? []),
            'forms' => array_map(function (DonationForm $form) {
                return ['id' => $form->id, 'title' => $form->title];
            }, $this->event->forms()->getAll() ?? []),
            'tickets' => array_map(new AttachAttendeeDataToTicketData($tickets), $tickets),
        ]);
    }
}