Bill all meet sessions per participant instead of per hour.
Deploy Ladill Meet / deploy (push) Successful in 46s
Deploy Ladill Meet / deploy (push) Successful in 46s
Meetings and webinars now share GHS 0.30 per peak participant, with usage UI and plan quotas updated to match. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -6,8 +6,7 @@
|
||||
<div class="mt-6 rounded-2xl border border-slate-200 bg-white p-6">
|
||||
<h2 class="font-medium text-slate-900">Pay-as-you-go rates</h2>
|
||||
<ul class="mt-3 space-y-2 text-sm text-slate-600">
|
||||
<li>Live meetings: <span class="font-medium text-slate-900">GHS {{ number_format($billing->pricePerHourGhs(), 2) }} / hour</span> (billed when a session ends)</li>
|
||||
<li>Webinars & conferences: <span class="font-medium text-slate-900">GHS {{ number_format($billing->pricePerParticipantGhs(), 2) }} / participant</span> (peak attendance when the session ends)</li>
|
||||
<li>Meetings & webinars: <span class="font-medium text-slate-900">GHS {{ number_format($billing->pricePerParticipantGhs(), 2) }} / participant</span> (peak attendance when a session ends)</li>
|
||||
<li>Recordings & shared files: <span class="font-medium text-slate-900">GHS {{ number_format($billing->pricePerGbMonthGhs(), 2) }} / GB / month</span> (same as Ladill Transfer)</li>
|
||||
</ul>
|
||||
<p class="mt-3 text-xs text-slate-500">Charges debit your Ladill wallet. Storage renews monthly; unpaid items enter a {{ $billing->gracePeriodDays() }}-day grace period before deletion.</p>
|
||||
@@ -16,8 +15,7 @@
|
||||
<div class="mt-6 space-y-4">
|
||||
@php
|
||||
$rows = [
|
||||
'streaming_hours' => ['label' => 'Streaming hours', 'used' => number_format($summary['streaming_hours'] ?? 0, 1), 'cost' => $costs['streaming'] ?? 0],
|
||||
'participant_count' => ['label' => 'Webinar participants', 'used' => number_format($summary['participant_count'] ?? 0), 'cost' => $costs['participants'] ?? 0],
|
||||
'participant_count' => ['label' => 'Session participants', 'used' => number_format($summary['participant_count'] ?? 0), 'cost' => $costs['participants'] ?? 0],
|
||||
'recording_storage_bytes' => ['label' => 'Recording storage', 'used' => number_format(($summary['recording_storage_bytes'] ?? 0) / 1073741824, 2).' GB', 'cost' => $costs['recording_storage'] ?? 0],
|
||||
'file_storage_bytes' => ['label' => 'Shared file storage', 'used' => number_format(($summary['file_storage_bytes'] ?? 0) / 1073741824, 2).' GB', 'cost' => $costs['file_storage'] ?? 0],
|
||||
'ai_minutes' => ['label' => 'AI minutes', 'used' => number_format($summary['ai_minutes'] ?? 0), 'cost' => null],
|
||||
@@ -27,9 +25,9 @@
|
||||
@foreach ($rows as $metric => $row)
|
||||
@php
|
||||
$limit = (int) ($quotas[$metric] ?? 0);
|
||||
$pct = ($metric === 'streaming_hours' && $limit > 0)
|
||||
? min(100, round((($summary['streaming_hours'] ?? 0) / $limit) * 100))
|
||||
: (($metric !== 'streaming_hours' && $limit > 0)
|
||||
$pct = ($metric === 'participant_count' && $limit > 0)
|
||||
? min(100, round(((int) ($summary['participant_count'] ?? 0) / $limit) * 100))
|
||||
: (($metric !== 'participant_count' && $limit > 0)
|
||||
? min(100, round(((int) ($summary[$metric] ?? 0) / $limit) * 100))
|
||||
: 0);
|
||||
@endphp
|
||||
@@ -46,7 +44,7 @@
|
||||
@if ($limit > 0)
|
||||
<div class="mt-3 flex items-center justify-between text-xs text-slate-500">
|
||||
<span>Plan allowance</span>
|
||||
<span>{{ $metric === 'streaming_hours' ? number_format($limit) : number_format($limit / 1073741824, 0).' GB' }}</span>
|
||||
<span>{{ $metric === 'participant_count' ? number_format($limit) : number_format($limit / 1073741824, 0).' GB' }}</span>
|
||||
</div>
|
||||
<div class="mt-2 h-2 overflow-hidden rounded-full bg-slate-100">
|
||||
<div class="h-full rounded-full bg-indigo-500" style="width: {{ $pct }}%"></div>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
@endif
|
||||
|
||||
<div class="mt-4 rounded-xl border border-indigo-100 bg-indigo-50 px-4 py-3 text-sm text-indigo-900">
|
||||
Conference billing: <span class="font-medium">GHS {{ number_format(config('meet.billing.price_per_participant_ghs', 0.30), 2) }} per participant</span> (peak attendance when the session ends).
|
||||
Billed at <span class="font-medium">GHS {{ number_format(config('meet.billing.price_per_participant_ghs', 0.30), 2) }} per participant</span> (peak attendance when the session ends).
|
||||
</div>
|
||||
|
||||
<div class="mt-6 rounded-2xl border border-slate-200 bg-white p-6">
|
||||
|
||||
Reference in New Issue
Block a user