123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- declare(strict_types=1);
- namespace Magento\InventoryDistanceBasedSourceSelection\Model\DistanceProvider;
- use Magento\InventoryApi\Api\Data\SourceInterface;
- use Magento\InventorySourceSelectionApi\Api\Data\AddressInterface;
- use Magento\InventoryDistanceBasedSourceSelectionApi\Api\GetDistanceInterface;
- use Magento\InventoryDistanceBasedSourceSelectionApi\Api\GetLatLngFromAddressInterface;
- /**
- * Class GetDistanceFromSourceToAddress
- */
- class GetDistanceFromSourceToAddress
- {
- /**
- * @var GetLatLngFromSource
- */
- private $getLatLngFromSource;
- /**
- * @var GetLatLngFromAddressInterface
- */
- private $getLatLngFromAddress;
- /**
- * @var GetDistanceInterface
- */
- private $getDistance;
- /**
- * GetDistanceFromSourceToAddress constructor.
- *
- * @param GetLatLngFromSource $getLatLngFromSource
- * @param GetLatLngFromAddressInterface $getLatLngFromAddress
- * @param GetDistanceInterface $getDistance
- */
- public function __construct(
- GetLatLngFromSource $getLatLngFromSource,
- GetLatLngFromAddressInterface $getLatLngFromAddress,
- GetDistanceInterface $getDistance
- ) {
- $this->getLatLngFromSource = $getLatLngFromSource;
- $this->getLatLngFromAddress = $getLatLngFromAddress;
- $this->getDistance = $getDistance;
- }
- /**
- * Get distance from source to address
- *
- * @param SourceInterface $source
- * @param AddressInterface $address
- * @return float
- */
- public function execute(SourceInterface $source, AddressInterface $address): float
- {
- return $this->getDistance->execute(
- $this->getLatLngFromSource->execute($source),
- $this->getLatLngFromAddress->execute($address)
- );
- }
- }
|