except('withShow')); $showInstanceFilter = (new ShowInstances())->searchFilter($queryParams); if ($request->withShow) { $showInstanceFilter = $showInstanceFilter->with('show')->with('show.showDjs'); } $showInstances = $showInstanceFilter->get(); return response()->json($showInstances->sortBy('starts')->values()); } public function store(ShowInstancesRequest $request) { return new ShowInstancesResource(ShowInstances::create($request->validated())); } public function show(Request $request, $showInstanceId) { try { $showInstance = ShowInstances::findOrFail($showInstanceId); if ($request->has('withShow')) { $showInstance->load('show'); } return response()->json($showInstance); } catch (Exception $e) { return response()->json(['message' => 'Show instance not found ' . $e->getMessage()], 500); } } /** * @throws \Throwable */ public function update(Request $request) { try { DB::beginTransaction(); $showInstanceData = $request->all(); $showInstance = ShowInstances::find($request->id); $showInstanceData['modified_instance'] = true; $showInstance->fill($showInstanceData); $showInstance->save(); DB::commit(); return response()->json(['message' => 'Shows Instances updated successfully.']); } catch (Exception $e) { DB::rollBack(); Log::error($e->getMessage()); return response()->json(['error' => 'Failed to update show'], 500); } catch (Throwable $e) { throw new Exception($e->getMessage()); } } public function destroy(Request $request) { try { $showInstancesIds = $request->input('showInstancesIds'); ShowInstances::destroy($showInstancesIds); return response()->json(['message' => 'Shows Instances deleted']); } catch (Exception $e) { return response()->json(['message' => $e->getMessage()], 500); } } }