@php /* * Overview — mirrors the Dashboard tile metrics. * Queries follow the same pattern as AdminPanel\DashboardController so the * numbers match what the user sees on the main dashboard. */ $pkg = $package ?? null; $lim = $limits ?? null; // 1. Email Credits — balance + monthly allocation (only if credits are enabled on the package). $creditsEnabled = !empty($pkg) && !empty($pkg->credits_enabled) && (int) $pkg->credits_enabled === 1; $emailCredits = (int) ($lim->credits ?? 0); $emailCreditsAllocation = null; if (!is_null($lim->monthly_credits ?? null)) { $emailCreditsAllocation = (int) $lim->monthly_credits; } elseif (!is_null($pkg->monthly_credits ?? null)) { $emailCreditsAllocation = (int) $pkg->monthly_credits; } // 2. Daily Email Limit — used vs limit $dailyUsed = (int) ($lim->sent_today ?? 0); $dailyLimit = $lim->daily_limit ?? ($pkg->daily_email_limit ?? null); // 3. Contacts — user_email_limits.contacts vs (user_email_limits.contacts_limit || packages.subscribers_limit) $contactsUsed = (int) ($lim->contacts ?? 0); $contactsLimit = null; if (!is_null($lim->contacts_limit ?? null) && (int) $lim->contacts_limit !== 0) { $contactsLimit = (int) $lim->contacts_limit; } elseif (!is_null($pkg->subscribers_limit ?? null)) { $contactsLimit = (int) $pkg->subscribers_limit; } // 4. Triggers — count(triggers where user_id) vs packages.triggers_limit $triggerCount = \DB::table('triggers')->where('user_id', $user->id)->count(); $triggerLimit = $pkg->triggers_limit ?? null; // 5. Evergreen Campaigns — count(evergreen_campaigns where user_id) vs packages.evergreen_campaigns $evergreenCount = \Schema::hasTable('evergreen_campaigns') ? \DB::table('evergreen_campaigns')->where('user_id', $user->id)->count() : 0; $evergreenLimit = $pkg->evergreen_campaigns ?? null; // 6. Segments — count(segmentations where user_id) vs packages.segments_limit $segmentCount = \DB::table('segmentations')->where('user_id', $user->id)->count(); $segmentLimit = $pkg->segments_limit ?? null; @endphp