<?php

declare(strict_types=1);

namespace App\Enum;

trait EnumMethodsTrait
{
    /**
     * @return list<string|int>
     */
    public static function names(): array
    {
        return array_column(self::cases(), 'name');
    }

    /**
     * @return list<string|int>
     */
    public static function values(): array
    {
        return array_column(self::cases(), 'value');
    }

    /**
     * @return array<string, string|int>
     */
    public static function array(): array
    {
        return array_combine(self::names(), self::values());
    }
}
