@push('styles') @endpush @push('scripts') @endpush @push('scripts') @php // Ensure session app_id is set from authenticated user before retrieving it if (Auth::check()) { $user = Auth::user(); if ($user && isset($user->app_id) && $user->app_id) { session(['app_id' => $user->app_id]); } else { session()->forget('app_id'); } } else { session()->forget('app_id'); } $currentAppId = \App\Helpers\QueryHelper::getAppId(); $encryptedAppIdForExport = $currentAppId ? \App\Services\AppIdEncryptionService::encryptForUrl($currentAppId) : ''; @endphp @endpush {{-- Breadcrumbs Navigation - Hidden on Dashboard --}} {{-- --}} {{-- Full-page loader for filters and AJAX data loading --}} {{-- Full-page loader for export --}}
{{-- Export Report Button --}}

{{ $this->getTitle() }}

{{-- Header Filters Section - Billing Page Style --}}
{{-- Form removed - using custom HTML inputs with direct JavaScript handling --}} {{-- Row 1: KPI Cards - All 6 in single row --}}
{{-- KPI cards will be loaded via AJAX --}}
{{-- Row 1: Conversion vs Retention Rate, Payment Gateway Distribution, and Payment Success vs Failure Trends - Three columns --}}

Conversion vs Retention Rate

Payment Gateway Distribution

Payment Success vs Failure Trends

{{-- Row 2: Subscriber Timeline Chart - Single row --}}

Subscriber Timeline

{{-- Row 3: Active Subscriber Movement Chart - Single row --}} {{-- Removed: Livewire component replaced with AJAX-based chart loading --}} {{-- Row 4: Cohort Retention and Payment Health by Gateway - 8:4 split --}}

Cohort Retention

Payment Health by Gateway

{{-- Row 6: Churned Customers and Payment Failures - Side by side --}} {{-- Removed: Livewire components replaced with AJAX-based widget loading --}}
@push('scripts') @php // Ensure session app_id is set from authenticated user before retrieving it if (Auth::check()) { $user = Auth::user(); if ($user && isset($user->app_id) && $user->app_id) { session(['app_id' => $user->app_id]); } else { session()->forget('app_id'); } } else { session()->forget('app_id'); } $currentAppId = \App\Helpers\QueryHelper::getAppId(); $currentRoleId = auth()->user()?->role_id ?? null; // Encrypt app_id for URL (same pattern as billing page) $encryptedAppId = $currentAppId ? \App\Services\AppIdEncryptionService::encryptForUrl($currentAppId) : ''; @endphp @endpush