diff --git a/app/Enums/MissionTypes.php b/app/Enums/MissionTypes.php new file mode 100644 index 00000000..e19472cf --- /dev/null +++ b/app/Enums/MissionTypes.php @@ -0,0 +1,19 @@ + 'ساعتی', + 2 => 'روزانه', + ]; + + return $mapArray[$state]; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 4c8bedeb..5eb3b136 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\V3\Dashboard\Mission; use App\Enums\MissionStates; +use App\Enums\MissionTypes; use App\Http\Controllers\Controller; use App\Http\Requests\V3\Mission\RequestPortal\StoreRequest; use App\Http\Requests\V3\Mission\RequestPortal\UpdateRequest; @@ -27,6 +28,7 @@ class RequestPortalController extends Controller DB::transaction(function () use ($request) { $user = auth()->user(); $state = MissionStates::REQUEST_CREATED->value; + $mission = Mission::query()->create([ 'user_id' => $user->id, 'username' => $user->username, @@ -43,6 +45,7 @@ class RequestPortalController extends Controller 'request_date' => now(), 'description' => $request->description, 'end_point' => $request->end_point, + 'area' => json_encode($request->area), ]); $mission->rahdaran()->attach($request->rahdaran); @@ -70,6 +73,7 @@ class RequestPortalController extends Controller 'request_date' => $request->request_date, 'description' => $request->description, 'end_point' => $request->end_point, + 'area' => json_encode($request->area), ]); $mission->rahdaran()->sync($request->rahdaran); @@ -77,7 +81,6 @@ class RequestPortalController extends Controller return $this->successResponse(); } - public function destroy(Mission $mission): JsonResponse { DB::transaction(function () use ($mission) { diff --git a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php index d4927d28..98dcda6b 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/StoreRequest.php @@ -25,12 +25,12 @@ class StoreRequest extends FormRequest 'rahdaran' => 'required|array', 'rahdaran.*' => 'exists:rahdaran,id', 'requested_machines' => 'required|array', - 'type' => 'required|string|max:50', + 'type' => 'required|in:1,2', 'start_date' => 'required|date', 'end_date' => 'required|date', - 'request_date' => 'required|date', 'description' => 'string', 'end_point' => 'required|string', + 'area' => 'required|array', ]; } } diff --git a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php index be6eaee5..4135ffa8 100644 --- a/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php +++ b/app/Http/Requests/V3/Mission/RequestPortal/UpdateRequest.php @@ -26,12 +26,12 @@ class UpdateRequest extends FormRequest 'rahdaran' => 'required|array', 'rahdaran.*' => 'exists:rahdaran,id', 'requested_machines' => 'required|array', - 'type' => 'required|string|max:50', + 'type' => 'required|in:1,2', 'start_date' => 'required|date', 'end_date' => 'required|date', - 'request_date' => 'required|date', 'description' => 'string', 'end_point' => 'required|string', + 'area' => 'required|array', ]; } } diff --git a/app/Models/Mission.php b/app/Models/Mission.php index 3f169f16..c2dcb959 100644 --- a/app/Models/Mission.php +++ b/app/Models/Mission.php @@ -17,7 +17,14 @@ class Mission extends Model protected function requestedMachines(): Attribute { return Attribute::make( - get: fn ($value) => json_decode($value) + get: fn($value) => json_decode($value) + ); + } + + protected function area(): Attribute + { + return Attribute::make( + get: fn($value) => json_decode($value) ); } diff --git a/app/Services/Cartables/Mission/RequestPortalService.php b/app/Services/Cartables/Mission/RequestPortalService.php index 01d7cf76..33494ccc 100644 --- a/app/Services/Cartables/Mission/RequestPortalService.php +++ b/app/Services/Cartables/Mission/RequestPortalService.php @@ -18,7 +18,7 @@ class RequestPortalService $fields = [ 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', 'description', 'requested_machines', 'type', 'start_date', - 'end_date', 'request_date', 'end_point', + 'end_date', 'request_date', 'end_point', 'area' ]; $query = Mission::query(); diff --git a/database/migrations/2025_06_10_093806_add_area_to_missions_table.php b/database/migrations/2025_06_10_093806_add_area_to_missions_table.php new file mode 100644 index 00000000..cf421da3 --- /dev/null +++ b/database/migrations/2025_06_10_093806_add_area_to_missions_table.php @@ -0,0 +1,29 @@ +json('area'); + + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('missions', function (Blueprint $table) { + $table->dropColumn('area'); + }); + } +};