<?php

namespace App\Modules\Tour\Application\UpdateTourTemplateBlank;

use App\Modules\Template\TourTemplate\Domain\IdTourTemplate;
use App\Modules\Shared\Domain\Bus\Query\QueryHandler;
use App\Modules\Tour\Domain\IdTour;

final class UpdateTourTemplateBlankTourQueryHandler implements QueryHandler
{
    public function __construct(private TourTourTemplateBlankUpdater $updater) {}

    public function __invoke(UpdateTourTemplateBlankTourQuery $query): UpdateTourTemplateBlankTourResponse
    {
        $this->updater->__invoke(
            new IdTour($query->id()),
            new IdTourTemplate($query->idTourTemplateBlank()),
            $query->idAdmin()
        );
        return new UpdateTourTemplateBlankTourResponse();
    }
}
