moduleUtil = $moduleUtil; } protected function authorizeAccess(): void { $business_id = request()->session()->get('user.business_id'); TelemarketingUtil::authorizeTelemarketing($this->moduleUtil, $business_id, 'crm.telemarketing.manage_scripts'); } public function index() { $this->authorizeAccess(); $business_id = request()->session()->get('user.business_id'); if (request()->ajax()) { $query = CrmCallScript::where('business_id', $business_id); return Datatables::of($query) ->addColumn('action', function ($row) { return ''; }) ->rawColumns(['action']) ->make(true); } return view('crm::telemarketing.scripts.index'); } public function create() { $this->authorizeAccess(); return view('crm::telemarketing.scripts.create'); } public function store(Request $request) { $this->authorizeAccess(); $business_id = request()->session()->get('user.business_id'); if ($request->boolean('is_default')) { CrmCallScript::where('business_id', $business_id)->update(['is_default' => false]); } CrmCallScript::create([ 'business_id' => $business_id, 'name' => $request->input('name'), 'opening_text' => $request->input('opening_text'), 'discovery_questions' => array_filter(explode("\n", $request->input('discovery_questions', ''))), 'objection_handlers' => $request->input('objection_handlers', []), 'closing_cta' => $request->input('closing_cta'), 'is_default' => $request->boolean('is_default'), 'created_by' => auth()->id(), ]); return redirect()->action([self::class, 'index'])->with('status', ['success' => 1, 'msg' => __('lang_v1.added_success')]); } public function edit($id) { $this->authorizeAccess(); $business_id = request()->session()->get('user.business_id'); $script = CrmCallScript::where('business_id', $business_id)->findOrFail($id); return view('crm::telemarketing.scripts.edit')->with(compact('script')); } public function update(Request $request, $id) { $this->authorizeAccess(); $business_id = request()->session()->get('user.business_id'); $script = CrmCallScript::where('business_id', $business_id)->findOrFail($id); if ($request->boolean('is_default')) { CrmCallScript::where('business_id', $business_id)->update(['is_default' => false]); } $script->update([ 'name' => $request->input('name'), 'opening_text' => $request->input('opening_text'), 'discovery_questions' => array_filter(explode("\n", $request->input('discovery_questions', ''))), 'objection_handlers' => $request->input('objection_handlers', []), 'closing_cta' => $request->input('closing_cta'), 'is_default' => $request->boolean('is_default'), ]); return redirect()->action([self::class, 'index'])->with('status', ['success' => 1, 'msg' => __('lang_v1.updated_success')]); } }