<?php

declare(strict_types=1);

namespace Seka\Vzdelavanie\Services\Pouzivatel\Testovanie;

use Seka\Vzdelavanie\Models\Pouzivatel\Testovanie\Otazka;
use Seka\Vzdelavanie\Models\Testovanie\DruhSpravnejOdpovedeEnum;

/**
 * Class VyhodnotenieOtazky
 *
 * @package Seka\Vzdelavanie\Services\Pouzivatel\Testovanie
 */
final class VyhodnotenieOtazky
{
    /**
     * @param \Seka\Vzdelavanie\Models\Pouzivatel\Testovanie\Otazka $otazka
     * @param int                                                   $pocetSpravnychOdpovedi
     *
     * @return bool
     */
    public static function vyhodnot(Otazka $otazka, int $pocetSpravnychOdpovedi): bool
    {
        $spravneZodpovedanaOtazka = false;

        switch ($otazka->getAttribute('druh_spravnej_odpovede')) {
            case DruhSpravnejOdpovedeEnum::JEDNA():
                $spravneZodpovedanaOtazka = (1 === $pocetSpravnychOdpovedi);
                break;
            case DruhSpravnejOdpovedeEnum::MINIMALNE_JEDNA():
                $spravneZodpovedanaOtazka = (1 <= $pocetSpravnychOdpovedi);
                break;
            case DruhSpravnejOdpovedeEnum::ZIADNA():
                $spravneZodpovedanaOtazka = (0 === $pocetSpravnychOdpovedi);
                break;
            case DruhSpravnejOdpovedeEnum::DVE():
                $spravneZodpovedanaOtazka = (2 === $pocetSpravnychOdpovedi);
                break;
            case DruhSpravnejOdpovedeEnum::TRI():
                $spravneZodpovedanaOtazka = (3 === $pocetSpravnychOdpovedi);
                break;
        }

        return $spravneZodpovedanaOtazka;
    }
}
