@extends('backend.virtual_card.index') @section('title', __('Virtual Card Providers')) @section('virtual_card_header') @php $providerItems = $providers->getCollection(); $activeProviders = $providerItems->where('status', true)->count(); $linkedGateways = $providerItems->filter(fn ($provider) => filled($provider->paymentGateway))->count(); $totalNetworks = $providerItems->flatMap(fn ($provider) => $provider->supported_networks ?? [])->filter()->unique()->count(); @endphp
{{ __('Virtual Cards') }}

{{ __('Provider Control Center') }}

{{ __('Manage issuing gateways, coverage, pricing, credentials, and operational capabilities from one workspace.') }}

{{ __('Active') }} {{ $activeProviders }}
{{ __('Gateways') }} {{ $linkedGateways }}
{{ __('Networks') }} {{ $totalNetworks }}
{{ __('Payment Gateways') }}
@endsection @section('virtual_card_content')
{{ __('Issuing Providers') }}

{{ __('Each provider card is generated from the same capability contract, so new gateways can be onboarded without a new admin screen.') }}

{{ trans_choice(':count provider|:count providers', $providers->total(), ['count' => $providers->total()]) }}
@forelse($providers as $provider) @php $caps = $provider->resolved_capabilities ?? []; $capLabels = [ 'issue' => __('Issue'), 'card_details' => __('Reveal'), 'topup' => __('Top-up'), 'withdraw' => __('Withdraw'), 'freeze' => __('Freeze'), 'limits' => __('Limits'), 'controls' => __('Controls'), ]; $gateway = $provider->paymentGateway; $supportedCapabilities = collect($capLabels)->filter(fn ($label, $key) => ! empty($caps[$key]))->count(); @endphp
{{ $provider->name }}
{{ $provider->code }}{{ $provider->brand ? ' / '.$provider->brand : '' }}
{{ $provider->status ? __('Active') : __('Inactive') }}
{{ __('Issue Fee') }} {{ $provider->fee_formatted }} @if((float) ($provider->issue_fee_pct ?? 0) > 0) {{ __('Plus :fee%', ['fee' => number_format((float) $provider->issue_fee_pct, 2)]) }} @endif
{{ __('Capabilities') }} {{ $supportedCapabilities }}/{{ count($capLabels) }} {{ __('enabled') }}
{{ number_format($provider->stat_total ?? 0) }} {{ __('total') }} {{ number_format($provider->stat_active ?? 0) }} {{ __('active') }} @if(($provider->stat_pending ?? 0) > 0) {{ number_format($provider->stat_pending) }} {{ __('pending') }} @endif @if(($provider->stat_failed ?? 0) > 0) {{ number_format($provider->stat_failed) }} {{ __('failed') }} @endif @if(($provider->stat_pending_requests ?? 0) > 0) {{ number_format($provider->stat_pending_requests) }} {{ __('reviews') }} @endif
@forelse($provider->supported_networks ?? [] as $net) {{ Str::upper($net) }} @empty {{ __('No networks') }} @endforelse @forelse($provider->supported_currencies ?? [] as $cur) {{ $cur }} @empty {{ __('All currencies') }} @endforelse
@foreach($capLabels as $key => $label) {{ $label }} @endforeach
@empty @endforelse
@if($providers->hasPages())
{{ $providers->withQueryString()->links() }}
@endif
@include('backend.virtual_card.partials._manage_modal') @include('backend.payment_gateway.partial._edit_payment_gateway_modal') @endsection