{{-- 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