diff --git a/app/Http/Controllers/Account/BookingController.php b/app/Http/Controllers/Account/BookingController.php new file mode 100644 index 0000000..b663dd7 --- /dev/null +++ b/app/Http/Controllers/Account/BookingController.php @@ -0,0 +1,73 @@ +where('user_id', auth()->id()) + ->with([ + 'flight.departureAirport.city', + 'flight.arrivalAirport.city', + 'tourDate.tour', + ]) + ->orderByDesc('created_at') + ->paginate(10); + + return view('account.booking', compact('bookings')); + } + + public function store(Request $request) + { + $request->validate([ + 'flight_id' => 'nullable|exists:flights,id', + 'tour_date_id' => 'nullable|exists:tour_dates,id', + 'adult_count' => 'required|integer|min:1', + 'child_count' => 'required|integer|min:0', + ]); + + $totalPrice = 0; + + if ($request->flight_id) { + + $flight = Flight::findOrFail($request->flight_id); + + $totalPrice = $flight->price * + ($request->adult_count + $request->child_count); + + } elseif ($request->tour_date_id) { + + $tourDate = TourDate::findOrFail($request->tour_date_id); + + $totalPrice = $tourDate->price * + ($request->adult_count + $request->child_count); + } + + $booking = Booking::create([ + 'user_id' => auth()->id(), + 'flight_id' => $request->flight_id, + 'tour_date_id' => $request->tour_date_id, + 'adult_count' => $request->adult_count, + 'child_count' => $request->child_count, + 'total_price' => $totalPrice, + 'tracking_code' => 'BK-' . strtoupper(Str::random(10)), + 'status' => BookingStatus::PENDING, + 'created_at' => now(), + 'updated_at' => now(), + ]); + + return redirect() + ->route('account.booking') + ->with('success', 'رزرو شما با موفقیت ثبت شد.'); + } +} diff --git a/app/Models/Admin.php b/app/Models/Admin.php new file mode 100644 index 0000000..a56f672 --- /dev/null +++ b/app/Models/Admin.php @@ -0,0 +1,50 @@ + 'int', + 'status' => 'int' + ]; + + protected $hidden = [ + 'password' + ]; + + protected $fillable = [ + 'file_id', + 'first_name', + 'last_name', + 'email', + 'username', + 'password', + 'status' + ]; +}