{{--
    Partial: picker-поля — cars_picker, makes_picker, reviews_picker, services_picker
    Переменные из родителя: $field, $prefix, $values
--}}

{{-- ── cars_picker — мультиселект авто из каталога ────────────────── --}}
@if($field['type'] === 'cars_picker')
    @php
        // Площадки из справочника — строго оттуда, не из car.platform
        $cpSection   = \App\Models\DictSection::where('code', 'platforms')->with('values')->first();
        $cpPlatforms = $cpSection ? $cpSection->values->pluck('value') : collect();

        $allCars     = \App\Models\Car::select('id', 'make', 'model', 'year', 'price_rub', 'price_usd', 'platform')
                           ->where('status', 'active')
                           ->orderBy('make')->orderBy('model')->get();
        $selectedIds = array_map('intval', $values[$field['name']] ?? []);
        $cpUid       = 'cp-' . Str::random(6); // уникальный id для изоляции JS на странице с несколькими picker-ами
    @endphp
    <div class="form-group">
        <label>{{ $field['label'] }}</label>

        {{-- Кнопки-фильтры по площадкам (данные из справочника) --}}
        @if($cpPlatforms->isNotEmpty())
        <div class="mb-2 d-flex flex-wrap" style="gap:4px">
            <button type="button"
                    class="btn btn-xs btn-primary cp-filter-btn"
                    data-picker="{{ $cpUid }}" data-platform="">
                Все
            </button>
            @foreach($cpPlatforms as $cpPl)
            <button type="button"
                    class="btn btn-xs btn-outline-secondary cp-filter-btn"
                    data-picker="{{ $cpUid }}" data-platform="{{ $cpPl }}">
                {{ $cpPl }}
            </button>
            @endforeach
        </div>
        @endif

        {{-- Список авто с data-platform для JS-фильтрации --}}
        <div class="border rounded p-2" style="max-height:280px;overflow-y:auto;background:#f8f9fa"
             id="{{ $cpUid }}-list">
            @forelse($allCars as $car)
                <div class="form-check cp-car-row"
                     data-picker="{{ $cpUid }}"
                     data-platform="{{ $car->platform }}">
                    <input class="form-check-input" type="checkbox"
                           name="{{ $prefix }}[{{ $field['name'] }}][]"
                           value="{{ $car->id }}"
                           id="car-{{ $car->id }}"
                           @checked(in_array($car->id, $selectedIds))>
                    <label class="form-check-label" for="car-{{ $car->id }}">
                        {{ $car->make }} {{ $car->model }} ({{ $car->year }})
                        @if($car->price_rub)
                            — {{ number_format($car->price_rub, 0, '.', ' ') }} ₽
                        @elseif($car->price_usd)
                            — {{ number_format($car->price_usd, 0, '.', ' ') }} $
                        @endif
                        @if($car->platform)
                            <span class="text-muted" style="font-size:11px">[{{ $car->platform }}]</span>
                        @endif
                    </label>
                </div>
            @empty
                <p class="text-muted small mb-0">В каталоге пока нет автомобилей.</p>
            @endforelse
        </div>
        <small class="text-muted">Порядок на странице — в том порядке, в каком выбраны.</small>
    </div>

    {{-- JS: фильтрация строк по площадке, изолирована по data-picker --}}
    <script>
    (function () {
        document.querySelectorAll('.cp-filter-btn[data-picker="{{ $cpUid }}"]').forEach(function (btn) {
            btn.addEventListener('click', function () {
                var picker   = this.dataset.picker;
                var platform = this.dataset.platform;

                // Переключаем активную кнопку
                document.querySelectorAll('.cp-filter-btn[data-picker="' + picker + '"]').forEach(function (b) {
                    b.classList.toggle('btn-primary',          b === btn);
                    b.classList.toggle('btn-outline-secondary', b !== btn);
                });

                // Показываем/скрываем строки
                document.querySelectorAll('.cp-car-row[data-picker="' + picker + '"]').forEach(function (row) {
                    row.style.display = (!platform || row.dataset.platform === platform) ? '' : 'none';
                });
            });
        });
    })();
    </script>

{{-- ── makes_picker — чекбоксы марок из справочника dict_values ──── --}}
@elseif($field['type'] === 'makes_picker')
    @php
        $makesSection  = \App\Models\DictSection::where('code', 'makes')->first();
        $allMakeObjs   = $makesSection
            ? \App\Models\DictValue::where('section_id', $makesSection->id)
                  ->whereNull('parent_id')
                  ->orderBy('sort_order')
                  ->get(['id', 'value', 'logo'])
            : collect();
        $selectedMakes = $values[$field['name']] ?? [];
    @endphp
    <div class="form-group">
        <label>{{ $field['label'] }}</label>
        <div class="border rounded p-2" style="background:#f8f9fa">
            <div class="row">
                @forelse($allMakeObjs as $makeObj)
                    <div class="col-6 col-md-4">
                        <div class="form-check d-flex align-items-center">
                            <input class="form-check-input flex-shrink-0" type="checkbox"
                                   name="{{ $prefix }}[{{ $field['name'] }}][]"
                                   value="{{ $makeObj->value }}"
                                   id="make-{{ Str::slug($makeObj->value) }}"
                                   @checked(in_array($makeObj->value, $selectedMakes))>
                            <label class="form-check-label d-flex align-items-center ml-1"
                                   for="make-{{ Str::slug($makeObj->value) }}">
                                @if($makeObj->logo)
                                    <img src="{{ asset('storage/' . $makeObj->logo) }}"
                                         alt="{{ $makeObj->value }}"
                                         style="width:24px;height:24px;object-fit:contain;margin-right:5px">
                                @endif
                                {{ $makeObj->value }}
                            </label>
                        </div>
                    </div>
                @empty
                    <p class="text-muted small mb-0 col-12">Добавьте марки в справочник «Марки и модели».</p>
                @endforelse
            </div>
        </div>
        <small class="text-muted">Выбранные марки выводятся в алфавитном порядке в блоке.</small>
    </div>

{{-- ── reviews_picker — выбор отзывов из таблицы reviews ─────────── --}}
@elseif($field['type'] === 'reviews_picker')
    @php
        $allReviews  = \App\Models\Review::orderBy('sort_order')->orderByDesc('created_at')->get();
        $selectedIds = array_map('intval', $values[$field['name']] ?? []);
    @endphp
    <div class="form-group">
        <label>{{ $field['label'] }}</label>
        @if($allReviews->isEmpty())
            <div class="alert alert-warning py-2">
                Отзывов пока нет. <a href="{{ route('admin.reviews.create') }}" target="_blank">Добавить отзыв</a>
            </div>
        @else
            <div class="border rounded p-2" style="max-height:300px;overflow-y:auto;background:#f8f9fa">
                @foreach($allReviews as $rev)
                    <div class="form-check">
                        <input class="form-check-input" type="checkbox"
                               name="{{ $prefix }}[{{ $field['name'] }}][]"
                               value="{{ $rev->id }}"
                               id="rev-{{ $rev->id }}"
                               @checked(in_array($rev->id, $selectedIds))>
                        <label class="form-check-label" for="rev-{{ $rev->id }}">
                            <strong>{{ $rev->author }}</strong>
                            @if($rev->car_name) — {{ $rev->car_name }}@endif
                            <span style="color:#f39c12">
                                {{ str_repeat('★', $rev->rating) }}{{ str_repeat('☆', 5 - $rev->rating) }}
                            </span>
                            @if(!$rev->is_active)
                                <span class="badge badge-secondary ml-1">скрыт</span>
                            @endif
                        </label>
                    </div>
                @endforeach
            </div>
            <small class="text-muted">
                Выбранные отзывы выводятся в порядке их sort_order.
                <a href="{{ route('admin.reviews.index') }}" target="_blank">Управление отзывами</a>
            </small>
        @endif
    </div>

{{-- ── services_picker — чекбоксы услуг из таблицы services ─────── --}}
@elseif($field['type'] === 'services_picker')
    @php
        $allServices = \App\Models\Service::orderBy('sort_order')->orderBy('title')->get();
        $selectedIds = array_map('intval', $values[$field['name']] ?? []);
    @endphp
    <div class="form-group">
        <label>{{ $field['label'] }}</label>
        @if($allServices->isEmpty())
            <div class="alert alert-warning py-2">
                Услуг пока нет. <a href="{{ route('admin.services.create') }}" target="_blank">Добавить</a>
            </div>
        @else
            <div class="border rounded p-2" style="max-height:280px;overflow-y:auto;background:#f8f9fa">
                @foreach($allServices as $svc)
                    <div class="form-check">
                        <input class="form-check-input" type="checkbox"
                               name="{{ $prefix }}[{{ $field['name'] }}][]"
                               value="{{ $svc->id }}"
                               id="svc-{{ $svc->id }}"
                               @checked(in_array($svc->id, $selectedIds))>
                        <label class="form-check-label" for="svc-{{ $svc->id }}">
                            @if($svc->icon) {{ $svc->icon }} @endif
                            <strong>{{ $svc->title }}</strong>
                            @if(!$svc->is_active)
                                <span class="badge badge-secondary ml-1">скрыта</span>
                            @endif
                        </label>
                    </div>
                @endforeach
            </div>
            <small class="text-muted">
                Оставьте пустым — будут показаны последние N активных услуг.
                <a href="{{ route('admin.services.index') }}" target="_blank">Управление услугами</a>
            </small>
        @endif
    </div>
@endif
