teamId}"), ]; } public function broadcastAs(): string { return 'v5.canvas.resource.updated'; } /** * @return array{application: array|null, applications: array>, caddyIngress: array|null} */ public function broadcastWith(): array { $serializer = app(CanvasResourceSerializer::class); $application = $this->applicationId !== null ? V5Application::query()->with(['server', 'domains'])->find($this->applicationId) : null; $applications = $this->serverId !== null ? V5Application::query() ->where('server_id', $this->serverId) ->with(['server', 'domains']) ->get() : collect(); $caddyIngress = $this->caddyIngressServerId !== null ? V5Server::query()->find($this->caddyIngressServerId) : null; return [ 'application' => $application instanceof V5Application ? $serializer->serializeApplication($application) : null, 'applications' => $applications ->map(fn (V5Application $application) => $serializer->serializeApplication($application)) ->values() ->all(), 'caddyIngress' => $caddyIngress instanceof V5Server && $caddyIngress->isIngress() ? $serializer->serializeCaddyIngress($caddyIngress) : null, ]; } }