@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->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') }}
{{ __('Issuance Stats') }}
{{ 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
{{ __('Coverage') }}
@forelse($provider->supported_networks ?? [] as $net)
{{ Str::upper($net) }}
@empty
{{ __('No networks') }}
@endforelse
@forelse($provider->supported_currencies ?? [] as $cur)
{{ $cur }}
@empty
{{ __('All currencies') }}
@endforelse
{{ __('Provider Tools') }}
@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