{{ $member->name }}

{{ $member->member_id }}

@can('edit members') Edit @endcan @php $statusColors = [ 'active' => 'bg-green-100 text-green-800', 'expiring_soon' => 'bg-yellow-100 text-yellow-800', 'expired' => 'bg-red-100 text-red-800', 'frozen' => 'bg-blue-100 text-blue-800', 'cancelled' => 'bg-gray-100 text-gray-500', ]; $statusLabels = [ 'active' => 'Active', 'expiring_soon' => 'Expiring Soon', 'expired' => 'Expired', 'frozen' => 'Frozen', 'cancelled' => 'Cancelled', ]; $activeMembership = $member->activeMembership; $daysLeft = $activeMembership?->ends_at ? max(0, now()->startOfDay()->diffInDays($activeMembership->ends_at->startOfDay(), false)) : null; @endphp
{{-- Profile header card --}}
{{-- Avatar --}}
@if($member->photo_url) {{ $member->name }} @else
{{ strtoupper(substr($member->name, 0, 1)) }}
@endif
{{-- Info --}}

{{ $member->name }}

{{ $statusLabels[$member->status] ?? ucfirst($member->status) }} @if($member->churn_risk) ⚠ Churn Risk @endif
{{ $member->phone }} @if($member->email) {{ $member->email }} @endif @if($member->branch) {{ $member->branch->name }} @endif Joined {{ $member->joined_at?->format('d M Y') }}
{{-- Membership stat box --}} @if($activeMembership)

{{ $daysLeft }}

Days Left

{{ $activeMembership->plan?->name }}

@endif
{{-- Tabs --}}
@foreach(['overview' => 'Overview', 'memberships' => 'Memberships', 'payments' => 'Payments', 'invoices' => 'Invoices', 'attendance' => 'Attendance'] as $key => $label) @endforeach
{{-- ── Overview tab ── --}}
{{-- Left col: personal details --}}

Personal Details

Gender
{{ $member->gender ?? '—' }}
Date of Birth
{{ $member->date_of_birth?->format('d M Y') ?? '—' }}
Height
{{ $member->height_cm ? $member->height_cm.' cm' : '—' }}
Weight
{{ $member->weight_kg ? $member->weight_kg.' kg' : '—' }}
Address
{{ collect([$member->address, $member->city, $member->state, $member->pincode])->filter()->join(', ') ?: '—' }}
@if($member->emergency_name)

Emergency Contact

Name
{{ $member->emergency_name }}
Phone
{{ $member->emergency_phone ?? '—' }}
Relation
{{ $member->emergency_relation ?? '—' }}
@endif
{{-- Right col: active membership --}}
@if($activeMembership)

Active Membership

@can('create memberships') Change Plan @endcan
Plan
{{ $activeMembership->plan?->name }}
Start
{{ $activeMembership->starts_at?->format('d M Y') }}
Expires
{{ $activeMembership->ends_at?->format('d M Y') ?? 'NA' }}
Amount
₹{{ number_format($activeMembership->net_amount ?? $activeMembership->plan_price) }}
@else

No active membership

@can('create memberships') Assign Plan @endcan
@endif {{-- Quick stats --}}

Quick Stats

Total Memberships
{{ $member->memberships->count() }}
Last Check-in
{{ $member->last_check_in_at?->diffForHumans() ?? 'Never' }}
Total Payments
{{ $payments->count() }}
{{-- ── Memberships tab ── --}}
@forelse($member->memberships as $ms) @empty @endforelse
Plan Start Expires Amount Status
{{ $ms->plan?->name ?? '—' }} {{ $ms->starts_at?->format('d M Y') }} {{ $ms->ends_at?->format('d M Y') ?? 'NA' }} ₹{{ number_format($ms->net_amount ?? $ms->plan_price) }} {{ $statusLabels[$ms->status] ?? ucfirst($ms->status) }}
No memberships yet
{{-- ── Payments tab ── --}}
@forelse($payments as $payment) @empty @endforelse
Date Amount Method Collected By Notes
{{ $payment->created_at->format('d M Y') }} ₹{{ number_format($payment->amount) }} {{ $payment->method }} {{ $payment->collectedBy?->name ?? '—' }} {{ $payment->notes ?? '—' }}
No payments recorded
{{-- ── Invoices tab ── --}}
@forelse($invoices as $invoice) @php $invColors = [ 'issued' => 'bg-blue-100 text-blue-700', 'paid' => 'bg-green-100 text-green-700', 'partially_paid' => 'bg-yellow-100 text-yellow-700', 'cancelled' => 'bg-gray-100 text-gray-500', 'overdue' => 'bg-red-100 text-red-700', ]; @endphp @empty @endforelse
Invoice # Plan Total Due Status
{{ $invoice->invoice_number }} {{ $invoice->membership?->plan?->name ?? '—' }} ₹{{ number_format($invoice->total_amount) }} ₹{{ number_format($invoice->amount_due) }} {{ ucfirst(str_replace('_', ' ', $invoice->status)) }} View →
No invoices yet
{{-- ── Attendance tab ── --}}
Attendance history is available in the Attendance Reports section. View Reports →