Files
keystone/app/Enums/ServiceCategory.php
2025-04-07 12:16:11 +01:00

35 lines
986 B
PHP

<?php
namespace App\Enums;
use App\Enums\Concerns\Arrayable;
enum ServiceCategory: string
{
use Arrayable;
case DATABASE = 'database';
case APPLICATION = 'application';
case GATEWAY = 'gateway';
case STORAGE = 'storage';
case CACHE = 'cache';
public static function getDescription(ServiceCategory|string $category)
{
if (is_string($category)) {
$category = ServiceCategory::from($category);
}
if (! $category instanceof ServiceCategory) {
throw new \InvalidArgumentException('Invalid category provided');
}
return match ($category) {
self::APPLICATION => 'The base container image for your application',
self::DATABASE => 'Postgres or MySQL',
self::GATEWAY => 'The first point of contact for your application',
self::STORAGE => 'S3 or S3-compatible service',
self::CACHE => 'Redis, Memcached or similar',
};
}
}