@php $paymentLink ??= null; $merchants ??= collect(); $preselectMerchantId ??= null; $values = [ 'title' => old('title', $paymentLink?->title), 'description' => old('description', $paymentLink?->description), 'merchant_id' => old('merchant_id', $paymentLink?->merchant_id ?? $preselectMerchantId), 'currency_id' => old('currency_id', $paymentLink?->currency_id), 'amount' => old('amount', $paymentLink?->amount !== null ? rtrim(rtrim(number_format((float) $paymentLink->amount,siteDecimalPlaces(), '.', ''), '0'), '.') : null), 'min_amount' => old('min_amount', $paymentLink?->min_amount !== null ? rtrim(rtrim(number_format((float) $paymentLink->min_amount,siteDecimalPlaces(), '.', ''), '0'), '.') : null), 'max_amount' => old('max_amount', $paymentLink?->max_amount !== null ? rtrim(rtrim(number_format((float) $paymentLink->max_amount,siteDecimalPlaces(), '.', ''), '0'), '.') : null), 'expires_at' => old('expires_at', $paymentLink?->expires_at?->format('Y-m-d\TH:i')), 'max_payments' => old('max_payments', $paymentLink?->max_payments), ]; $merchantsByIdJson = $merchants ->mapWithKeys(function ($m) { $merchantCurrencies = $m->supportedCurrencies->isNotEmpty() ? $m->supportedCurrencies : collect([$m->currency])->filter(); $primaryCurrency = $m->primaryCurrency() ?? $merchantCurrencies->first(); return [ (int) $m->id => [ 'business_name' => $m->business_name, 'currency_id' => $primaryCurrency?->id, 'currency_code' => $primaryCurrency?->code, 'currency_name' => $primaryCurrency?->name, 'currencies' => $merchantCurrencies ->map(fn ($currency) => [ 'id' => (int) $currency->id, 'code' => $currency->code, 'name' => $currency->name, ]) ->values(), 'business_logo' => asset($m->business_logo), 'fee' => (float) $m->fee, ], ]; }) ->toJson(); @endphp