You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UserMerchantStore.php 1.3KB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Lc\CaracoleBundle\Repository\User;
  3. use Lc\CaracoleBundle\Model\Merchant\MerchantInterface;
  4. use Lc\CaracoleBundle\Model\User\UserMerchantInterface;
  5. use Lc\CaracoleBundle\Repository\MerchantStoreTrait;
  6. use Lc\CaracoleBundle\Solver\User\UserMerchantSolver;
  7. use Lc\SovBundle\Model\User\UserInterface;
  8. use Lc\SovBundle\Repository\AbstractStore;
  9. class UserMerchantStore extends AbstractStore
  10. {
  11. use MerchantStoreTrait;
  12. protected UserMerchantRepositoryQuery $query;
  13. protected UserMerchantSolver $userMerchantSolver;
  14. public function __construct(UserMerchantRepositoryQuery $query, UserMerchantSolver $userMerchantSolver)
  15. {
  16. $this->query = $query;
  17. $this->userMerchantSolver = $userMerchantSolver;
  18. }
  19. // getUserMerchant
  20. public function getOneByUser(UserInterface $user, $query = null): UserMerchantInterface
  21. {
  22. $query = $this->createQuery($query);
  23. $query
  24. ->filterByMerchant($this->merchant)
  25. ->filterByUser($user);
  26. return $query->findOne();
  27. }
  28. public function isCreditActiveByUser(UserInterface $user, $query = null): bool
  29. {
  30. $userMerchant = $this->getOneByUser($user, $query);
  31. return $this->userMerchantSolver->isCreditActive($userMerchant);
  32. }
  33. }