Add freemium plans, wallet-billed host notifications, and Pro upgrades.
Deploy Ladill Frontdesk / deploy (push) Successful in 44s

Host alerts use email/phone on the host record without requiring a Ladill
account link; SMS and over-quota emails debit the org wallet at platform rates.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
isaacclad
2026-06-28 02:00:26 +00:00
co-authored by Cursor
parent 5a42759886
commit 33b6070207
23 changed files with 912 additions and 20 deletions
@@ -6,6 +6,50 @@
<h1 class="text-xl font-semibold text-slate-900">Settings</h1>
<p class="text-sm text-slate-500">{{ $organization->name }}</p>
@if ($canManage)
<section class="mt-6 max-w-2xl rounded-2xl border border-slate-200 bg-white p-5">
<div class="flex flex-wrap items-start justify-between gap-4">
<div>
<h2 class="text-sm font-semibold text-slate-900">Plan</h2>
<p class="mt-1 text-sm text-slate-600">
@if ($isPro)
<span class="font-medium text-indigo-700">{{ $plan['label'] ?? 'Pro' }}</span> unlimited branches &amp; kiosks, integrations, and unlimited host emails (SMS still billed per segment).
@else
<span class="font-medium">Free</span> 1 branch, 1 kiosk, core check-in &amp; badges. Host alerts billed after {{ number_format($freeEmailAllowance) }} free emails/month.
@endif
</p>
</div>
@if (! $isPro)
<form method="POST" action="{{ route('frontdesk.settings.upgrade') }}">
@csrf
<button type="submit" class="btn-primary text-sm">Upgrade to Pro (GHS {{ number_format($proPriceMinor / 100, 2) }}/mo)</button>
</form>
@endif
</div>
<dl class="mt-4 grid gap-3 text-sm sm:grid-cols-2">
<div>
<dt class="text-slate-500">Host emails this month</dt>
<dd class="font-medium">
@if ($freeEmailAllowance === null)
{{ number_format($monthlyUsage->email_count) }} sent (unlimited on Pro)
@else
{{ number_format($monthlyUsage->email_count) }} / {{ number_format($freeEmailAllowance) }} free
@endif
</dd>
</div>
<div>
<dt class="text-slate-500">Host SMS this month</dt>
<dd class="font-medium">{{ number_format($monthlyUsage->sms_count) }} sent</dd>
</div>
</dl>
<p class="mt-3 text-xs text-slate-500">
Email {{ $emailCostFormatted }} each after free allowance · SMS from {{ $smsCostFormatted }} per segment charged to your
<a href="{{ route('frontdesk.wallet') }}" class="text-indigo-600 underline">Ladill wallet</a>.
Hosts are notified via email or phone on their profile; linking a Ladill account is optional (in-app bell only).
</p>
</section>
@endif
<form method="POST" action="{{ route('frontdesk.settings.update') }}" enctype="multipart/form-data" class="mt-6 max-w-2xl space-y-6">
@csrf @method('PUT')
@@ -70,6 +114,7 @@
</div>
<div>
<p class="text-sm font-medium text-slate-700">Notification channels</p>
<p class="mt-1 text-xs text-slate-500">Alerts go to each host's email and/or phone no Ladill account required.</p>
<div class="mt-2 flex flex-wrap gap-3">
@foreach ($notificationChannels as $key => $label)
<label class="flex items-center gap-2 text-sm">