SelectBuilder.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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\InventoryLowQuantityNotification\Model\ResourceModel\Rss\NotifyStock;
  8. use Magento\Framework\App\ResourceConnection;
  9. use Magento\Framework\DB\Select;
  10. class SelectBuilder
  11. {
  12. /**
  13. * @var ResourceConnection
  14. */
  15. private $resourceConnection;
  16. /**
  17. * @var ApplyNameAttributeJoin
  18. */
  19. private $applyNameAttributeJoin;
  20. /**
  21. * @var ApplyStatusAttributeJoin
  22. */
  23. private $applyStatusAttributeJoin;
  24. /**
  25. * @var ApplyConfigurationCondition
  26. */
  27. private $applyConfigurationCondition;
  28. /**
  29. * @var ApplyBaseJoins
  30. */
  31. private $applyBaseJoins;
  32. /**
  33. * @param ResourceConnection $resourceConnection
  34. * @param ApplyBaseJoins $applyBaseJoins
  35. * @param ApplyNameAttributeJoin $applyNameAttributeJoin
  36. * @param ApplyStatusAttributeJoin $applyStatusAttributeJoin
  37. * @param ApplyConfigurationCondition $applyConfigurationCondition
  38. */
  39. public function __construct(
  40. ResourceConnection $resourceConnection,
  41. ApplyBaseJoins $applyBaseJoins,
  42. ApplyNameAttributeJoin $applyNameAttributeJoin,
  43. ApplyStatusAttributeJoin $applyStatusAttributeJoin,
  44. ApplyConfigurationCondition $applyConfigurationCondition
  45. ) {
  46. $this->resourceConnection = $resourceConnection;
  47. $this->applyBaseJoins = $applyBaseJoins;
  48. $this->applyNameAttributeJoin = $applyNameAttributeJoin;
  49. $this->applyStatusAttributeJoin = $applyStatusAttributeJoin;
  50. $this->applyConfigurationCondition = $applyConfigurationCondition;
  51. }
  52. /**
  53. * @param Select $select
  54. *
  55. * @return void
  56. */
  57. public function build(Select $select)
  58. {
  59. $this->applyBaseJoins->execute($select);
  60. $this->applyNameAttributeJoin->execute($select);
  61. $this->applyStatusAttributeJoin->execute($select);
  62. $this->applyConfigurationCondition->execute($select);
  63. }
  64. }