File: /home/xedaptot/ai.naniguide.com/app/Notifications/Admin/SendingServerWebhookSetupFailed.php
<?php
namespace App\Notifications\Admin;
use App\Model\SendingServer;
use App\Notifications\AppNotification;
use Illuminate\Database\Eloquent\Model;
use Throwable;
/**
* setupBeforeSend() threw — vendor webhook registration failed. Admin must
* fix (IAM policy / unreachable URL / region mismatch / rate limit) before
* the server can receive bounce/complaint feedback.
*/
class SendingServerWebhookSetupFailed extends AppNotification
{
public function __construct(
public SendingServer $server,
public string $errorMessage,
public ?string $errorTrace = null
) {}
public static function fromException(SendingServer $server, Throwable $e): self
{
return new self(
$server,
$e->getMessage(),
substr($e->getTraceAsString(), 0, 4000)
);
}
public function audience(): string { return self::AUDIENCE_ADMINS; }
public function category(): string { return self::CATEGORY_ALERT; }
public function severity(): string { return self::SEVERITY_ERROR; }
public function subject(): ?Model
{
return $this->server;
}
public function toArray(object $notifiable = null): array
{
return [
'title' => 'Webhook setup FAILED',
'body' => sprintf(
'%s sending server "%s" — webhook setup failed: %s',
$this->server->type,
$this->server->name ?? ('#' . $this->server->id),
$this->errorMessage
),
'meta' => ['trace' => $this->errorTrace],
];
}
}