*/ protected function serializeApplication(V5Application $application): array { return app(CanvasResourceSerializer::class)->serializeApplication($application); } /** * @return array */ protected function serializeCaddyIngress(V5Server $server, int $index = 0): array { return app(CanvasResourceSerializer::class)->serializeCaddyIngress($server, $index); } /** * @return array> */ protected function caddyIngresses(mixed $currentTeam): array { if (! $currentTeam instanceof Team) { return []; } return V5Server::query() ->where('team_id', $currentTeam->id) ->orderBy('name') ->get() ->filter(fn (V5Server $server) => $server->isIngress()) ->values() ->map(fn (V5Server $server, int $index) => $this->serializeCaddyIngress($server, $index)) ->all(); } /** * @param array{uuid: string} $selectedProject * @param array{uuid: string} $selectedEnvironment * @return Builder */ protected function applicationQuery(Team $currentTeam, array $selectedProject, array $selectedEnvironment): Builder { return V5Application::query() ->where('team_id', $currentTeam->id) ->whereHas('project', fn (Builder $query) => $query ->where('team_id', $currentTeam->id) ->where('uuid', $selectedProject['uuid'])) ->whereHas('environment', fn (Builder $query) => $query ->where('uuid', $selectedEnvironment['uuid'])); } }