user()->id) ->orderBy('created_at', 'desc') ->get(); return response()->json(['data' => $trips]); } /** * Store a newly created resource in storage. */ public function store(Request $request): JsonResponse { $validated = $request->validate([ 'name' => 'required|string|max:255', 'description' => 'nullable|string', 'start_date' => 'nullable|date', 'end_date' => 'nullable|date|after_or_equal:start_date', ]); $validated['created_by_user_id'] = $request->user()->id; $trip = Trip::create($validated); return response()->json(['data' => $trip], 201); } /** * Display the specified resource. */ public function show(Request $request, string $id): JsonResponse { $trip = Trip::where('id', $id) ->where('created_by_user_id', $request->user()->id) ->firstOrFail(); return response()->json(['data' => $trip]); } /** * Update the specified resource in storage. */ public function update(Request $request, string $id): JsonResponse { $trip = Trip::where('id', $id) ->where('created_by_user_id', $request->user()->id) ->firstOrFail(); $validated = $request->validate([ 'name' => 'required|string|max:255', 'description' => 'nullable|string', 'start_date' => 'nullable|date', 'end_date' => 'nullable|date|after_or_equal:start_date', ]); $trip->update($validated); return response()->json(['data' => $trip]); } /** * Remove the specified resource from storage. */ public function destroy(Request $request, string $id): JsonResponse { $trip = Trip::where('id', $id) ->where('created_by_user_id', $request->user()->id) ->firstOrFail(); $trip->delete(); return response()->json(['message' => 'Trip deleted successfully']); } }