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.

118 line
3.3KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Model\Merchant;
  3. use Doctrine\Common\Collections\Collection;
  4. use Lc\CaracoleBundle\Model\Address\AddressInterface;
  5. use Lc\CaracoleBundle\Model\Config\TaxRateInterface;
  6. use Lc\CaracoleBundle\Model\PointSale\PointSaleInterface;
  7. use Lc\CaracoleBundle\Model\Section\SectionInterface;
  8. use Lc\CaracoleBundle\Model\Setting\MerchantSettingInterface;
  9. use Lc\SovBundle\Doctrine\Extension\SortableTrait;
  10. use Lc\SovBundle\Doctrine\Pattern\AbstractFullEntity;
  11. use Lc\SovBundle\Model\User\GroupUserInterface;
  12. use Lc\SovBundle\Model\User\UserInterface;
  13. interface MerchantInterface
  14. {
  15. public function getTitle(): ?string;
  16. public function setTitle(string $title);
  17. public function getDescription(): ?string;
  18. public function setDescription(?string $description);
  19. public function getCreatedBy(): ?UserInterface;
  20. public function setCreatedBy(?UserInterface $createdBy);
  21. public function getUpdatedBy(): ?UserInterface;
  22. public function setUpdatedBy(?UserInterface $updatedBy);
  23. public function getDevAlias(): ?string;
  24. public function setDevAlias(?string $devAlias);
  25. public function getTaxRate(): ?TaxRateInterface;
  26. public function setTaxRate(?TaxRateInterface $taxRate): MerchantInterface;
  27. /**
  28. * @return Collection|PointSaleInterface[]
  29. */
  30. public function getPointSales(): Collection;
  31. public function addPointSale(PointSaleInterface $pointSale): MerchantInterface;
  32. public function removePointSale(PointSaleInterface $pointSale): MerchantInterface;
  33. /**
  34. * @return Collection|MerchantSettingInterface[]
  35. */
  36. public function getSettings(): ?Collection;
  37. public function addSetting(MerchantSettingInterface $merchantSetting
  38. ): MerchantInterface;
  39. public function removeSetting(MerchantSettingInterface $merchantSetting
  40. ): MerchantInterface;
  41. public function getAddress(): ?AddressInterface;
  42. public function setAddress(AddressInterface $address): MerchantInterface;
  43. /**
  44. * @return Collection|GroupUserInterface[]
  45. */
  46. public function getGroupUsers(): Collection;
  47. public function addGroupUser(GroupUserInterface $groupUser): MerchantInterface;
  48. public function removeGroupUser(GroupUserInterface $groupUser): MerchantInterface;
  49. /**
  50. * @return Collection|SectionInterface[]
  51. */
  52. public function getSections(): ?Collection;
  53. public function addSection(SectionInterface $section): MerchantInterface;
  54. public function removeSection(SectionInterface $section): MerchantInterface;
  55. public function getMetaTitle(): ?string;
  56. public function setMetaTitle(?string $metaTitle);
  57. public function getMetaDescription(): ?string;
  58. public function setMetaDescription(?string $metaDescription);
  59. public function setOldUrls($oldUrls);
  60. public function getOldUrls(): ?array;
  61. public function getSlug(): ?string;
  62. public function setSlug(?string $slug);
  63. public function getPosition(): float;
  64. public function setPosition(float $position);
  65. public function clearPosition();
  66. public function getStatus(): ?float;
  67. public function setStatus(float $status);
  68. public function getCreatedAt(): ?\DateTimeInterface;
  69. public function setCreatedAt(\DateTimeInterface $createdAt);
  70. public function getUpdatedAt(): ?\DateTimeInterface;
  71. public function setUpdatedAt(\DateTimeInterface $updatedAt);
  72. }