input('per_page', 20); $configs = PaymentConfig::query() ->when($request->search, function ($query, $search) { $query->where('name', 'like', "%{$search}%") ->orWhereHas('company', function ($q) use ($search) { $q->where('name', 'like', "%{$search}%"); }); }) ->with(['company', 'creator']) ->latest() ->paginate($per_page) ->withQueryString(); return view('admin.basic-settings.payment-configs.index', [ 'paymentConfigs' => $configs ]); } /** * 顯示新增頁面 */ public function create(): View { $companies = \App\Models\System\Company::select('id', 'name', 'code')->get(); return view('admin.basic-settings.payment-configs.create', compact('companies')); } /** * 儲存金流配置 */ public function store(Request $request): RedirectResponse { $request->validate([ 'name' => 'required|string|max:255', 'company_id' => 'required|exists:companies,id', 'settings' => 'required|array', ]); PaymentConfig::create([ 'name' => $request->name, 'company_id' => $request->company_id, 'settings' => $request->settings, 'creator_id' => auth()->id(), 'updater_id' => auth()->id(), ]); return redirect()->route('admin.basic-settings.payment-configs.index') ->with('success', __('Payment Configuration created successfully.')); } /** * 顯示編輯頁面 */ public function edit(PaymentConfig $paymentConfig): View { $companies = \App\Models\System\Company::select('id', 'name')->get(); return view('admin.basic-settings.payment-configs.edit', compact('paymentConfig', 'companies')); } /** * 更新金流配置 */ public function update(Request $request, PaymentConfig $paymentConfig): RedirectResponse { $request->validate([ 'name' => 'required|string|max:255', 'settings' => 'required|array', ]); $paymentConfig->update([ 'name' => $request->name, 'settings' => $request->settings, 'updater_id' => auth()->id(), ]); return redirect()->route('admin.basic-settings.payment-configs.index') ->with('success', __('Payment Configuration updated successfully.')); } /** * 刪除金流配置 */ public function destroy(PaymentConfig $paymentConfig): RedirectResponse { $paymentConfig->delete(); return redirect()->route('admin.basic-settings.payment-configs.index') ->with('success', __('Payment Configuration deleted successfully.')); } }