json($requestPortalService->datatable($request)); } public function store(StoreRequest $request): JsonResponse { DB::transaction(function () use ($request) { $user = auth()->user(); $state = MissionStates::REQUEST_CREATED->value; $mission = Mission::query()->create([ 'user_id'=> $user->id, 'username'=> $user->username, 'province_id'=> $user->province_id, 'province_name'=> $user->province_fa, 'edare_shahri_id'=> $user->edare_shahri_id ?? null, 'edare_shahri_name'=> $user->edare_shahri_name ?? null, 'state_id' =>$state, 'state_name' => MissionStates::name($state), 'requested_machines' => $request->requested_machines, 'type' => $request->type, 'start_date' => $request->start_date, 'end_date' => $request->end_date, 'request_date' => now(), 'description' => $request->description, 'end_point' => $request->end_point, ]); $mission->rahdaran()->attach($request->rahdaran); }); return $this->successResponse(); } public function show(Mission $mission): JsonResponse { return $this->successResponse($mission); } public function update(UpdateRequest $request,Mission $mission): JsonResponse { DB::transaction(function () use ($mission, $request) { $state = MissionStates::REQUEST_CREATED->value; $mission->update([ 'state_id' =>$state, 'state_name' => MissionStates::name($state), 'requested_machines' => $request->requested_machines, 'type' => $request->type, 'start_date' => $request->start_date, 'end_date' => $request->end_date, 'request_date' => $request->request_date, 'description' => $request->description, 'end_point' => $request->end_point, ]); $mission->rahdaran()->sync($request->rahdaran); }); return $this->successResponse(); } public function destroy(Mission $mission): JsonResponse { DB::transaction(function () use ($mission) { $mission->rahdaran()->detach(); $mission->delete(); }); return $this->successResponse(); } }