<?php

namespace App\Invoice;

enum BillKind: string
{
    case EMAIL = 'E-Mail';
    case POST = 'Post';
    /**
     * @return array<string, string>
     */
    public static function values(): array
    {
        return collect(static::cases())->map(fn ($case) => $case->value)->toArray();
    }

    /**
     * @return array<int, array{name: string, id: string}>
     */
    public static function forSelect(): array
    {
        return collect(static::cases())
            ->map(fn ($case) => ['id' => $case->value, 'name' => $case->value])
            ->toArray();
    }

    public static function fromValue(string $value): self
    {
        return collect(static::cases())->firstOrFail(fn ($case) => $case->value === $value);
    }
}