<?php

declare(strict_types=1);

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

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

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

        // !!! emisny system nemusi byt medzi naplnenymi udajmi, moze byt prazdny !!!
        return strlen($input) === 0 || collect(EmisnySystemEnum::cases())->map(fn($case) => $case->value)->contains(mb_strtoupper($input));
    }

    /**
     * @param $input
     *
     * @return string
     */
    public function getErrorMsg($input): string
    {
        return sprintf('povolene hodnoty: %s, %s', collect(EmisnySystemEnum::cases())->map(fn($case) => $case->value)->implode(','), $input);
    }
}
