with(['createdBy', 'plan']) ->where('asset_id', $assetId) ->simplePaginate(); return AssetRequirementResource::collection($requirements); } /** * Store a newly created resource in storage. */ public function store(CreateOrUpdateRequest $request) { $requirement = new Requirement(); $requirement->mergeFillable([ 'company_id', 'created_by', ]); $requirement->fill([ ...$request->all(), 'company_id' => Auth::user()->company_id, 'created_by' => Auth::id(), ]); $requirement->save(); return $this->created(); } /** * Display the specified resource. */ public function show(string $id) { // } /** * Update the specified resource in storage. */ public function update(Request $request, string $id) { // } /** * Remove the specified resource from storage. */ public function destroy(string $id) { // } public function linkPlan(LinkPlanRequest $request, string $planId) { $plan = Plan::query()->findOrFail($planId); Requirement::query()->where("asset_id", $plan->asset_id) ->whereIn('id', $request->get("requirement_ids")) ->update([ 'plan_id' => $plan->id, ]); return $this->noContent(); } }