From 3e01f4e3b971f36bf6ef8e0ebfd05197483307f6 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 27 May 2025 14:21:01 +0330 Subject: [PATCH] create new dependensy for accident controller --- .../Dashboard/AccidentReceiptController.php | 5 +++- .../ConfirmPaymentInfoRequest.php | 6 ++-- .../V3/AccidentReceipt/UpdateRequest.php | 14 ++++++---- ...3805_add_is_foreign_to_accidents_table.php | 28 +++++++++++++++++++ 4 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php diff --git a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php b/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php index 3b314a2d..aa4555c9 100644 --- a/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php +++ b/app/Http/Controllers/V3/Dashboard/AccidentReceiptController.php @@ -202,7 +202,10 @@ class AccidentReceiptController extends Controller public function destroy(Accident $accident): JsonResponse { - FileFacade::deleteDirectory('receipts_files/'.$accident->id); + + abort_if($accident->status === AccidentStates::BEDON_EGHDAM->value, 422); + + FileFacade::deleteDirectory('receipts_files/' . $accident->id); DB::transaction(function () use ($accident) { diff --git a/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php b/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php index 3b079953..63839c30 100644 --- a/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/ConfirmPaymentInfoRequest.php @@ -2,6 +2,8 @@ namespace App\Http\Requests\V3\AccidentReceipt; +use App\Enums\AccidentStates; +use App\Models\Accident; use Illuminate\Foundation\Http\FormRequest; class ConfirmPaymentInfoRequest extends FormRequest @@ -9,9 +11,9 @@ class ConfirmPaymentInfoRequest extends FormRequest /** * Determine if the user is authorized to make this request. */ - public function authorize(): bool + public function authorize(Accident $accident): bool { - return true; + return $accident->status === AccidentStates::SODOR_NAME_BIME_VA_DAGHI->value; } /** diff --git a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php index 3160896d..bdf9908c 100644 --- a/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php +++ b/app/Http/Requests/V3/AccidentReceipt/UpdateRequest.php @@ -2,6 +2,8 @@ namespace App\Http\Requests\V3\AccidentReceipt; +use App\Enums\AccidentStates; +use App\Models\Accident; use Illuminate\Foundation\Http\FormRequest; class UpdateRequest extends FormRequest @@ -9,9 +11,9 @@ class UpdateRequest extends FormRequest /** * Determine if the user is authorized to make this request. */ - public function authorize(): bool + public function authorize(Accident $accident): bool { - return true; + return $accident->status === AccidentStates::BEDON_EGHDAM->value; } /** @@ -25,10 +27,10 @@ class UpdateRequest extends FormRequest 'province_id' => 'required|integer|exists:provinces,id', 'city_id' => 'required|integer|exists:cities,id', 'axis_name' => 'required|string', - 'driver_name' => 'required|string', - 'plaque' => 'required|string', - 'driver_national_code' => 'required|string', - 'driver_phone_number' => 'required|string', + 'driver_name' => 'required_if:is_foreign,0|string', + 'plaque' => 'required_if:is_foreign,0|string', + 'driver_national_code' => 'required_if:is_foreign,0|string', + 'driver_phone_number' => 'required_if:is_foreign,0|string', 'lat' => 'required|numeric', 'lng' => 'required|numeric', 'accident_type' => 'required|integer', diff --git a/database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php b/database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php new file mode 100644 index 00000000..eb239e41 --- /dev/null +++ b/database/migrations/2025_05_27_133805_add_is_foreign_to_accidents_table.php @@ -0,0 +1,28 @@ +boolean('is_foreign')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('accidents', function (Blueprint $table) { + $table->dropColumn('is_foreign'); + }); + } +};