<?php

namespace App\Http\Controllers\Frontend;

use App\Facades\SearchProfileService;
use App\Http\Controllers\Controller;
use App\Http\Requests\SearchProfileIndexRequest;
use App\Http\Requests\SearchProfileCreateRequest;
use App\Http\Requests\SearchProfileUpdateRequest;
use App\Http\Resources\SearchProfiles\SearchProfileResource;
use Illuminate\Support\Facades\Auth;

class SearchProfileController extends Controller
{
    public function index(SearchProfileIndexRequest $request)
    {
        $data = $request->validated();
        $user = Auth::user();

        $searchProfiles = SearchProfileService::getSearchProfiles($data, $user);

        return SearchProfileResource::collection($searchProfiles);
    }

    public function show(int $id)
    {
        $user = Auth::user();
        $searchProfile = SearchProfileService::findById($id, $user);

        return new SearchProfileResource($searchProfile);
    }

    public function create(SearchProfileCreateRequest $request)
    {
        $data = $request->validated();
        $user = Auth::user();

        $searchProfile = SearchProfileService::create($data, $user);

        return new SearchProfileResource($searchProfile);
    }

    public function update(SearchProfileUpdateRequest $request, int $id)
    {
        $data = $request->validated();
        $user = Auth::user();

        $searchProfile = SearchProfileService::update($id, $data, $user);

        return new SearchProfileResource($searchProfile);
    }
}
