<?php

namespace App\Enums;

enum {{name}}: {{type}}
{
    {{states}}

    public static function getValues(): array
    {
        return array_column(self::cases(), 'value');
    }

    public static function getLabels(): array
    {
        return array_column(self::cases(), 'name');
    }

    public static function getLabel($string): string
    {
        $enum = self::tryFrom($string);
        if ($enum) {
            $formatted = str_replace('_', ' ', strtolower($enum->name));
            $formatted = ucwords($formatted);
            return str_replace(' ', '', $formatted);
        }
        return '';
    }

    public static function getValue(string $label): ?int
    {
        foreach (self::cases() as $case) {
            if ($case->name === strtoupper($label)) {
                return $case->value;
            }
        }
        return null;
    }
}
