<?php

namespace App\Http\Controllers\Frontend;

use App\Facades\FiltersService;
use App\Http\Controllers\Controller;
use App\Http\Requests\CpvSearchRequest;
use App\Http\Resources\Filters\BuildingTypeResource;
use App\Http\Resources\Filters\CpvCodeResource;
use App\Http\Resources\Filters\DepartmentResource;
use App\Http\Resources\Filters\ProcedureTypeResource;

class FiltersController extends Controller
{
    public function getProcedureTypes()
    {
        $procedureTypes = FiltersService::getProcedureTypes();

        return ProcedureTypeResource::collection($procedureTypes);
    }

    public function getDepartments()
    {
        $departments = FiltersService::getDepartments();

        return DepartmentResource::collection($departments);
    }

    public function searchCpvs(CpvSearchRequest $request)
    {
        $data = $request->validated();

        $searchString = !empty($data['search']) ? $data['search'] : '';
        $itemsPerPage = !empty($data['itemsPerPage']) ? $data['itemsPerPage'] : 20;

        $cpvCodes = FiltersService::getCpvCodes($searchString, $itemsPerPage);

        return CpvCodeResource::collection($cpvCodes);
    }

    public function getBuildingTypes()
    {
        $buildingTypes = FiltersService::getBuildingTypes();

        return BuildingTypeResource::collection($buildingTypes);
    }
}
