<?php

declare(strict_types=1);

namespace App\Enums;

use Filament\Support\Contracts\HasLabel;

enum DisciplinarySeverity: string implements HasLabel
{
    case Low = 'low';
    case Medium = 'medium';
    case High = 'high';

    public function getLabel(): string
    {
        return match ($this) {
            self::Low => __('enums.disciplinary_severity.low'),
            self::Medium => __('enums.disciplinary_severity.medium'),
            self::High => __('enums.disciplinary_severity.high'),
        };
    }

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

    public function color(): string
    {
        return match ($this) {
            self::Low => 'info',
            self::Medium => 'warning',
            self::High => 'danger',
        };
    }

    public function icon(): string
    {
        return match ($this) {
            self::Low => 'heroicon-o-information-circle',
            self::Medium => 'heroicon-o-exclamation-triangle',
            self::High => 'heroicon-o-shield-exclamation',
        };
    }
}
