diff --git a/app/Enums/FlightTripType.php b/app/Enums/FlightTripType.php index a043f23..beac4f3 100644 --- a/app/Enums/FlightTripType.php +++ b/app/Enums/FlightTripType.php @@ -6,4 +6,14 @@ enum FlightTripType: int { case ONEWAY = 0; case ROUNDTRIP = 1; + + + public function label(): string + { + return match($this) { + self::ONEWAY => 'یک طرفه', + self::ROUNDTRIP => 'رفت و برگشت', + }; + } } + diff --git a/app/Http/Controllers/FlightController.php b/app/Http/Controllers/FlightController.php index b72752e..3217d7f 100644 --- a/app/Http/Controllers/FlightController.php +++ b/app/Http/Controllers/FlightController.php @@ -3,6 +3,8 @@ namespace App\Http\Controllers; use App\Enums\FlightStatus; +use App\Http\Requests\Flight\FlightCommentStoreRequest; +use App\Models\Comment; use App\Models\Flight; use Illuminate\Http\Request; @@ -29,8 +31,29 @@ class FlightController extends Controller public function show(Flight $flight) { $title = 'جزئیات پرواز'; - $flight = Flight::findOrFail($flight); - return view('flights.show' , compact('title' , 'flight')); } + + public function commentStore(FlightCommentStoreRequest $request, Flight $flight) + { + + try { + Comment::create([ + 'flight_id' => $flight->id, + 'user_id' => auth()->id(), + 'parent_id' => $request->parent_id, + 'guest_name' => auth()->check() ? null : $request->guest_name, + 'guest_email' => auth()->check() ? null : $request->guest_email, + 'content' => $request->content, + 'status' => 0, + ]); + + return back()->with('success', 'نظر شما با موفقیت ثبت شد.'); + } catch (\Exception $e) { +// return back() +// ->withInput() +// ->with('error', 'ثبت نظر با خطا مواجه شد.'); + dd($e->getMessage()); + } + } } diff --git a/app/Http/Requests/Flight/FlightCommentStoreRequest.php b/app/Http/Requests/Flight/FlightCommentStoreRequest.php new file mode 100644 index 0000000..c54e711 --- /dev/null +++ b/app/Http/Requests/Flight/FlightCommentStoreRequest.php @@ -0,0 +1,54 @@ +|string> + */ + public function rules(): array + { + $isGuest = ! auth()->check(); + + return [ + 'guest_name' => [ + $isGuest ? 'required' : 'nullable', + 'string', + 'max:255', + ], + + 'guest_email' => [ + $isGuest ? 'required' : 'nullable', + 'email', + 'max:255', + ], + + 'content' => [ + 'required', + 'string', + 'min:5', + 'max:2000', + ], + + 'parent_id' => [ + 'nullable', + 'integer', + 'exists:comments,id', + ], + ]; + } +} diff --git a/resources/views/account/layouts/sidebar.blade.php b/resources/views/account/layouts/sidebar.blade.php index b391cb2..d9b6cbe 100644 --- a/resources/views/account/layouts/sidebar.blade.php +++ b/resources/views/account/layouts/sidebar.blade.php @@ -7,27 +7,13 @@

{{auth()->user()->first_name . ' ' . auth()->user()->last_name}}

-

[ایمیل محفوظ]

diff --git a/resources/views/flights/partials/main.blade.php b/resources/views/flights/partials/main.blade.php new file mode 100644 index 0000000..77042d0 --- /dev/null +++ b/resources/views/flights/partials/main.blade.php @@ -0,0 +1,420 @@ +
+ +
+
+

{{$flight->origin_airport->city->name}} - {{$flight->airport->city->name}}

+

سفر {{ $flight->trip_type?->label() }}

+
+
+
+
+
+
+ +
+
+
پرواز برخاست
+

{{ Verta::instance($flight->departure_time)->format('Y/m/d - H:i') }}

+ {{$flight->origin_airport->name}} +
+
+
+
+ +
+
+
فرود پرواز
+

{{ Verta::instance($flight->arrival_time)->format('Y/m/d - H:i') }}

+ +
+
+
+
+
+
+
+
+
+ +
+
+
نوع پرواز
+ اقتصاد +
+
+
+
+
+
+ +
+
+
صندلی و چمدان
+ تومان30 شارژ اضافی +
+
+
+
+
+
+ +
+
+
ویژگی های حین پرواز
+ در دسترس +
+
+
+
+
+
+ +
+
+
مالیات و کارمزد
+ تومان40 +
+
+
+
+
+
+

درباره شرکت هواپیمایی دلتا

+

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون + بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع + با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه + و متخصصان را می طلبد.

+

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. + چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و + کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده + شناخت فراوان جامعه و متخصصان را می طلبد.

+
+
+

ویژگی های هنگام پرواز

+
+
+
+
+
وای فای
+
+
+
+
+
تلویزیون
+
+
+
+
+
سرگرمی
+
+
+
+
+
قهوه
+
+
+
+
+
تهویه مطبوع
+
+
+
+
+
غذا
+
+
+
+
+
بازی ها
+
+
+
+
+
شربت ها
+
+
+
+
+
راحتی
+
+
+
+
+
مجلات
+
+
+
+
+
+ +
+

بررسی ها

+
+
+
+

4.5

+
+ + + + + +
+

بر اساس 15 هزار بازخورد

+
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+ 90% +
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+ 80% +
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+ 59% +
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+ 70% +
+
+
+
+ + + + + +
+
+
+
+
+
+
+
+ 49% +
+
+
+
+
+
نظرات
+
+
+ +
+
+
کانت ایوانز
+ 1 روز پیش +
+
+
+

+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. + چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی + مورد نیاز و هدف بهبود است. +

+
+
+
+ +
+
+
اریش تی گنائو
+ 1 روز پیش +
+
+
+

+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. + چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی + مورد نیاز و هدف بهبود است. +

+
+
+
+ +
+
+
جسی سینکلر
+ 1 روز پیش +
+
+
+

+ لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. + چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی + مورد نیاز و هدف بهبود است. +

+
+ +
+
+

نظر بدهید

+
+ @if (session('success')) +
+ {{ session('success') }} +
+ @endif + + @if (session('error')) +
+ {{ session('error') }} +
+ @endif +

نظر بدهید

+ @if ($errors->any()) +
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+ @endif + + +
+ @csrf + + @auth +
+
+
+ +
+
+
+
+ +
+
+
+ @else +
+
+
+ + @error('guest_name') + {{$message}} + @enderror +
+
+
+
+ + @error('guest_email') + {{$message}} + @enderror +
+
+
+ @endauth + +
+ + @error('content') + {{$message}} + @enderror +
+ + +
+
+ +
+
+
+
diff --git a/resources/views/flights/partials/sidebar.blade.php b/resources/views/flights/partials/sidebar.blade.php new file mode 100644 index 0000000..f963a7c --- /dev/null +++ b/resources/views/flights/partials/sidebar.blade.php @@ -0,0 +1,155 @@ +
+
+
+

پرواز

+
+ {{number_format($flight->price)}} تومان +
+
+
+
+ @csrf + +
+
+
+
+
+ + +
+
+
+
+
+
+
+ + +
+
+
+
+
+ +
+
+
+ + افزودن به علاقه مندی ها +
+
+
+
+
+ اشتراک + 250 مشاهده +
+
+
+
+

چرا باید با ما رزرو کنید؟

+ +
+
+

سوالی دریافت کنید؟

+

لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است.

+ +
+
+

سازماندهی توسط

+
+
+ +
+
+
آژانس مسافرتی رولتاک
+

عضو از سال 1390

+ فرستادن پیام +
+
+
diff --git a/resources/views/flights/show.blade.php b/resources/views/flights/show.blade.php index 494906c..af9e6f6 100644 --- a/resources/views/flights/show.blade.php +++ b/resources/views/flights/show.blade.php @@ -1,3 +1,36 @@ -
- -
+@extends('layouts.app') + + +@section('content') +
+ + + +
+
+
+
+ +
+ @include('flights.partials.main') +
+ +
+ @include('flights.partials.sidebar') +
+ +
+
+
+
+ +
+@endsection diff --git a/resources/views/layouts/navbar.blade.php b/resources/views/layouts/navbar.blade.php index c5eab1b..2631a26 100644 --- a/resources/views/layouts/navbar.blade.php +++ b/resources/views/layouts/navbar.blade.php @@ -1,8 +1,8 @@