<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Statistiky\Services\Analyzators\Validators;

use Seka\Portal\Modul\Statistiky\Entities\Zaznam\Enums\DruhPalivaEnum;

/**
 * Class LexicalVozidloDruhPaliva
 *
 * @package Seka\Portal\Modul\Statistiky\Services\Analyzators\Validators
 */
final class LexicalVozidloDruhPaliva extends Lexical
{
    /**
     * @param $input
     *
     * @return bool
     */
    public function validate($input): bool
    {
        parent::validate($input);

        // !!! druh paliva nemusi byt medzi naplnenymi udajmi, moze byt prazdny !!!
        return strlen($input) === 0 || in_array(mb_strtoupper($input), DruhPalivaEnum::toValues());
    }

    /**
     * @param $input
     *
     * @return string
     */
    public function getErrorMsg($input): string
    {
        return sprintf('povolene hodnoty: %s, %s', implode(',', DruhPalivaEnum::toValues()), $input);
    }
}
