StockIndexTableNameResolver.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\InventoryIndexer\Model;
  8. use Magento\Framework\App\ResourceConnection;
  9. use Magento\InventoryMultiDimensionalIndexerApi\Model\Alias;
  10. use Magento\InventoryMultiDimensionalIndexerApi\Model\IndexNameBuilder;
  11. use Magento\InventoryMultiDimensionalIndexerApi\Model\IndexNameResolver;
  12. use Magento\InventoryIndexer\Indexer\InventoryIndexer;
  13. /**
  14. * @inheritdoc
  15. */
  16. class StockIndexTableNameResolver implements StockIndexTableNameResolverInterface
  17. {
  18. /**
  19. * @var IndexNameBuilder
  20. */
  21. private $indexNameBuilder;
  22. /**
  23. * @var IndexNameResolver
  24. */
  25. private $indexNameResolver;
  26. /**
  27. * @var ResourceConnection
  28. */
  29. private $resourceConnection;
  30. /**
  31. * @var string
  32. */
  33. private $dimensionName;
  34. /**
  35. * @param IndexNameBuilder $indexNameBuilder
  36. * @param IndexNameResolver $indexNameResolver
  37. * @param ResourceConnection $resourceConnection
  38. * @param string $dimensionName
  39. */
  40. public function __construct(
  41. IndexNameBuilder $indexNameBuilder,
  42. IndexNameResolver $indexNameResolver,
  43. ResourceConnection $resourceConnection,
  44. string $dimensionName
  45. ) {
  46. $this->indexNameBuilder = $indexNameBuilder;
  47. $this->indexNameResolver = $indexNameResolver;
  48. $this->resourceConnection = $resourceConnection;
  49. $this->dimensionName = $dimensionName;
  50. }
  51. /**
  52. * @inheritdoc
  53. */
  54. public function execute(int $stockId): string
  55. {
  56. $indexName = $this->indexNameBuilder
  57. ->setIndexId(InventoryIndexer::INDEXER_ID)
  58. ->addDimension($this->dimensionName, (string)$stockId)
  59. ->setAlias(Alias::ALIAS_MAIN)
  60. ->build();
  61. $tableName = $this->indexNameResolver->resolveName($indexName);
  62. return $this->resourceConnection->getTableName($tableName);
  63. }
  64. }