<?php

namespace App\Modules\Package\Application\ReservedInclusions;

use App\Modules\Booking\Domain\IdBooking;
use App\Modules\Package\Domain;
use App\Modules\Package\Domain\PackageRepository;
use App\Modules\Package;
use App\Modules\Package\Domain\IdPackage;
use App\Modules\Package\Domain\ReservedInclusionsPackage;
use App\Modules\Shared\Domain\Bus\Query\QueryBus;

final class PackageReservedInclusionsLister
{
    public function __construct(
        private PackageRepository $repository,
        private QueryBus $queryBus
    ) {}

    public function __invoke(
        IdPackage $idPackage,
        IdBooking $idBooking
    ) {
        return $this->repository->reservedInclusions(new ReservedInclusionsPackage($idPackage, $idBooking, $this->queryBus));
    }
}
