latest()->paginate(10); return view('admin.tours.index', compact('tours')); } public function create(): View { $airports = Airport::all(); return view('admin.tours.create', compact('airports')); } public function store(TourStorePostRequest $request): RedirectResponse { $tour = Tour::create([ 'title' => $request->title, 'tour_type' => $request->tour_type, 'summary' => $request->summary, 'description' => $request->description, 'origin_airports_id' => $request->origin_airports_id, 'destination_airports_id' => $request->destination_airports_id, ]); $startDate = Verta::parse($request->start_date)->datetime(); $endDate = Verta::parse($request->end_date)->datetime(); $tour->tour_details()->create([ 'start_date' => $startDate, 'end_date' => $endDate, 'price' => $request->price, 'capacity' => $request->capacity, 'status' => 1, ]); return redirect() ->route('admin.tours.index') ->with('success', 'تور با موفقیت ایجاد شد.'); } public function edit(Tour $tour): View { $tour->load([ 'tour_details', 'originAirport', 'destinationAirport' ]); $airports = Airport::all(); $detail = $tour->tour_details->first(); $startDate = null; $endDate = null; if ($detail) { $startDate = verta($detail->start_date)->format('Y/m/d H:i'); $endDate = verta($detail->end_date)->format('Y/m/d H:i'); } return view('admin.tours.edit', compact( 'tour', 'airports', 'detail', 'startDate', 'endDate' )); } public function update(TourStorePostRequest $request, Tour $tour): RedirectResponse { $tour->update([ 'title' => $request->title, 'tour_type' => $request->tour_type, 'summary' => $request->summary, 'description' => $request->description, 'origin_airports_id' => $request->origin_airports_id, 'destination_airports_id' => $request->destination_airports_id, ]); $startDate = Verta::parse($request->start_date)->datetime(); $endDate = Verta::parse($request->end_date)->datetime(); $tour->tour_details()->updateOrCreate( [ 'tour_id' => $tour->id ], [ 'start_date' => $startDate, 'end_date' => $endDate, 'price' => $request->price, 'capacity' => $request->capacity, 'status' => 1, ] ); return redirect() ->route('admin.tours.index') ->with('success', 'تور با موفقیت ویرایش شد.'); } public function destroy(Tour $tour): RedirectResponse { $tour->tour_details()->delete(); $tour->delete(); return redirect() ->route('admin.tours.index') ->with('success', 'تور با موفقیت حذف شد.'); } }