service->getFeeData(); return view('admin.product.fee.index', $data); } public function updateBuybackPolicy(Request $request) { $data = $request->validate([ 'customer_fee_rate' => ['required', 'numeric', 'min:0', 'max:100'], 'bank_fee_type' => ['required', 'in:FLAT,PERCENT'], 'bank_fee_value' => ['required', 'numeric', 'min:0'], ]); $res = $this->service->updateBuybackPolicy($data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? ''); return redirect()->back()->with('toast', [ 'type' => $res['ok'] ? 'success' : 'danger', 'title' => '정책 수정', 'message' => $res['message'], ]); } public function storePayment(Request $request) { $data = $request->validate([ 'code' => ['required', 'string', 'max:30'], 'name' => ['required', 'string', 'max:50'], 'display_name' => ['required', 'string', 'max:100'], 'customer_fee_rate' => ['required', 'numeric', 'min:0', 'max:100'], 'pg_fee_rate' => ['required', 'numeric', 'min:0', 'max:100'], 'is_active' => ['required', 'in:0,1'], ]); $res = $this->service->storePaymentMethod($data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? ''); return redirect()->route('admin.fees.index')->with('toast', [ 'type' => $res['ok'] ? 'success' : 'danger', 'title' => '결제 수단 등록', 'message' => $res['message'], ]); } public function updatePayment(int $id, Request $request) { $data = $request->validate([ 'name' => ['required', 'string', 'max:50'], 'display_name' => ['required', 'string', 'max:100'], 'customer_fee_rate' => ['required', 'numeric', 'min:0', 'max:100'], 'pg_fee_rate' => ['required', 'numeric', 'min:0', 'max:100'], 'is_active' => ['required', 'in:0,1'], ]); $res = $this->service->updatePaymentMethod($id, $data, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? ''); return redirect()->route('admin.fees.index')->with('toast', [ 'type' => $res['ok'] ? 'success' : 'danger', 'title' => '결제 수단 수정', 'message' => $res['message'], ]); } public function updatePaymentSort(Request $request) { $data = $request->validate([ 'ids' => ['required', 'array'], 'ids.*' => ['integer'], ]); $res = $this->service->updatePaymentSort($data['ids'], (int) auth('admin')->id()); return response()->json($res); } public function destroyPayment(int $id, Request $request) { $res = $this->service->deletePaymentMethod($id, (int) auth('admin')->id(), $request->ip(), $request->userAgent() ?? ''); return redirect()->route('admin.fees.index')->with('toast', [ 'type' => $res['ok'] ? 'success' : 'danger', 'title' => '결제 수단 삭제', 'message' => $res['message'], ]); } }