<?php

namespace Utils\System\Database\Enum;

use Eloquent\Enumeration\AbstractEnumeration;

/**
 * Class StatusNfAutorizadaEnum.
 *
 * @method AUTORIZADA()
 * @method NAO_AUTORIZADA()
 *
 * @author Gabriel Anhaia <gabriel@sadglobal.com.br>
 *
 * @package Utils\System\Database\Enum
 */
class StatusNfAutorizadaEnum extends AbstractEnumeration
{
    /** @var string AUTORIZADA Status de nota fiscal autorizada. */
    const AUTORIZADA = 'autorizada';

    /** @var string NAO_AUTORIZADA Status de nota fiscal não autorizada. */
    const NAO_AUTORIZADA = 'nao_autorizada';

    /**
     * Método responsável por retornar a descrição dos tipos.
     *
     * @return string
     */
    public function getDescription()
    {
        switch ($this->value()) {
            case self::AUTORIZADA:
                return 'Autorizada';
            case self::NAO_AUTORIZADA:
                return 'Não Autorizada';
            default:
                return 'Indefinido';
        }
    }

    /**
     * Monta e retorna um array de options com as constantes do enum.
     *
     * @return array
     */
    public static function mountOption()
    {
        $return = [];

        foreach (self::members() as $type) {
            $return[$type->value()] = $type->getDescription();
        }

        return $return;
    }
}