<?php

namespace App\Http\Controllers\Api\V1;


use App\Http\Controllers\Api\V1\ApiController;
use App\Http\Requests\V1\SearchRequest;
use App\Libs\Api\ParsedListParams;
use App\Facades\Services\SearchService;
use App\Http\Resources\V1\SearchResultCollection;


class SearchController extends ApiController
{

    /**
     * Class constructor
     *
     * @return void
     */
    public function __construct()
    {
    }

    /**
     * Gets the search results 
     * GET api/v1/search
     * 
     */
    public function index(SearchRequest $request)
    {
        $data = $request->validated();

        $q                 = $data['q'];
        $parsedListParams  = new ParsedListParams($data);
        $limit             = $parsedListParams->itemsPerPage;
        $lang              = app()->getLocale();
        $results           = SearchService::search($q, $lang, $parsedListParams->pageNumber, $limit);


        return new SearchResultCollection($results);
    }
}
