@extends('layouts.admin_layout') @push('styles') @endpush @section('content')
{{-- ══ Header ══ --}}

Remvo Deposits

Every successful Naira payment is auto-credited to the user's USD wallet the moment Remvo confirms it. No manual review needed.

NAIRA · REMVO
{{-- ══ Stats ══ --}} @php // Build sparkline path from $sparkData (server-rendered SVG, no JS deps) $sparkCounts = array_column($sparkData, 'cnt'); $sparkUsds = array_column($sparkData, 'usd'); $sparkMax = max($sparkCounts) ?: 1; $sparkUsdMax = max($sparkUsds) ?: 1; $n = max(count($sparkData) - 1, 1); $buildSpark = function (array $values, $max) use ($n) { $pts = []; foreach ($values as $i => $v) { $x = round(($i / $n) * 100, 2); $y = round(28 - (($v / $max) * 22), 2); $pts[] = "{$x},{$y}"; } $line = 'M' . implode(' L', $pts); $area = 'M' . $pts[0] . ' L' . implode(' L', $pts) . " L100,28 L0,28 Z"; return ['line' => $line, 'area' => $area, 'last' => end($pts)]; }; $countSpark = $buildSpark($sparkCounts, $sparkMax); $usdSpark = $buildSpark($sparkUsds, $sparkUsdMax); // 24h delta presentation $deltaClass = $stats['count_delta'] > 0 ? 'up' : ($stats['count_delta'] < 0 ? 'down' : 'flat'); $deltaIcon = $stats['count_delta'] > 0 ? '↑' : ($stats['count_delta'] < 0 ? '↓' : '–'); $deltaText = $stats['count_delta'] === 0 ? 'no change' : sprintf('%s%d', $deltaIcon, abs($stats['count_delta'])); @endphp
{{-- Total deposits + 7d trend --}}
Deposits 7 days
{{ number_format($stats['total_count']) }}
{{ $stats['unique_users'] }} unique {{ \Illuminate\Support\Str::plural('user', $stats['unique_users']) }}
@if ($sparkCounts[count($sparkCounts)-1] > 0) @php $last = explode(',', $countSpark['last']); @endphp @endif
{{-- Credited USD --}}
Credited Lifetime
${{ number_format($stats['total_usd'], 2) }}
avg ${{ number_format($stats['avg_usd'], 2) }} / deposit
{{-- Naira collected --}}
Naira Collected
₦{{ number_format($stats['total_ngn'], 0) }}
via Remvo · settled to wallet
{{-- Last 24h --}}
Last 24 Hours {{ $deltaText }}
{{ number_format($stats['count_24h']) }}
${{ number_format($stats['usd_24h'], 2) }} credited today
{{-- ══ Filter bar ══ --}}
Reset
{{-- ══ Table ══ --}}
@if ($deposits->count() === 0)

No deposits to show

{{ $search || $from || $to ? 'No deposits match your filters.' : 'Once users start depositing Naira via Remvo, every successful payment will appear here.' }}

@else
@foreach ($deposits as $d) @php $confirmed = \Carbon\Carbon::parse($d->confirmed_at, 'UTC')->setTimezone('Africa/Lagos'); $fullName = trim(($d->first_name ?? '') . ' ' . ($d->last_name ?? '')); $initials = '?'; if ($fullName) { $parts = preg_split('/\s+/', $fullName); $initials = strtoupper(substr($parts[0], 0, 1) . substr($parts[count($parts)-1], 0, 1)); } elseif ($d->email) { $initials = strtoupper(substr($d->email, 0, 2)); } @endphp @endforeach
User Amount Naira Rate Confirmed Reference Status
{{ $initials }}
{{ $fullName ?: ($d->email ?: '(deleted)') }}
#{{ $d->user_id }}{{ $fullName ? ' · ' . $d->email : '' }}
${{ number_format($d->amount_usd, 2) }} ₦{{ number_format($d->amount_ngn, 0) }} ₦{{ number_format($d->rate_applied, 0) }}/$
{{ $confirmed->format('M j, H:i') }}
{{ $confirmed->diffForHumans(null, true) }} ago
{{ $d->reference }} Credited
@endif
{{ $deposits->links() }}
{{-- ══ Maker's mark ══ --}}
Remvo · Naira Gateway · v1.0
Built by The Brick Dev Studios
{{-- ══════════════════════════════════════════════════════════ Modal — Formatted deposit detail (kept INSIDE .rvo so it inherits the design-token CSS variables) ══════════════════════════════════════════════════════════ --}}
@endsection