get(); return view('admin.split_score_definitions.create', compact('availableAuditions')); } public function store(Request $request) { $validated = $request->validate([ 'audition_id' => 'required|exists:auditions,id|unique:split_score_definitions,audition_id', ]); $newSplit = SplitScoreDefinition::create([ 'audition_id' => $validated['audition_id'], 'splits' => [], ]); return redirect()->route('admin.split_score_definitions.edit', $newSplit)->with('success', 'Split score definition created'); } public function edit(SplitScoreDefinition $splitScoreDefinition) { $subscores = $splitScoreDefinition->audition->scoringGuide->subscores; $judges = $splitScoreDefinition->audition->room->judges; return view('admin.split_score_definitions.edit', compact('splitScoreDefinition', 'subscores', 'judges')); } public function update(EditSplitScoreDefinitionRequest $request, SplitScoreDefinition $splitScoreDefinition) { $savedSplits = $splitScoreDefinition->splits; if ($request->validated()['split'] ?? false) { $newSplit = []; $submittedSplitData = $request->validated()['split']; foreach ($submittedSplitData as $splitName => $splitData) { $name = $splitName; $judges = array_values($splitData['judges'] ?? []); $subscores = array_values($splitData['subscores'] ?? []); $newSplit[$name] = ['judges' => $judges, 'subscores' => $subscores]; } $splitScoreDefinition->splits = $newSplit; $splitScoreDefinition->save(); } if ($request->validated()['new_split'] ?? false) { $savedSplits[$request->validated()['new_split']] = ['judges' => [], 'subscores' => []]; $splitScoreDefinition->splits = $savedSplits; $splitScoreDefinition->save(); } return redirect()->route('admin.split_score_definitions.edit', $splitScoreDefinition); } public function destroy(SplitScoreDefinition $scoreDefinition) { } }