<?php

declare(strict_types=1);

namespace Plugin\tnt_stabila_shop\src\DomainObjects;

use Plugin\tnt_stabila_shop\src\Enums\PageType;
use Sentry\EventType;
use Sentry\ExceptionDataBag;
use Sentry\Severity;

class StabilaEventDTO
{
    /**
     * StabilaEventDTO constructor.
     *
     * @param object $appState Application state at the time of the event.
     * @param ExceptionDataBag[] $exceptions List of exceptions associated with the event.
     */
    public function __construct(
        public string $sentryEventID,
        public string $shopVersion,
        public string $databaseVersion,
        public string $activeTemplate,
        public string $filePath,
        public string $functionName,
        public float $totalExecTime,
        public PageType $pageType,
        public object $appState,
        public string $shopLanguage,
        public string $shopCurrency,
        public int $cartCount,
        public string $cartItems,
        public string $deliveryCountry,
        public string $invoiceCountry,
        public string $taxRates,
        public string $userBrowser,
        public int $userID,
        public StabilaRequestDTO $request,
        public array $exceptions,
        public EventType $eventType,
        public Severity $severity,
        public float $timestamp,
    ) {
    }
}
