<?php

declare(strict_types=1);

namespace App\Enums;

use Filament\Support\Contracts\HasLabel;

enum VacationType: string implements HasLabel
{
    case Annual = 'annual';
    case Marriage = 'marriage';
    case Study = 'study';
    case Other = 'other';

    public function getLabel(): string
    {
        return match ($this) {
            self::Annual => __('enums.vacation_type.annual'),
            self::Marriage => __('enums.vacation_type.marriage'),
            self::Study => __('enums.vacation_type.study'),
            self::Other => __('enums.vacation_type.other'),
        };
    }

    public function label(): string
    {
        return $this->getLabel();
    }

    public function color(): string
    {
        return match ($this) {
            self::Annual => 'primary',
            self::Marriage => 'pink',
            self::Study => 'info',
            self::Other => 'gray',
        };
    }

    public function icon(): string
    {
        return match ($this) {
            self::Annual => 'heroicon-o-sun',
            self::Marriage => 'heroicon-o-heart',
            self::Study => 'heroicon-o-academic-cap',
            self::Other => 'heroicon-o-calendar-days',
        };
    }
}
