53 lines
1.6 KiB
Plaintext
53 lines
1.6 KiB
Plaintext
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
use Filament\Support\Contracts\HasDescription;
|
|
use Filament\Support\Contracts\HasIcon;
|
|
use Filament\Support\Contracts\HasLabel;
|
|
use ToneGabes\BetterOptions\Contracts\HasExtraText;
|
|
use ToneGabes\Filament\Icons\Enums\Phosphor;
|
|
|
|
enum Plan: string implements HasDescription, HasExtraText, HasIcon, HasLabel
|
|
{
|
|
case Standard = 'standard';
|
|
case Smart = 'smart';
|
|
case Premium = 'premium';
|
|
|
|
public function getDescription(): string
|
|
{
|
|
return match ($this) {
|
|
self::Standard => 'Zahlungen können für jedes Gutachten einzeln getätigt werden',
|
|
self::Smart => 'Zahlung erfolgt monatlich, ohne Begrenzung für die erstellten Gutachten',
|
|
self::Premium => 'Zahlung erfolgt jährlich, ohne Begrenzung für die erstellten Gutachten, Gutachter oder Auftraggeber',
|
|
};
|
|
}
|
|
|
|
public function getExtraText(): string
|
|
{
|
|
return match ($this) {
|
|
self::Standard => 'model.standard',
|
|
self::Smart => 'model.smart',
|
|
self::Premium => 'model.premium',
|
|
};
|
|
}
|
|
|
|
public function getIcon(): string
|
|
{
|
|
return match ($this) {
|
|
self::Standard => Phosphor::Airplane->thin(),
|
|
self::Smart => Phosphor::AirplaneTakeoff->thin(),
|
|
self::Premium => Phosphor::AirplaneInFlight->thin(),
|
|
};
|
|
}
|
|
|
|
public function getLabel(): ?string
|
|
{
|
|
return match ($this) {
|
|
self::Standard => 'Per Gutachten',
|
|
self::Smart => 'Monatlich',
|
|
self::Premium => 'Jährlich',
|
|
};
|
|
}
|
|
}
|