TenantAtlas/apps/platform/app/Services/TenantConfiguration/ExchangePowerShellProcessResult.php
Ahmed Darrazi 90a411429e
Some checks failed
PR Fast Feedback / fast-feedback (pull_request) Failing after 1m23s
feat: add Exchange PowerShell production runner gate
2026-07-07 20:32:36 +02:00

52 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Services\TenantConfiguration;
final readonly class ExchangePowerShellProcessResult
{
private function __construct(
public int $exitCode,
public string $stdout,
public string $stderr,
public bool $timedOut,
public int $durationMs,
public ?string $exceptionClass = null,
) {}
public static function completed(int $exitCode, string $stdout = '', string $stderr = '', int $durationMs = 0): self
{
return new self(
exitCode: $exitCode,
stdout: $stdout,
stderr: $stderr,
timedOut: false,
durationMs: max(0, $durationMs),
);
}
public static function timedOut(int $durationMs = 0): self
{
return new self(
exitCode: 124,
stdout: '',
stderr: '',
timedOut: true,
durationMs: max(0, $durationMs),
);
}
public static function exception(string $exceptionClass, int $durationMs = 0): self
{
return new self(
exitCode: 1,
stdout: '',
stderr: '',
timedOut: false,
durationMs: max(0, $durationMs),
exceptionClass: $exceptionClass,
);
}
}