From 40dbf3b5753e62a05dd8e6a09e464255bf28e1b0 Mon Sep 17 00:00:00 2001 From: hatame Date: Tue, 18 Aug 2026 19:49:46 +0330 Subject: [PATCH] git commit"fix flight type display and status handling" --- app/Enums/FlightStatus.php | 14 -- app/Enums/FlightType.php | 10 -- .../Controllers/Admin/FlightController.php | 120 +++++++++++++++--- .../{ => Admin}/RoleController.php | 7 +- .../Requests/Admin/FlightStoreRequest.php | 5 +- app/Models/Flight.php | 6 +- .../views/admin/flights/create.blade.php | 19 +-- resources/views/admin/flights/index.blade.php | 29 ++--- .../views/admin/layouts/sidebar.blade.php | 10 -- routes/admin.php | 4 +- 10 files changed, 130 insertions(+), 94 deletions(-) delete mode 100644 app/Enums/FlightStatus.php delete mode 100644 app/Enums/FlightType.php rename app/Http/Controllers/{ => Admin}/RoleController.php (72%) diff --git a/app/Enums/FlightStatus.php b/app/Enums/FlightStatus.php deleted file mode 100644 index a0c6529..0000000 --- a/app/Enums/FlightStatus.php +++ /dev/null @@ -1,14 +0,0 @@ -paginate(4); - return view('admin.flights.index',compact('flights')); + return view('admin.flights.index', compact('flights')); } + + public function create() { return view('admin.flights.create'); } + + public function store(FlightStoreRequest $request) { - $data = $request->validated(); + DB::beginTransaction(); - $data['type'] = (int) $data['type']; + try { - if ($request->hasFile('image')) { - $data['image'] = $request->file('image')->store('flights', 'public'); + $data = $request->validated(); + + + if ($request->hasFile('image')) { + + $data['image'] = $request + ->file('image') + ->store('flights','public'); + + } + + + Flight::create($data); + + + DB::commit(); + + + return redirect() + ->route('admin.flights.index') + ->with('success','پرواز ثبت شد'); + + + } catch(\Exception $e) { + + DB::rollBack(); + + dd($e->getMessage()); } - Flight::create($data); - - return redirect()->route('admin.flights.index') - ->with('success', 'پرواز با موفقیت ثبت شد'); } + + public function edit(Flight $flight) { return view('admin.flights.edit',compact('flight')); - } - public function update(FlightStoreRequest $request, Flight $flight) + + + + public function update(FlightStoreRequest $request, Flight $flight) { - $data = $request->validated(); - $data['type'] = (int) $data['type']; + DB::beginTransaction(); + + try { + + $data = $request->validated(); + + + if ($request->hasFile('image')) { + + + if($flight->image){ + + Storage::disk('public') + ->delete($flight->image); + + } + + + $data['image'] = $request + ->file('image') + ->store('flights','public'); + + } + + + $flight->update($data); + + + DB::commit(); + + + return redirect() + ->route('admin.flights.index') + ->with('success','پرواز ویرایش شد'); + + + }catch(\Exception $e){ + + DB::rollBack(); + + dd($e->getMessage()); - if ($request->hasFile('image')) { - $data['image'] = $request->file('image')->store('flights', 'public'); } - $flight->update($data); - - return redirect()->route('admin.flights.index') - ->with('success', 'پرواز با موفقیت ویرایش شد'); } - public function destroy(Flight $flight) + + public function destroy(Flight $flight) { + + if($flight->image){ + + Storage::disk('public') + ->delete($flight->image); + + } + + $flight->delete(); - return back()->with('پرواز با موفقیت حذف شد.'); + + + return back() + ->with('success','پرواز حذف شد'); } } diff --git a/app/Http/Controllers/RoleController.php b/app/Http/Controllers/Admin/RoleController.php similarity index 72% rename from app/Http/Controllers/RoleController.php rename to app/Http/Controllers/Admin/RoleController.php index 85c5672..db98581 100644 --- a/app/Http/Controllers/RoleController.php +++ b/app/Http/Controllers/Admin/RoleController.php @@ -1,7 +1,8 @@ [ 'required', 'date', - + 'after_or_equal:today' ], 'departure_time'=>[ - 'required' + 'required', + 'date_format:H:i' ], 'arrival_time'=>[ 'required' diff --git a/app/Models/Flight.php b/app/Models/Flight.php index 5f6a022..1c9fd45 100644 --- a/app/Models/Flight.php +++ b/app/Models/Flight.php @@ -39,7 +39,9 @@ use Illuminate\Database\Eloquent\Model; class Flight extends Model { protected $table = 'flights'; + public static $snakeAttributes = false; + public $timestamps = true; protected $casts = [ 'departure_date' => 'datetime', @@ -47,8 +49,8 @@ class Flight extends Model 'arrival_time' => 'datetime', 'capacity' => 'int', 'price' => 'float', - 'type' => FlightType::class, - 'status' => FlightStatus::class, + 'type' => 'int', + 'status' => 'int', ]; protected $fillable = [ diff --git a/resources/views/admin/flights/create.blade.php b/resources/views/admin/flights/create.blade.php index 56637ad..10b8986 100644 --- a/resources/views/admin/flights/create.blade.php +++ b/resources/views/admin/flights/create.blade.php @@ -91,15 +91,9 @@ نوع پرواز - + + + @@ -110,10 +104,11 @@ تاریخ حرکت - - + id="departure_date" + class="form-control" + autocomplete="off"> diff --git a/resources/views/admin/flights/index.blade.php b/resources/views/admin/flights/index.blade.php index 7d5bf24..80ade7f 100644 --- a/resources/views/admin/flights/index.blade.php +++ b/resources/views/admin/flights/index.blade.php @@ -41,32 +41,28 @@
- - - - - - -
@@ -181,26 +177,23 @@ + @switch($flight->type) - @switch($flight->type->value) - - @case('internal') + @case(0) داخلی @break - @case('external') + @case(2) خارجی @break - @case('charter') + @case(3) چارتر @break @endswitch - - {{ number_format($flight->price) }} diff --git a/resources/views/admin/layouts/sidebar.blade.php b/resources/views/admin/layouts/sidebar.blade.php index 7f967c1..27e421b 100644 --- a/resources/views/admin/layouts/sidebar.blade.php +++ b/resources/views/admin/layouts/sidebar.blade.php @@ -71,16 +71,6 @@ - diff --git a/routes/admin.php b/routes/admin.php index 8b2126a..e0601f4 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -4,9 +4,9 @@ use App\Http\Controllers\Admin\AdminController; use App\Http\Controllers\Admin\Auth\AuthController; use App\Http\Controllers\Admin\Auth\DashboardController; -use App\Http\Controllers\Admin\UserController; use App\Http\Controllers\Admin\FlightController; -use App\Http\Controllers\RoleController; +use App\Http\Controllers\Admin\RoleController; +use App\Http\Controllers\Admin\UserController; use App\Http\Controllers\TourController; use Illuminate\Support\Facades\Route;