HEX
Server: LiteSpeed
System: Linux my-kul-web2054.main-hosting.eu 5.14.0-611.13.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 11 04:57:59 EST 2025 x86_64
User: u665686179 (665686179)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: /home/u665686179/domains/dealkr.com/public_html/app/Services/WithdrawRequestService.php
<?php

namespace App\Services;

class WithdrawRequestService
{
    /**
     * @return array[seller_id: int|string, amount: float|int, transaction_note: null, withdrawal_method_id: mixed, withdrawal_method_fields: false|string, approved: int, created_at: \Illuminate\Support\Carbon, updated_at: \Illuminate\Support\Carbon]
     */
    public function getWithdrawRequestData(object $withdrawMethod, object $request , string $addedBy, int|string $vendorId):array
    {
        return [
            'seller_id' => $addedBy === 'vendor' ? $vendorId : '',
            'amount' => currencyConverter($request['amount']),
            'transaction_note' => null,
            'withdrawal_method_id' => $request['withdraw_method'],
            'withdrawal_method_fields' => json_encode($this->getWithdrawMethodFields(request:$request,withdrawMethod:$withdrawMethod)),
            'approved' => 0,
            'created_at' => now(),
            'updated_at' => now()
        ];
    }

    /**
     * @param object $request
     * @param object $withdrawMethod
     * @return array
     */
    public function getWithdrawMethodFields(object $request, object $withdrawMethod):array
    {
        $inputFields = array_column($withdrawMethod['method_fields'], 'input_name');
        $method['method_name'] = $withdrawMethod['method_name'];
        $values = $request->all();
        foreach ($inputFields as $field) {
            if(key_exists($field, $values)) {
                $method[$field] = $values[$field];
            }
        }
        return $method;
    }

}