<?php

declare(strict_types=1);

namespace External\ZNZBundle\Exception;

use KupShop\KupShopBundle\Util\Logging\CustomDataExceptionInterface;

class ZNZException extends \Exception implements CustomDataExceptionInterface
{
    /**
     * Soft chyba znamená, že se daná položka ve frontě změn označí jako zpracovaná a tímpádem nezasekne frontu.
     */
    public const TYPE_SOFT = 1;
    /**
     * Hard chyba znamená, že se daná položka ve frontě změn neoznačí jako zpracovaná a tímpádm může zaseknout frontu.
     */
    public const TYPE_HARD = 2;

    public array $data;
    public int $type;

    public function __construct($message = '', array $data = [], int $type = self::TYPE_SOFT, $code = 0, ?\Throwable $previous = null)
    {
        $this->data = $data;
        $this->type = $type;

        parent::__construct($message, $code, $previous);
    }

    public function getData(): array
    {
        return $this->data;
    }
}
