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.

166 line
4.8KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Model\Section;
  3. use Doctrine\Common\Collections\Collection;
  4. use Lc\CaracoleBundle\Model\Merchant\MerchantInterface;
  5. use Lc\CaracoleBundle\Model\Order\OrderShopInterface;
  6. use Lc\CaracoleBundle\Model\Product\ProductCategoryInterface;
  7. use Lc\CaracoleBundle\Model\Product\ProductFamilySectionPropertyInterface;
  8. use Lc\CaracoleBundle\Model\Setting\SectionSettingInterface;
  9. use Lc\SovBundle\Model\Newsletter\NewsletterInterface;
  10. use Lc\SovBundle\Model\Site\NewsInterface;
  11. use Lc\SovBundle\Model\Site\PageInterface;
  12. use Lc\SovBundle\Model\User\UserInterface;
  13. interface SectionInterface
  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 getMerchant(): ?MerchantInterface;
  26. public function setMerchant(?MerchantInterface $merchant): SectionInterface;
  27. public function getColor(): ?string;
  28. public function setColor(string $color): SectionInterface;
  29. public function getCycleType(): ?string;
  30. public function setCycleType(string $cycleType): SectionInterface;
  31. /**
  32. * @return Collection|OrderShopInterface[]
  33. */
  34. public function getOrderShops(): Collection;
  35. public function addOrderShop(OrderShopInterface $orderShop): SectionInterface;
  36. public function removeOrderShop(OrderShopInterface $orderShop): SectionInterface;
  37. /**
  38. * @return Collection|ProductCategoryInterface[]
  39. */
  40. public function getProductCategories(): Collection;
  41. public function addProductCategory(ProductCategoryInterface $productCategory
  42. ): SectionInterface;
  43. public function removeProductCategory(ProductCategoryInterface $productCategory
  44. ): SectionInterface;
  45. /**
  46. * @return Collection|PageInterface[]
  47. */
  48. public function getPages(): Collection;
  49. public function addPage(PageInterface $page): SectionInterface;
  50. public function removePage(PageInterface $page): SectionInterface;
  51. /**
  52. * @return Collection|NewsInterface[]
  53. */
  54. public function getNews(): Collection;
  55. public function addNews(NewsInterface $news): SectionInterface;
  56. public function removeNews(NewsInterface $news): SectionInterface;
  57. /**
  58. * @return Collection|NewsletterInterface[]
  59. */
  60. public function getNewsletters(): Collection;
  61. public function addNewsletter(NewsletterInterface $newsletter): SectionInterface;
  62. public function removeNewsletter(NewsletterInterface $newsletter): SectionInterface;
  63. public function getIsDefault(): ?bool;
  64. public function setIsDefault(?bool $isDefault): SectionInterface;
  65. /**
  66. * @return Collection|SectionSettingInterface[]
  67. */
  68. public function getSettings(): Collection;
  69. public function addSetting(SectionSettingInterface $sectionSetting): SectionInterface;
  70. public function removeSetting(SectionSettingInterface $sectionSetting
  71. ): SectionInterface;
  72. /**
  73. * @return Collection|OpeningInterface[]
  74. */
  75. public function getOpenings(): Collection;
  76. public function addOpening(OpeningInterface $opening): SectionInterface;
  77. public function removeOpening(OpeningInterface $opening): SectionInterface;
  78. /**
  79. * @return Collection|ProductFamilySectionPropertyInterface[]
  80. */
  81. public function getProductFamilySectionProperties(): Collection;
  82. public function addProductFamilySectionProperty(ProductFamilySectionPropertyInterface $productFamilySectionProperty
  83. ): SectionInterface;
  84. public function removeProductFamilySectionProperty(
  85. ProductFamilySectionPropertyInterface $productFamilySectionProperty
  86. ): SectionInterface;
  87. public function getMetaTitle(): ?string;
  88. public function setMetaTitle(?string $metaTitle);
  89. public function getMetaDescription(): ?string;
  90. public function setMetaDescription(?string $metaDescription);
  91. public function setOldUrls($oldUrls);
  92. public function getOldUrls(): ?array;
  93. public function getSlug(): ?string;
  94. public function setSlug(?string $slug);
  95. public function getPosition(): float;
  96. public function setPosition(float $position);
  97. public function clearPosition();
  98. public function getStatus(): ?float;
  99. public function setStatus(float $status);
  100. public function getCreatedAt(): ?\DateTimeInterface;
  101. public function setCreatedAt(\DateTimeInterface $createdAt);
  102. public function getUpdatedAt(): ?\DateTimeInterface;
  103. public function setUpdatedAt(\DateTimeInterface $updatedAt);
  104. }