<?php

namespace App\Http\Controllers;

/*
 * FavoritesController — страница и JSON-endpoint избранного.
 *
 * Избранное хранится в localStorage браузера.
 * index()  — отдаёт пустую страницу (JS читает localStorage и вызывает load())
 * load()   — принимает POST с массивом IDs, возвращает HTML карточек
 */

use App\Models\Car;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\View\View;

class FavoritesController extends Controller
{
    public function index(): View
    {
        return view('pages.favorites');
    }

    // POST /favorites/load  {ids: [1,2,3]}  → HTML-фрагмент с карточками
    public function load(Request $request): JsonResponse
    {
        $ids = array_filter((array) $request->input('ids', []), 'is_numeric');
        $ids = array_map('intval', $ids);

        if (empty($ids)) {
            return response()->json(['html' => '', 'count' => 0]);
        }

        $cars = Car::whereIn('id', $ids)
            ->where('status', 'active')
            ->orderByRaw('FIELD(id, '.implode(',', $ids).')')
            ->get();

        $fuelLabels = ['petrol' => 'Бензин', 'diesel' => 'Дизель', 'hybrid' => 'Гибрид', 'electric' => 'Электро', 'gas' => 'Газ', 'other' => 'Другое'];
        $countryFlags = ['Германия' => '🇩🇪', 'Япония' => '🇯🇵', 'Корея' => '🇰🇷', 'США' => '🇺🇸', 'Китай' => '🇨🇳', 'ОАЭ' => '🇦🇪', 'Грузия' => '🇬🇪', 'Великобритания' => '🇬🇧', 'Франция' => '🇫🇷', 'Италия' => '🇮🇹'];

        $html = '';
        foreach ($cars as $car) {
            $html .= view('pages.partials._car_card', compact('car', 'fuelLabels', 'countryFlags'))->render();
        }

        return response()->json(['html' => $html, 'count' => $cars->count()]);
    }
}
