From b24b36133c4beec853fa2f4ec28220e6624fdbc3 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Sun, 13 Jul 2025 10:37:38 +0330 Subject: [PATCH 1/4] fix time for hour's mission --- .../V3/Mission/RequestPortal/StoreRequest.php | 23 ++++++++++++++++++ .../Mission/RequestPortal/UpdateRequest.php | 24 +++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php index 0a466b8b..a5f8c37e 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php @@ -2,8 +2,10 @@ namespace App\Http\Requests\V3\Mission\RequestPortal; +use Carbon\Carbon; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Validator; class StoreRequest extends FormRequest { @@ -37,4 +39,25 @@ class StoreRequest extends FormRequest 'category_id' => 'required|in:1,2,3', ]; } + + public function after(): array + { + return [ + function (Validator $validator) { + if ($this->type === 1){ + + $start = Carbon::parse($this->start_date); + $end = Carbon::parse($this->end_date); + + if ($start->diffInMinutes($end) > 480 ){ + $validator->errors()->add( + 'end_date', + 'مدت مأموریت روزانه نباید بیشتر از ۸ ساعت باشد.' + ); + } + + } + } + ]; + } } diff --git a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php index dfdc6241..7f127298 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php @@ -3,8 +3,10 @@ namespace App\Http\Requests\V3\Mission\RequestPortal; use App\Enums\MissionStates; +use Carbon\Carbon; use Illuminate\Contracts\Validation\ValidationRule; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Validator; class UpdateRequest extends FormRequest { @@ -38,4 +40,26 @@ class UpdateRequest extends FormRequest 'category_id' => 'required|in:1,2,3', ]; } + + + public function after(): array + { + return [ + function (Validator $validator) { + if ($this->type === 1){ + + $start = Carbon::parse($this->start_date); + $end = Carbon::parse($this->end_date); + + if ($start->diffInMinutes($end) > 480 ){ + $validator->errors()->add( + 'end_date', + 'مدت مأموریت روزانه نباید بیشتر از ۸ ساعت باشد.' + ); + } + + } + } + ]; + } } From 49b668ec6bb6943e6e4714dd086c56b298637102 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Sun, 13 Jul 2025 14:30:36 +0330 Subject: [PATCH 2/4] create code vonecttion --- app/Enums/MissionCategory.php | 12 ++++++------ .../V3/Dashboard/Mission/RequestPortalController.php | 3 +++ .../V3/Mission/RequestPortal/StoreRequest.php | 3 +++ app/Models/Mission.php | 5 +++-- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/Enums/MissionCategory.php b/app/Enums/MissionCategory.php index 686135e9..fe36f026 100644 --- a/app/Enums/MissionCategory.php +++ b/app/Enums/MissionCategory.php @@ -4,17 +4,17 @@ namespace App\Enums; enum MissionCategory: int { - case ROAD_ITEM= 0; - case ROAD_PATROL = 1; - case ROAD_OBSERVATION = 2; + case ROAD_ITEM= 1; + case ROAD_PATROL = 2; + case ROAD_OBSERVATION = 3; public static function name(int $state): string { $mapArray = [ - 0 => "فعالیت روزانه", - 1 => "گشت راهداری", - 2 => "واکنش سریع", + 1 => "فعالیت روزانه", + 2 => "گشت راهداری", + 3 => "واکنش سریع", ]; return $mapArray[$state]; diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 9543f208..2ad75a05 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -58,6 +58,9 @@ class RequestPortalController extends Controller ]); $mission->rahdaran()->attach($request->rahdaran); + if ($request->category_id == 3){ + $mission->roadObserved()->attach($request->road_observed_id); + } }); return $this->successResponse(); diff --git a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php index a5f8c37e..1c9018ae 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php @@ -35,8 +35,11 @@ class StoreRequest extends FormRequest 'description' => 'string', 'end_point' => 'required|string', 'area' => 'required|array', + 'area.type' => 'required|string', + 'area.coordinates' => 'required|array', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', + 'road_observed_id' => 'required_if:category_id,3|exists:road_observed,id', ]; } diff --git a/app/Models/Mission.php b/app/Models/Mission.php index ba3878ad..5e9408cd 100644 --- a/app/Models/Mission.php +++ b/app/Models/Mission.php @@ -67,8 +67,9 @@ class Mission extends Model 'rahdar_id', ); } - public function road_patrol():HasMany + + public function roadObserved(): MorphToMany { - return $this->hasMany(RoadPatrol::class); + return $this->morphToMany(RoadObserved::class, 'missionable'); } } From 708bdc67da648654987e4087cf26007423371b59 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Sun, 13 Jul 2025 14:34:22 +0330 Subject: [PATCH 3/4] create code conecttion whit mission --- .../V3/Dashboard/Mission/RequestPortalController.php | 3 +++ app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php | 2 ++ 2 files changed, 5 insertions(+) diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 2ad75a05..82bff184 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -95,6 +95,9 @@ class RequestPortalController extends Controller ]); $mission->rahdaran()->sync($request->rahdaran); + if ($request->category_id == 3){ + $mission->roadObserved()->attach($request->road_observed_id); + } }); return $this->successResponse(); diff --git a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php index 7f127298..262d649a 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php @@ -36,6 +36,8 @@ class UpdateRequest extends FormRequest 'description' => 'string', 'end_point' => 'required|string', 'area' => 'required|array', + 'area.type' => 'required|string', + 'area.coordinates' => 'required|array', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', ]; From 0e275f8e61f81a04a5fbfde9f97c5905e2818195 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Sun, 13 Jul 2025 14:35:21 +0330 Subject: [PATCH 4/4] create code conecttion whit missions --- app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php index 262d649a..18082c7f 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php @@ -40,6 +40,7 @@ class UpdateRequest extends FormRequest 'area.coordinates' => 'required|array', 'explanation' => 'required|string', 'category_id' => 'required|in:1,2,3', + 'road_observed_id' => 'required_if:category_id,3|exists:road_observed,id', ]; }