route('server')); return inertia('services/Create', [ 'server' => $server, 'services' => config('keystone.services'), ]); } public function store(StoreServiceRequest $request): RedirectResponse { $server = Server::findOrFail($request->route('server')); $service = app(CreateService::class)->execute( server: $server, name: $request->name, category: $request->enum('category', ServiceCategory::class), type: $request->enum('type', ServiceType::class), version: $request->version, ); return redirect()->route('servers.show', [ 'organisation' => $server->organisation->id, 'server' => $server->id, ])->with([ 'success' => 'Service created successfully', 'service' => $service, ]); } public function show(Request $request): Response { $server = Server::findOrFail($request->route('server')); $service = $server->services() ->with(['replicas', 'slices', 'operations.steps', 'environment.application']) ->findOrFail($request->route('service')); return inertia('services/Show', [ 'server' => $server, 'service' => $service, ]); } public function edit(Request $request): Response { $server = Server::findOrFail($request->route('server')); $service = $server->services()->findOrFail($request->route('service')); return inertia('services/Edit', [ 'server' => $server, 'service' => $service, ]); } public function update(UpdateServiceRequest $request): RedirectResponse { $server = Server::findOrFail($request->route('server')); $service = $server->services()->findOrFail($request->route('service')); $service->update($request->validated()); return redirect() ->route('services.show', [ 'organisation' => $server->organisation_id, 'server' => $server->id, 'service' => $service->id, ]) ->with('success', 'Service updated.'); } }