reason = sprintf( '%d failed attempts in %d seconds', $failureCount, $windowSeconds, ); parent::__construct( self::class, ['failureCount' => $failureCount, 'windowSeconds' => $windowSeconds], $tenantId, ); } public function getIpAddress(): string { return $this->ipAddress; } public function getFailureCount(): int { return $this->failureCount; } public function getWindowSeconds(): int { return $this->windowSeconds; } public function getDeviceFingerprint(): ?string { return null; } public function getUserAgent(): ?string { return null; } public function getRequestPath(): ?string { return null; } public function getRequestMethod(): ?string { return null; } public function getUserId(): ?string { return null; } public function getReason(): string { return $this->reason; } public function getSeverity(): SecurityEventSeverity { return SecurityEventSeverity::CRITICAL; } }