@php $programs = $this->getFilteredPrograms(); $allPrograms = $this->getPrograms(); $categories = $this->getCategories(); $locale = app()->getLocale(); $resolveName = function ($name) use ($locale) { if (is_array($name)) { return $name[$locale] ?? $name['en'] ?? array_values($name)[0] ?? '—'; } return $name ?: '—'; }; $avgPrice = count($allPrograms) > 0 ? (int) collect($allPrograms)->avg('price') : 0; $avgDuration = count($allPrograms) > 0 ? (int) collect($allPrograms)->avg('duration_days') : 0; @endphp {{-- Stats --}}
{{ count($allPrograms) }}
{{ __('admin.external.programs.total_programs') }}
{{ count($categories) }}
{{ __('admin.external.programs.category') }}
{{ number_format($avgPrice) }} SAR
{{ __('admin.external.programs.avg_price') }}
{{ $avgDuration }} {{ __('admin.external.programs.days') }}
{{ __('admin.external.programs.avg_duration') }}
{{-- Category Filter --}} @if(!empty($categories))
@foreach($categories as $category) @php $catName = $resolveName($category['name']); $catId = (int) $category['id']; @endphp @endforeach
@endif @if(empty($programs))

{{ __('admin.external.programs.empty') }}

{{ __('admin.external.programs.empty_desc') }}

@else {{-- Table --}}
@foreach($programs as $idx => $program) @php $progName = $resolveName($program['name'] ?? ''); $catDisplayName = $resolveName($program['category']['name'] ?? ''); @endphp @endforeach
ID {{ __('admin.external.programs.image') }} {{ __('admin.external.programs.name') }} {{ __('admin.external.programs.category') }} {{ __('admin.external.programs.price') }} {{ __('admin.external.programs.duration') }} {{ __('admin.external.programs.calories') }}
{{ $program['id'] }} @if(!empty($program['image_url'])) @else
@endif
{{ $progName }} @if(!empty($catDisplayName) && $catDisplayName !== '—') {{ $catDisplayName }} @else @endif {{ number_format($program['price']) }} SAR {{ $program['duration_days'] }}d @if($program['calories_min'] && $program['calories_max']){{ $program['calories_min'] }}-{{ $program['calories_max'] }}@elseif($program['calories_per_day']){{ $program['calories_per_day'] }}@else — @endif
@endif {{-- Detail Infolist --}} @if($this->selectedProgram) @php $p = $this->selectedProgram; $pName = $resolveName($p['name'] ?? ''); $pCat = $resolveName($p['category']['name'] ?? ''); @endphp
{{ __('Close') }}
{{-- Left: Image + Basic --}}
@if(!empty($p['image_url'])) @endif
{{ __('admin.external.programs.category') }}
{{ $pCat }}
{{ __('admin.external.programs.price') }}
{{ number_format($p['price']) }} SAR
@if($p['offer_price'] && $p['offer_price'] != $p['price'])
{{ __('admin.external.programs.offer_price') }}
{{ number_format($p['offer_price']) }} SAR
@endif @if(!empty($p['weekly_price']))
{{ __('admin.external.programs.weekly') }}
{{ number_format($p['weekly_price']) }} SAR
@endif
{{-- Right: Metrics --}}
{{ __('admin.external.programs.duration') }}
{{ $p['duration_days'] }} {{ __('admin.external.programs.days') }}
{{ __('admin.external.programs.calories') }}
@if($p['calories_min'] && $p['calories_max']){{ $p['calories_min'] }} - {{ $p['calories_max'] }} kcal @elseif($p['calories_per_day']){{ $p['calories_per_day'] }} kcal @else — @endif
@if(!empty($p['description']))
{{ __('admin.external.programs.description') }}
{{ $p['description'] }}
@endif
@if(!empty($p['badges']))
{{ __('admin.external.programs.badges') }}
@foreach($p['badges'] as $badge) {{ $badge['name'] }} @endforeach
@endif @if(!empty($p['calorie_options']))
{{ __('admin.external.programs.calories') }} Options
@foreach($p['calorie_options'] as $opt) {{ $opt['label'] }} @endforeach
@endif
@endif