64 lines
1.6 KiB
PHP
64 lines
1.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Enums;
|
|
|
|
enum ContentStatus: string
|
|
{
|
|
case Drafting = 'drafting';
|
|
case Filming = 'filming';
|
|
case Editing = 'editing';
|
|
case Review = 'review';
|
|
case Posted = 'posted';
|
|
case Archived = 'archived';
|
|
|
|
public function label(): string
|
|
{
|
|
return match($this) {
|
|
self::Drafting => 'Drafting',
|
|
self::Filming => 'Filming',
|
|
self::Editing => 'Editing',
|
|
self::Review => 'Review',
|
|
self::Posted => 'Posted',
|
|
self::Archived => 'Archived',
|
|
};
|
|
}
|
|
|
|
public function icon(): string
|
|
{
|
|
return match($this) {
|
|
self::Drafting => '✏️',
|
|
self::Filming => '🎬',
|
|
self::Editing => '✂️',
|
|
self::Review => '👁️',
|
|
self::Posted => '✅',
|
|
self::Archived => '📦',
|
|
};
|
|
}
|
|
|
|
public function colorClass(): string
|
|
{
|
|
return match($this) {
|
|
self::Drafting => 'bg-base-200',
|
|
self::Filming => 'bg-warning/20',
|
|
self::Editing => 'bg-info/20',
|
|
self::Review => 'bg-secondary/20',
|
|
self::Posted => 'bg-success/20',
|
|
self::Archived => 'bg-neutral/20',
|
|
};
|
|
}
|
|
|
|
public function badgeClass(): string
|
|
{
|
|
return match($this) {
|
|
self::Drafting => 'badge-ghost',
|
|
self::Filming => 'badge-warning',
|
|
self::Editing => 'badge-info',
|
|
self::Review => 'badge-secondary',
|
|
self::Posted => 'badge-success',
|
|
self::Archived => 'badge-neutral',
|
|
};
|
|
}
|
|
}
|