fix enums

This commit is contained in:
Saeed Vaziry 2024-11-01 22:08:02 +01:00
parent 37a4b6af51
commit f743611b22
6 changed files with 67 additions and 55 deletions

View File

@ -2,6 +2,7 @@
namespace App\Actions\PHP;
use App\Enums\PHP;
use App\Enums\ServiceStatus;
use App\Models\Server;
use App\Models\Service;
@ -40,7 +41,7 @@ public static function rules(Server $server): array
'version' => [
'required',
Rule::in(config('core.php_versions')),
Rule::notIn($server->installedPHPVersions()),
Rule::notIn(array_merge($server->installedPHPVersions(), [PHP::NONE])),
],
];
}

View File

@ -18,6 +18,12 @@ final class Database
const MARIADB104 = 'mariadb104';
const MARIADB106 = 'mariadb1006';
const MARIADB1011 = 'mariadb1011';
const MARIADB114 = 'mariadb114';
const POSTGRESQL12 = 'postgresql12';
const POSTGRESQL13 = 'postgresql13';

View File

@ -19,6 +19,7 @@ public function creationRules(array $input): array
'version' => [
'required',
Rule::in(config('core.php_versions')),
Rule::notIn([\App\Enums\PHP::NONE]),
Rule::unique('services', 'version')
->where('type', 'php')
->where('server_id', $this->service->server_id),

View File

@ -2,6 +2,8 @@
namespace App\ServerTypes;
use Illuminate\Validation\Rule;
class Regular extends AbstractType
{
public function createRules(array $input): array
@ -13,7 +15,7 @@ public function createRules(array $input): array
],
'php' => [
'required',
'in:none,'.implode(',', config('core.php_versions')),
Rule::in(config('core.php_versions')),
],
'database' => [
'required',

View File

@ -3,6 +3,7 @@
namespace App\Web\Pages\Servers\PHP;
use App\Actions\PHP\InstallNewPHP;
use App\Enums\PHP;
use App\Models\Service;
use App\Web\Pages\Servers\Page;
use App\Web\Pages\Servers\PHP\Widgets\PHPList;
@ -43,7 +44,7 @@ protected function getHeaderActions(): array
Select::make('version')
->options(
collect(config('core.php_versions'))
->filter(fn ($version) => ! in_array($version, $installedPHPs))
->filter(fn ($version) => ! in_array($version, array_merge($installedPHPs, [PHP::NONE])))
->mapWithKeys(fn ($version) => [$version => $version])
->toArray()
)

View File

@ -18,65 +18,66 @@
\App\Enums\OperatingSystem::UBUNTU22,
\App\Enums\OperatingSystem::UBUNTU24,
],
'webservers' => ['none', 'nginx'],
'webservers' => [
\App\Enums\Webserver::NONE,
\App\Enums\Webserver::NGINX,
],
'php_versions' => [
// 'none',
// '5.6',
'7.0',
'7.1',
'7.2',
'7.3',
'7.4',
'8.0',
'8.1',
'8.2',
'8.3',
\App\Enums\PHP::NONE,
\App\Enums\PHP::V70,
\App\Enums\PHP::V71,
\App\Enums\PHP::V72,
\App\Enums\PHP::V73,
\App\Enums\PHP::V74,
\App\Enums\PHP::V80,
\App\Enums\PHP::V81,
\App\Enums\PHP::V82,
\App\Enums\PHP::V83,
],
'databases' => [
'none',
'mysql57',
'mysql80',
'mariadb103',
'mariadb104',
'mariadb106',
'mariadb1011',
'mariadb114',
'postgresql12',
'postgresql13',
'postgresql14',
'postgresql15',
'postgresql16',
\App\Enums\Database::NONE,
\App\Enums\Database::MYSQL57,
\App\Enums\Database::MYSQL80,
\App\Enums\Database::MARIADB103,
\App\Enums\Database::MARIADB104,
\App\Enums\Database::MARIADB106,
\App\Enums\Database::MARIADB1011,
\App\Enums\Database::MARIADB114,
\App\Enums\Database::POSTGRESQL12,
\App\Enums\Database::POSTGRESQL13,
\App\Enums\Database::POSTGRESQL14,
\App\Enums\Database::POSTGRESQL15,
\App\Enums\Database::POSTGRESQL16,
],
'databases_name' => [
'none' => 'none',
'mysql57' => 'mysql',
'mysql80' => 'mysql',
'mariadb103' => 'mariadb',
'mariadb104' => 'mariadb',
'mariadb106' => 'mariadb',
'mariadb1011' => 'mariadb',
'mariadb114' => 'mariadb',
'postgresql12' => 'postgresql',
'postgresql13' => 'postgresql',
'postgresql14' => 'postgresql',
'postgresql15' => 'postgresql',
'postgresql16' => 'postgresql',
\App\Enums\Database::NONE => 'none',
\App\Enums\Database::MYSQL57 => 'mysql',
\App\Enums\Database::MYSQL80 => 'mysql',
\App\Enums\Database::MARIADB103 => 'mariadb',
\App\Enums\Database::MARIADB104 => 'mariadb',
\App\Enums\Database::MARIADB106 => 'mariadb',
\App\Enums\Database::MARIADB1011 => 'mariadb',
\App\Enums\Database::MARIADB114 => 'mariadb',
\App\Enums\Database::POSTGRESQL12 => 'postgresql',
\App\Enums\Database::POSTGRESQL13 => 'postgresql',
\App\Enums\Database::POSTGRESQL14 => 'postgresql',
\App\Enums\Database::POSTGRESQL15 => 'postgresql',
\App\Enums\Database::POSTGRESQL16 => 'postgresql',
],
'databases_version' => [
'none' => '',
'mysql57' => '5.7',
'mysql80' => '8.0',
'mariadb' => '10.3',
'mariadb103' => '10.3',
'mariadb104' => '10.4',
'mariadb106' => '10.6',
'mariadb1011' => '10.11',
'mariadb114' => '11.4',
'postgresql12' => '12',
'postgresql13' => '13',
'postgresql14' => '14',
'postgresql15' => '15',
'postgresql16' => '16',
\App\Enums\Database::NONE => '',
\App\Enums\Database::MYSQL57 => '5.7',
\App\Enums\Database::MYSQL80 => '8.0',
\App\Enums\Database::MARIADB103 => '10.3',
\App\Enums\Database::MARIADB104 => '10.4',
\App\Enums\Database::MARIADB106 => '10.6',
\App\Enums\Database::MARIADB1011 => '10.11',
\App\Enums\Database::MARIADB114 => '11.4',
\App\Enums\Database::POSTGRESQL12 => '12',
\App\Enums\Database::POSTGRESQL13 => '13',
\App\Enums\Database::POSTGRESQL14 => '14',
\App\Enums\Database::POSTGRESQL15 => '15',
\App\Enums\Database::POSTGRESQL16 => '16',
],
'database_features' => [
'remote' => [