Files
panel-pelican-dev/app/Enums/ServerState.php

47 lines
1.3 KiB
PHP
Raw Normal View History

2024-04-18 03:48:30 -04:00
<?php
namespace App\Enums;
use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasIcon;
use Filament\Support\Contracts\HasLabel;
enum ServerState: string implements HasColor, HasIcon, HasLabel
2024-04-18 03:48:30 -04:00
{
2024-04-20 22:55:21 -04:00
case Normal = 'normal';
2024-04-18 03:48:30 -04:00
case Installing = 'installing';
case InstallFailed = 'install_failed';
case ReinstallFailed = 'reinstall_failed';
case Suspended = 'suspended';
case RestoringBackup = 'restoring_backup';
public function getIcon(): string
2024-04-18 03:48:30 -04:00
{
return match ($this) {
2024-04-20 22:55:21 -04:00
self::Normal => 'tabler-heart',
2024-04-18 03:48:30 -04:00
self::Installing => 'tabler-heart-bolt',
self::InstallFailed => 'tabler-heart-x',
self::ReinstallFailed => 'tabler-heart-x',
self::Suspended => 'tabler-heart-cancel',
self::RestoringBackup => 'tabler-heart-up',
};
}
public function getColor(): string
2024-04-18 03:48:30 -04:00
{
return match ($this) {
2024-04-20 22:55:21 -04:00
self::Normal => 'primary',
2024-04-29 21:34:27 -04:00
self::Installing => 'primary',
2024-04-18 03:48:30 -04:00
self::InstallFailed => 'danger',
self::ReinstallFailed => 'danger',
2024-04-29 21:34:27 -04:00
self::Suspended => 'warning',
self::RestoringBackup => 'primary',
2024-04-18 03:48:30 -04:00
};
}
public function getLabel(): string
{
return str($this->value)->headline();
}
2024-04-18 03:48:30 -04:00
}