@section('title', 'Zone Management - Clinic Admin Dashboard')

Zone Management

Manage geographical zones and nurse assignments for {{ $clinic->name }}

@if (session()->has('success'))
{{ session('success') }}
@endif @if (session()->has('error'))
{{ session('error') }}
@endif
@forelse($zones as $zone)

Zone {{ $zone->zone_code }}

{{ $zone->zone_name }}

@if($zone->is_active) Active @else Inactive @endif
{{ $zone->active_nurses_count }}
Nurses
{{ $zone->active_mothers_count }}
Mothers
@if($zone->boundary_notes)

{{ Str::limit($zone->boundary_notes, 90) }}

@endif @if($zone->coverage_areas && count($zone->coverage_areas) > 0)

Coverage Areas ({{ count($zone->coverage_areas) }})

@if(count($zone->coverage_areas) > 4)
@endif
@php $areasToShow = in_array($zone->id, $expandedCoverageAreas) ? $zone->coverage_areas : array_slice($zone->coverage_areas, 0, 4); @endphp
@if(in_array($zone->id, $summaryViewAreas)) @php $areaGroups = collect($zone->coverage_areas)->mapToGroups(fn($area) => [explode(' ', trim($area))[0] => $area]); @endphp
    @foreach($areaGroups->take(3) as $groupName => $areas)
  • {{ $groupName }}: {{ count($areas) }} area{{ count($areas) > 1 ? 's' : '' }}
  • @endforeach @if($areaGroups->count() > 3)
  • ... and {{ $areaGroups->count() - 3 }} more groups
  • @endif
@else
    @foreach($areasToShow as $area)
  • {{ $area }}
  • @endforeach @if(count($zone->coverage_areas) > 4 && !in_array($zone->id, $expandedCoverageAreas))
  • ... and {{ count($zone->coverage_areas) - 4 }} more
  • @endif
@endif
@endif @if($zone->postcodes && count($zone->postcodes) > 0)

Postcodes

@foreach(array_slice($zone->postcodes, 0, 5) as $postcode) {{ $postcode }} @endforeach @if(count($zone->postcodes) > 5) +{{ count($zone->postcodes) - 5 }} @endif
@endif

Assigned Nurses

@if($zone->activeNurses && $zone->activeNurses->count() > 0)
@foreach($zone->activeNurses->take(2) as $nurse)
@if($nurse->profile_picture) {{ $nurse->name }} @else {{ $nurse->name }} @endif
{{ $nurse->name }}
{{ $nurse->staff_id }}
@if($nurse->pivot->coverage_areas && count($nurse->pivot->coverage_areas) > 0)
@foreach(array_slice($nurse->pivot->coverage_areas, 0, 2) as $area)
{{ $area }}
@endforeach @if(count($nurse->pivot->coverage_areas) > 2)
... and {{ count($nurse->pivot->coverage_areas) - 2 }} more areas
@endif
@endif
@endforeach @if($zone->activeNurses->count() > 2)
+ {{ $zone->activeNurses->count() - 2 }} more nurses
@endif
@else
No nurses assigned.
@endif
@empty

No Zones Found

Click "Create Zone" to get started with managing your clinic's areas.

@endforelse
{{-- MODALS SECTION --}} @if($showNurseAssignmentModal || $showZoneDetailsModal)
@if($showNurseAssignmentModal)

Assign Nurse to Zone

@error('selected_nurse_id') {{ $message }} @enderror
@error('assignment_start_date') {{ $message }} @enderror
@endif @if($showZoneDetailsModal && $selectedZone)

Zone Details

Zone {{ $selectedZone->zone_code }} - {{ $selectedZone->zone_name }}

Information

Status:
@if($selectedZone->is_active) Active @else Inactive @endif
Total Mothers:
{{ $selectedZone->activeMothers->count() }}
@if($selectedZone->boundary_notes)

Boundaries

{{ $selectedZone->boundary_notes }}

@endif @if($selectedZone->postcodes && count($selectedZone->postcodes) > 0)

Postcodes

@foreach($selectedZone->postcodes as $postcode) {{ $postcode }} @endforeach
@endif

Assigned Nurses ({{ $selectedZone->activeNurses->count() }})

@forelse($selectedZone->activeNurses as $nurse)
@if($nurse->profile_picture) {{ $nurse->name }} @else {{ $nurse->name }} @endif

{{ $nurse->name }}

Since: {{ \Carbon\Carbon::parse($nurse->pivot->start_date)->format('M d, Y') }}

@if($nurse->pivot->coverage_areas && count($nurse->pivot->coverage_areas) > 0)
Coverage Areas:
@foreach($nurse->pivot->coverage_areas as $area) {{ $area }} @endforeach
@endif
@empty

No nurses are currently assigned to this zone.

@endforelse

Assigned Mothers ({{ $selectedZone->activeMothers->count() }})

@forelse($selectedZone->activeMothers as $assignment)
Mother

{{ $assignment->mother->mother_full_name ?? $assignment->mother->user->name }}

Nurse: {{ $assignment->nurse->name ?? 'Unassigned' }}

{{ \Carbon\Carbon::parse($assignment->assigned_at)->format('M d, Y') }}
@empty

No mothers are currently assigned to this zone.

@endforelse
@endif
@endif