withdrawRequestService = $withdrawRequestService; $this->walletService = $walletService; } public function index(Request $request) { $lists = WithdrawRequest::with(['user', 'bankCard', 'reviewedBy']) ->when(isset($request->search), function ($query) use ($request) { $query->whereHas('user', function ($userQuery) use ($request) { $userQuery->where('fullname', 'LIKE', "%{$request->search}%") ->orWhere('phone', 'LIKE', "%{$request->search}%") ->orWhere('email', 'LIKE', "%{$request->search}%"); }); }) ->when(isset($request->status) && $request->status != 'همه وضعیت ها', function ($query) use ($request) { $query->where('status', $request->status); }) ->latest() ->paginate(20) ->withQueryString() ->onEachSide(1); $pending = WithdrawRequest::where('status', WithdrawRequestStatusEnum::Pending->value); return Inertia::admin('WithdrawRequests/index', [ 'withdrawRequests' => WithdrawRequestResource::collection($lists), 'stats' => [ 'pending_count' => (clone $pending)->count(), 'pending_amount' => (int) (clone $pending)->sum('amount'), 'system_wallet_balance' => $this->walletService->system()->balance, ], 'search' => $request->search, 'status' => $request->status, ]); } public function approve(WithdrawRequest $withdrawRequest) { $this->withdrawRequestService->approve($withdrawRequest, Auth::user()); session()->flash('success', 'درخواست برداشت تایید شد و مبلغ به ولت سایت منتقل شد.'); return response(null, 200); } public function reject(WithdrawRejectRequest $request, WithdrawRequest $withdrawRequest) { $this->withdrawRequestService->reject($withdrawRequest, Auth::user(), $request->validated('note')); session()->flash('success', 'درخواست برداشت رد شد.'); return response(null, 200); } }