From 071ec141256929354f0a38737308561ba16fbee2 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Mon, 14 Jul 2025 15:40:45 +0330 Subject: [PATCH] add code validation --- .../V3/Mission/ControlUnit/StartRequest.php | 17 ++++++++++++++++- .../V3/Mission/RequestPortal/StoreRequest.php | 2 +- app/Models/Mission.php | 5 +++-- .../Cartables/Mission/ControlUnitService.php | 3 ++- .../Mission/TransportationUnitService.php | 3 ++- 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php b/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php index 5c9af18b..59b7f5e1 100644 --- a/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php +++ b/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php @@ -5,6 +5,7 @@ namespace App\Http\Requests\V3\Mission\ControlUnit; use App\Enums\MissionStates; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Validator; class StartRequest extends FormRequest { @@ -13,7 +14,7 @@ class StartRequest extends FormRequest */ public function authorize(): bool { - return ($this->mission->state_id == MissionStates::PENDING_CONFIRMATION->value && $this->mission->code == $this->code); + return $this->mission->state_id == MissionStates::PENDING_CONFIRMATION->value; } /** @@ -27,4 +28,18 @@ class StartRequest extends FormRequest 'code' => 'required|string', ]; } + + public function after(): array + { + return [ + function (Validator $validator) { + if ($this->mission->code != $this->code){ + $validator->errors()->add( + 'code', + 'کد وارد شده صحیح نمی باشد' + ); + } + } + ]; + } } diff --git a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php index 537de257..430e18b1 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php @@ -47,7 +47,7 @@ class StoreRequest extends FormRequest { return [ function (Validator $validator) { - if ($this->type === 1){ + if ($this->type == 1){ $start = Carbon::parse($this->start_date); $end = Carbon::parse($this->end_date); diff --git a/app/Models/Mission.php b/app/Models/Mission.php index 1328e9ee..95d92d4c 100644 --- a/app/Models/Mission.php +++ b/app/Models/Mission.php @@ -71,11 +71,12 @@ class Mission extends Model public function roadObserved(): MorphToMany { - return $this->morphToMany(RoadObserved::class, + return $this->morphedByMany( + RoadObserved::class, 'missionable', 'missionables', 'mission_id', - 'missionable_id', + 'missionable_id' ); } } diff --git a/app/Services/Cartables/Mission/ControlUnitService.php b/app/Services/Cartables/Mission/ControlUnitService.php index 271d459f..f116b0cb 100644 --- a/app/Services/Cartables/Mission/ControlUnitService.php +++ b/app/Services/Cartables/Mission/ControlUnitService.php @@ -30,7 +30,8 @@ class ControlUnitService allowedSelects: [ 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time' + 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time', + 'code', 'category_id', 'category_name', 'explanation' ] ); } diff --git a/app/Services/Cartables/Mission/TransportationUnitService.php b/app/Services/Cartables/Mission/TransportationUnitService.php index 606e2e58..cc378f49 100644 --- a/app/Services/Cartables/Mission/TransportationUnitService.php +++ b/app/Services/Cartables/Mission/TransportationUnitService.php @@ -24,7 +24,8 @@ class TransportationUnitService allowedSelects: [ 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'type_fa', 'start_date', 'state_id', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time' + 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa', 'start_time', 'finish_time', + 'code', 'category_id', 'category_name', 'explanation' ] ); }