$prerequisiteClasses * @param array $metadata */ public function __construct( public OperationRun $run, public string $operationType, public int $workspaceId, public ?Tenant $tenant, public ?User $initiator, public ExecutionAuthorityMode $authorityMode, public ?string $requiredCapability, public ?int $providerConnectionId, public array $targetScope, public array $prerequisiteClasses = [], public array $metadata = [], ) {} /** * @return array{identity_type:string,user_id:int|null}|null */ public function initiatorSnapshot(): ?array { if ($this->authorityMode === ExecutionAuthorityMode::SystemAuthority) { return [ 'identity_type' => 'system', 'user_id' => null, ]; } if (! $this->initiator instanceof User) { return null; } return [ 'identity_type' => 'user', 'user_id' => (int) $this->initiator->getKey(), ]; } }