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 @@
سفر {{ $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') }}
+ +لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. چاپگرها و متون + بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و کاربردهای متنوع + با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده شناخت فراوان جامعه + و متخصصان را می طلبد.
+لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است. + چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی مورد نیاز و + کاربردهای متنوع با هدف بهبود ابزارهای کاربردی می باشد. کتابهای زیادی در شصت و سه درصد گذشته، حال و آینده + شناخت فراوان جامعه و متخصصان را می طلبد.
+