<?php

namespace App\Enums;

enum TrackMaterial: string
{
    case STEEL = 'STEEL';
    case WOOD = 'WOOD';
    case HYBRID = 'HYBRID';

    public function label(): string
    {
        return match($this) {
            self::STEEL => 'Steel',
            self::WOOD => 'Wood',
            self::HYBRID => 'Hybrid',
        };
    }

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

    public static function labels(): array
    {
        return array_map(fn($case) => $case->label(), self::cases());
    }

    public static function options(): array
    {
        return array_combine(self::values(), self::labels());
    }
}