<?php

declare(strict_types=1);

namespace Seka\Portal\Modul\Terminy\Entities\Udalost;

/**
 * Enum DruhUdalosti
 *
 * @package Seka\Portal\Modul\Terminy\Entities\Udalost
 */
enum DruhUdalosti: string
{
    case ZAKLADNE_SKOLENIE = 'ZAKLADNE_SKOLENIE';
    case PRACOVNE_STRETNUTIE = 'PRACOVNE_STRETNUTIE';
    case DOSKOLOVACIE_SKOLENIE = 'DOSKOLOVACIE_SKOLENIE';
    case SKUSKA_ODBORNEJ_SPOSOBILOSTI = 'SKUSKA_ODBORNEJ_SPOSOBILOSTI';
    case SKOLENIE_ADMINISTRATIVNYCH_PRACOVNIKOV = 'SKOLENIE_ADMINISTRATIVNYCH_PRACOVNIKOV';

    /**
     * @return string
     */
    public function label(): string
    {
        return match ($this) {
            self::ZAKLADNE_SKOLENIE => 'základné školenie',
            self::PRACOVNE_STRETNUTIE => 'pracovné stretnutie',
            self::DOSKOLOVACIE_SKOLENIE => 'doškoľovacie školenie',
            self::SKUSKA_ODBORNEJ_SPOSOBILOSTI => 'skúška odbornej spôsobilosti',
            self::SKOLENIE_ADMINISTRATIVNYCH_PRACOVNIKOV => 'školenie administratívnych pracovníkov',
        };
    }

    /**
     * @return string
     */
    public function color(): string
    {
        return match ($this) {
            self::ZAKLADNE_SKOLENIE => '#adbadd',
            self::PRACOVNE_STRETNUTIE => '#c0d1d8',
            self::DOSKOLOVACIE_SKOLENIE => '#efe1e6',
            self::SKUSKA_ODBORNEJ_SPOSOBILOSTI => '#a5a9f1',
            self::SKOLENIE_ADMINISTRATIVNYCH_PRACOVNIKOV => '#ffe959',
        };
    }

    /**
     * @param \Seka\Portal\Modul\Terminy\Entities\Udalost\DruhUdalosti $other
     *
     * @return bool
     */
    public function equal(self $other): bool
    {
        return $this == $other;
    }
}
