41 lines
1.0 KiB
PHP
41 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Support\OperateHub;
|
|
|
|
use App\Models\Tenant;
|
|
use App\Models\Workspace;
|
|
use App\Support\Tenants\TenantPageCategory;
|
|
|
|
final readonly class ResolvedShellContext
|
|
{
|
|
public function __construct(
|
|
public ?Workspace $workspace,
|
|
public ?Tenant $tenant,
|
|
public TenantPageCategory $pageCategory,
|
|
public string $state,
|
|
public string $displayMode,
|
|
public string $workspaceSource = 'none',
|
|
public string $tenantSource = 'none',
|
|
public string $recoveryAction = 'none',
|
|
public ?string $recoveryDestination = null,
|
|
public ?string $recoveryReason = null,
|
|
) {}
|
|
|
|
public function hasWorkspace(): bool
|
|
{
|
|
return $this->workspace instanceof Workspace;
|
|
}
|
|
|
|
public function hasTenant(): bool
|
|
{
|
|
return $this->tenant instanceof Tenant;
|
|
}
|
|
|
|
public function showsRecoveryNotice(): bool
|
|
{
|
|
return $this->displayMode === 'recovery' || $this->recoveryReason !== null;
|
|
}
|
|
}
|