ScenarioResource::collection($this->scenarioRepository->getAll()), ]); } public function show(Scenario $scenario): Response { $scenario->load(['buckets' => function ($query) { $query->orderedBySortOrder(); }]); return Inertia::render('Scenarios/Show', [ 'scenario' => ScenarioResource::make($scenario)->resolve(), 'buckets' => BucketResource::collection($scenario->buckets), 'streams' => StreamResource::collection($this->streamRepository->getForScenario($scenario)), 'streamStats' => $this->statsService->getSummaryStats($scenario), ]); } public function create(): Response { return Inertia::render('Scenarios/Create'); } public function store(StoreScenarioRequest $request): RedirectResponse { $scenario = $this->createScenarioAction->execute($request->validated()); return redirect()->route('scenarios.show', $scenario); } public function edit(Scenario $scenario): Response { return Inertia::render('Scenarios/Edit', [ 'scenario' => ScenarioResource::make($scenario)->resolve(), ]); } public function update(UpdateScenarioRequest $request, Scenario $scenario): JsonResponse { $this->updateScenarioAction->execute($scenario, $request->validated()); return response()->json(['success' => true]); } public function destroy(Scenario $scenario): RedirectResponse { $this->deleteScenarioAction->execute($scenario); return redirect() ->route('scenarios.index') ->with('success', 'Scenario deleted successfully'); } }