diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php b/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php index 16d7ffe3..0043ed3f 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers\V3\Dashboard\Mission; use App\Enums\MissionStates; use App\Http\Controllers\Controller; +use App\Http\Requests\V3\Mission\ControlUnit\FinishRequest; +use App\Http\Requests\V3\Mission\ControlUnit\StartRequest; use App\Http\Traits\ApiResponse; use App\Models\Mission; use App\Services\Cartables\Mission\ControlUnitService; @@ -19,7 +21,7 @@ class ControlUnitController extends Controller return response()->json($controlUnitService->datatable($request)); } - public function start(Request $request, Mission $mission): JsonResponse + public function start(StartRequest $request, Mission $mission): JsonResponse { DB::transaction(function () use ($request, $mission) { $mission->histories()->create([ @@ -38,7 +40,7 @@ class ControlUnitController extends Controller return $this->successResponse(); } - public function finish(Request $request, Mission $mission): JsonResponse + public function finish(FinishRequest $request, Mission $mission): JsonResponse { DB::transaction(function () use ($request, $mission) { $mission->histories()->create([ diff --git a/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php b/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php new file mode 100644 index 00000000..c6b48b09 --- /dev/null +++ b/app/Http/Requests/V3/Mission/ControlUnit/FinishRequest.php @@ -0,0 +1,30 @@ +mission->state_id == MissionStates::START_MISSION->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php b/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php new file mode 100644 index 00000000..f932510c --- /dev/null +++ b/app/Http/Requests/V3/Mission/ControlUnit/StartRequest.php @@ -0,0 +1,30 @@ +mission->state_id == MissionStates::PENDING_CONFIRMATION->value; + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules(): array + { + return [ + // + ]; + } +} diff --git a/app/Services/Cartables/Mission/ControlUnitService.php b/app/Services/Cartables/Mission/ControlUnitService.php index 57fdd05b..68bd4656 100644 --- a/app/Services/Cartables/Mission/ControlUnitService.php +++ b/app/Services/Cartables/Mission/ControlUnitService.php @@ -16,14 +16,10 @@ class ControlUnitService public function dataTable(Request $request) { - $fields = [ - 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', - 'description', 'requested_machines', 'type', 'type_fa', 'start_date', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa' - ]; - $query = Mission::query() - ->where('state_id', '=', MissionStates::PENDING_CONFIRMATION->value) + ->whereIn('state_id', [ + MissionStates::PENDING_CONFIRMATION->value, MissionStates::START_MISSION->value + ]) ->where('edare_shahri_name', '=', Auth::user()->edarate_shahri_id); return DataTableFacade::run( @@ -31,7 +27,11 @@ class ControlUnitService $request, allowedFilters: ['*'], allowedSortings: ['*'], - allowedSelects: $fields + 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' + ] ); } } \ No newline at end of file diff --git a/app/Services/Cartables/Mission/RequestPortalService.php b/app/Services/Cartables/Mission/RequestPortalService.php index 4fe32dac..b90bed61 100644 --- a/app/Services/Cartables/Mission/RequestPortalService.php +++ b/app/Services/Cartables/Mission/RequestPortalService.php @@ -15,11 +15,6 @@ class RequestPortalService public function datatable(Request $request) { $user = auth()->user(); - $fields = [ - 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', - 'description', 'requested_machines', 'type', 'type_fa', 'start_date', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa' - ]; $query = Mission::query(); if ($user->hasPermissionTo('manage-request-portal-city')) { @@ -34,7 +29,11 @@ class RequestPortalService $request, allowedFilters: ['*'], allowedSortings: ['*'], - allowedSelects: $fields + 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' + ] ); } } \ No newline at end of file diff --git a/app/Services/Cartables/Mission/TransportationUnitService.php b/app/Services/Cartables/Mission/TransportationUnitService.php index d21b8424..fa75da4f 100644 --- a/app/Services/Cartables/Mission/TransportationUnitService.php +++ b/app/Services/Cartables/Mission/TransportationUnitService.php @@ -12,12 +12,6 @@ class TransportationUnitService { public function dataTable(Request $request) { - $fields = [ - 'id', 'user_id', 'username', 'state_name', 'province_name', 'edare_shahri_name', - 'description', 'requested_machines', 'type', 'type_fa', 'start_date', - 'end_date', 'request_date', 'end_point', 'area', 'zone', 'zone_fa' - ]; - $query = Mission::query() ->where('state_id', '=', MissionStates::REQUEST_CREATED->value) ->where('edare_shahri_name', '=', Auth::user()->edarate_shahri_id); @@ -27,7 +21,11 @@ class TransportationUnitService $request, allowedFilters: ['*'], allowedSortings: ['*'], - allowedSelects: $fields + 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' + ] ); } } \ No newline at end of file diff --git a/routes/v3.php b/routes/v3.php index fbe5ea0a..7f1ffa3e 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -202,8 +202,8 @@ Route::prefix('road_patrol') ->controller(\App\Http\Controllers\V3\Dashboard\RoadPatrol\DetailController::class) ->group(function () { Route::get('/{roadPatrol}', 'show')->name('show'); - Route::get('/machines/{roadPatrol}', 'roadPatrolMachine')->name('roadPatrolMachine'); - Route::get('/rahdaran/{roadPatrol}', 'roadPatrolRahdar')->name('roadPatrolRahdar'); + Route::get('/machines/{roadPatrol}', 'machines')->name('machines'); + Route::get('/rahdaran/{roadPatrol}', 'rahdaran')->name('rahdaran'); }); Route::prefix('operator')