@section('page-title', 'Policy — ' . $policy->name) @php $statusConfig = [ 'active' => ['label' => 'Active', 'bg' => 'bg-emerald-50', 'text' => 'text-emerald-700', 'ring' => 'ring-emerald-200', 'dot' => 'bg-emerald-500', 'badge' => 'badge-green', 'header' => 'bg-emerald-50 border-emerald-200'], 'due' => ['label' => 'Payment Due', 'bg' => 'bg-amber-50', 'text' => 'text-amber-700', 'ring' => 'ring-amber-200', 'dot' => 'bg-amber-400', 'badge' => 'badge-yellow', 'header' => 'bg-amber-50 border-amber-200'], 'suspended' => ['label' => 'Suspended', 'bg' => 'bg-red-50', 'text' => 'text-red-700', 'ring' => 'ring-red-200', 'dot' => 'bg-red-500', 'badge' => 'badge-red', 'header' => 'bg-red-50 border-red-200'], 'pending_reactivation' => ['label' => 'Pending Reactivation', 'bg' => 'bg-orange-50', 'text' => 'text-orange-700', 'ring' => 'ring-orange-200', 'dot' => 'bg-orange-400', 'badge' => 'badge-orange', 'header' => 'bg-orange-50 border-orange-200'], 'cancelled' => ['label' => 'Cancelled', 'bg' => 'bg-slate-50', 'text' => 'text-slate-500', 'ring' => 'ring-slate-200', 'dot' => 'bg-slate-400', 'badge' => 'badge-gray', 'header' => 'bg-slate-50 border-slate-200'], 'lapsed' => ['label' => 'Lapsed', 'bg' => 'bg-slate-50', 'text' => 'text-slate-500', 'ring' => 'ring-slate-200', 'dot' => 'bg-slate-400', 'badge' => 'badge-gray', 'header' => 'bg-slate-50 border-slate-200'], ]; $statusOrder = ['active', 'due', 'suspended', 'pending_reactivation', 'cancelled', 'lapsed']; @endphp

{{ $policy->name }}

{{ ucfirst($policy->status) }}

{{ $policy->code }} • {{ $policy->currency }} • {{ $principalCount }} principal member{{ $principalCount !== 1 ? 's' : '' }}

@can('manage_policies') Edit Package @endcan Back
{{-- Stats row --}}

{{ $principalCount }}

Principals

{{ $dependantCount }}

Dependants

{{ $activeCount }}

Active

{{ $dueCount }}

Payment Due

{{ $suspendedCount }}

Suspended

{{ $pendingReactiveCount + $cancelledCount }}

Pending / Cancelled

{{-- Plan info + Benefit limits --}}
{{-- Left: plan details + waiting periods --}}

Plan Details

@if($policy->description)
Description
{{ $policy->description }}
@endif
Monthly Premium
{{ $policy->currency }} {{ number_format($policy->monthly_premium_cents / 100, 2) }}
per principal / month • {{ $policy->currency }} {{ number_format($expectedMonthly / 100, 2) }} expected/mo
Global Annual Limit
${{ number_format($policy->global_limit_cents / 100, 2) }}
Waiting Period Waiver
{{ $policy->has_waiting_period_waiver ? 'Yes — all waived' : 'No' }}

Waiting Periods

@foreach(['general' => 'General', 'specialist' => 'Specialist', 'maternity' => 'Maternity', 'chronic' => 'Chronic', 'appliance' => 'Appliance'] as $key => $label)
{{ $label }}
{{ $policy->{"{$key}_waiting_months"} }} mo
@endforeach
{{-- Right: benefits + corporate clients --}}

Benefit Limits

@if(empty($policy->benefit_limits))

No benefit limits defined.

@else
@foreach($policy->benefit_limits as $category => $limits)

{{ str_replace('_', ' ', $category) }}

@if(is_array($limits)) @foreach($limits as $key => $val)

{{ ucfirst(str_replace('_',' ',$key)) }}: ${{ number_format($val / 100, 2) }}

@endforeach @endif
@endforeach
@endif
@if($policy->corporateClients->count() > 0)

Corporate Clients ({{ $policy->corporateClients->count() }})

@foreach($policy->corporateClients as $cc)

{{ $cc->name }}

Reg: {{ $cc->registration_number }}

{{ $cc->has_waiting_period_waiver ? 'Waiver' : 'No waiver' }}
@endforeach
@endif
{{-- Members grouped by status --}}

Members by Status ({{ $principalCount }} principal{{ $principalCount !== 1 ? 's' : '' }}, {{ $dependantCount }} dependant{{ $dependantCount !== 1 ? 's' : '' }})

@if($principalCount > 0) View all in members → @endif
@if($principalMembers->isEmpty())

No members enrolled on this package yet.

@else @foreach($statusOrder as $statusKey) @if(isset($membersByStatus[$statusKey]) && $membersByStatus[$statusKey]->count() > 0) @php $group = $membersByStatus[$statusKey]; $cfg = $statusConfig[$statusKey] ?? $statusConfig['active']; $groupId = 'status-group-' . $statusKey; @endphp
{{-- Group header --}} {{-- Member rows --}}
@foreach($group as $member) @endforeach
# Name National ID Phone Join Date Dependants Corporate
{{ $member->member_number }}
{{ strtoupper(substr($member->first_name, 0, 1)) }}
{{ $member->full_name }}

{{ $member->email ?? '—' }}

{{ $member->national_id ?? '—' }} {{ $member->phone ?? '—' }} {{ $member->join_date?->format('d M Y') ?? '—' }} @php $depCount = $member->dependants->count(); @endphp @if($depCount > 0) {{ $depCount }} @else @endif {{ $member->corporateClient?->name ?? '—' }}
@endif @endforeach @endif