@props(['categories', 'currency' => 'TL', 'clickable' => true, 'serviceOpenOverride' => null])
@if(isset($categories) && $categories->count())
@foreach($categories as $category)
@php
// When a group-level override is provided (grouped view), always render the
// full accordion so customers can browse products. Ordering is controlled
// solely via the $clickable prop.
if ($serviceOpenOverride !== null) {
$isServiceOpen = true; // Always show accordion in grouped mode
$isGroupClosed = !$serviceOpenOverride;
$serviceClosedReason = $groupClosedReason ?? __('menu.group_service_closed');
} else {
$isServiceOpen = $category->service_open ?? true;
$isGroupClosed = false;
$serviceClosedReason = $category->service_closed_reason ?? null;
}
@endphp
@if($isServiceOpen)
@php
$categoryData = $category->data ?? [];
$hasCategoryHours = $categoryData['service_hours_enabled'] ?? false;
$categorySlots = $hasCategoryHours ? ($categoryData['service_hours'][now()->dayOfWeekIso] ?? []) : [];
// Eski format dönüşümü
if (isset($categorySlots['start'])) {
$categorySlots = [['name' => 'Servis', 'open' => $categorySlots['start'], 'close' => $categorySlots['end']]];
}
$categorySlots = collect($categorySlots)->filter(fn($s) => !($s['is_closed'] ?? false));
@endphp
@if($hasCategoryHours && $categorySlots->isNotEmpty())
timelapse
{{ __('menu.service_hours') }}
@foreach($categorySlots as $slot)
{{ $slot['open'] ?? '' }} - {{ $slot['close'] ?? '' }}{{ !$loop->last ? ',' : '' }}
@endforeach
@endif
@foreach($category->products as $product)
@include('menu.partials.product-card', ['product' => $product, 'category' => $category, 'currency' =>
$currency, 'clickable' => $clickable])
@endforeach
@else
image ?? null)
style="background-image: linear-gradient(rgba(255,255,255,0.9), rgba(255,255,255,0.9)), url('{{ asset('storage/' .
str_replace('uploads/', '', $category->image->url)) }}'); background-size: cover; background-position: center;"
@endif
>
{{ $category->name }}
{{ $serviceClosedReason ?? __('menu.category_service_closed') }}
@endif
@endforeach
@endif