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.

315 lines
9.6KB

  1. <?php
  2. namespace Lc\CaracoleBundle\Model\Product;
  3. use Doctrine\Common\Collections\Collection;
  4. use Lc\CaracoleBundle\Model\Config\TaxRateInterface;
  5. use Lc\CaracoleBundle\Model\Config\UnitInterface;
  6. use Lc\CaracoleBundle\Model\Reduction\ReductionCatalogInterface;
  7. use Lc\SovBundle\Model\File\FileInterface;
  8. use Lc\SovBundle\Model\User\UserInterface;
  9. interface ProductFamilyInterface
  10. {
  11. public function getTitle(): ?string;
  12. public function setTitle(string $title);
  13. public function getDescription(): ?string;
  14. public function setDescription(?string $description);
  15. public function getCreatedBy(): ?UserInterface;
  16. public function setCreatedBy(?UserInterface $createdBy);
  17. public function getUpdatedBy(): ?UserInterface;
  18. public function setUpdatedBy(?UserInterface $updatedBy);
  19. public function getDevAlias(): ?string;
  20. public function setDevAlias(?string $devAlias);
  21. public function getPriceInherited(): ?float;
  22. public function getUnitInherited(): ?UnitInterface;
  23. public function getTaxRateInherited(): ?TaxRateInterface;
  24. public function getBuyingPriceInherited(): ?float;
  25. public function getBuyingPrice(): ?float;
  26. public function setBuyingPrice(?float $buyingPrice): ProductFamilyInterface;
  27. public function getPrice(): ?float;
  28. public function setPrice(?float $price): ProductFamilyInterface;
  29. public function getUnit(): ?UnitInterface;
  30. public function setUnit(?UnitInterface $unit): ProductFamilyInterface;
  31. public function getTaxRate(): ?TaxRateInterface;
  32. public function setTaxRate(?TaxRateInterface $taxRate): ProductFamilyInterface;
  33. public function getActiveProducts(): ?bool;
  34. public function setActiveProducts(bool $activeProducts): ProductFamilyInterface;
  35. public function getProductsQuantityAsTitle(): ?bool;
  36. public function setProductsQuantityAsTitle(bool $productsQuantityAsTitle
  37. ): ProductFamilyInterface;
  38. public function getProductsType(): ?string;
  39. public function setProductsType(?string $productsType): ProductFamilyInterface;
  40. public function getQuantityLabel(): ?string;
  41. public function setQuantityLabel(?string $quantityLabel): ProductFamilyInterface;
  42. /**
  43. * @return Collection|ProductInterface[]
  44. */
  45. public function getProducts(): Collection;
  46. public function addProduct(ProductInterface $product): ProductFamilyInterface;
  47. public function removeProduct(ProductInterface $product): ProductFamilyInterface;
  48. public function getReductionCatalog(): ?ReductionCatalogInterface;
  49. public function setReductionCatalog(?ReductionCatalogInterface $reductionCatalog
  50. ): ProductFamilyInterface;
  51. /**
  52. * @return Collection|ProductCategoryInterface[]
  53. */
  54. public function getProductCategories(): Collection;
  55. public function initProductCategories();
  56. public function addProductCategory(ProductCategoryInterface $productCategory
  57. ): ProductFamilyInterface;
  58. public function removeProductCategory(ProductCategoryInterface $productCategory
  59. ): ProductFamilyInterface;
  60. public function getSubtitle(): ?string;
  61. public function setSubtitle(?string $subtitle): ProductFamilyInterface;
  62. public function getWarningMessage(): ?string;
  63. public function setWarningMessage(?string $warningMessage): ProductFamilyInterface;
  64. public function getWarningMessageType(): ?string;
  65. public function setWarningMessageType(?string $warningMessageType
  66. ): ProductFamilyInterface;
  67. public function getNote(): ?string;
  68. public function setNote(?string $note): ProductFamilyInterface;
  69. public function getBehaviorOutOfStock(): ?string;
  70. public function setBehaviorOutOfStock(?string $behaviorOutOfStock
  71. ): ProductFamilyInterface;
  72. public function getBehaviorCountStock(): ?string;
  73. public function setBehaviorCountStock(string $behaviorCountStock
  74. ): ProductFamilyInterface;
  75. public function getExportTitle(): ?string;
  76. public function setExportTitle(?string $exportTitle): ProductFamilyInterface;
  77. public function getExportNote(): ?string;
  78. public function setExportNote(?string $exportNote): ProductFamilyInterface;
  79. public function getBehaviorStockCycle(): ?string;
  80. public function setBehaviorStockCycle(string $behaviorStockCycle
  81. ): ProductFamilyInterface;
  82. public function getBehaviorDisplaySale(): ?string;
  83. public function setBehaviorDisplaySale(string $behaviorDisplaySale
  84. ): ProductFamilyInterface;
  85. public function getPropertyNoveltyExpirationDate(): ?\DateTimeInterface;
  86. public function setPropertyNoveltyExpirationDate(?\DateTimeInterface $propertyNoveltyExpirationDate
  87. ): ProductFamilyInterface;
  88. public function getPropertyOrganicLabel(): ?string;
  89. public function setPropertyOrganicLabel(?string $propertyOrganicLabel
  90. ): ProductFamilyInterface;
  91. public function getPropertyAllergens(): ?string;
  92. public function setPropertyAllergens(?string $propertyAllergens
  93. ): ProductFamilyInterface;
  94. public function getPropertyComposition(): ?string;
  95. public function setPropertyComposition(?string $propertyComposition
  96. ): ProductFamilyInterface;
  97. public function getPropertyFragrances(): ?string;
  98. public function setPropertyFragrances(?string $propertyFragrances
  99. ): ProductFamilyInterface;
  100. public function getBehaviorExpirationDate(): ?string;
  101. public function setBehaviorExpirationDate(?string $behaviorExpirationDate
  102. ): ProductFamilyInterface;
  103. public function getTypeExpirationDate(): ?string;
  104. public function setTypeExpirationDate(?string $typeExpirationDate
  105. ): ProductFamilyInterface;
  106. public function getPropertyWeight(): ?string;
  107. public function setPropertyWeight(?string $propertyWeight): ProductFamilyInterface;
  108. public function getPropertyQuantity(): ?string;
  109. public function setPropertyQuantity(?string $propertyQuantity): ProductFamilyInterface;
  110. public function getPropertyVariety(): ?string;
  111. public function setPropertyVariety(?string $propertyVariety): ProductFamilyInterface;
  112. public function getPropertyFeature(): ?string;
  113. public function setPropertyFeature(?string $propertyFeature): ProductFamilyInterface;
  114. public function getPropertyAlcoholLevel(): ?string;
  115. public function setPropertyAlcoholLevel(?string $propertyAlcoholLevel
  116. ): ProductFamilyInterface;
  117. public function getPropertyPackaging(): ?string;
  118. public function setPropertyPackaging(?string $propertyPackaging
  119. ): ProductFamilyInterface;
  120. public function getPropertyCharacteristics(): ?string;
  121. public function setPropertyCharacteristics(?string $propertyCharacteristics
  122. ): ProductFamilyInterface;
  123. public function getBehaviorAddToCart(): ?string;
  124. public function setBehaviorAddToCart(?string $behaviorAddToCart
  125. ): ProductFamilyInterface;
  126. public function getBehaviorPrice(): ?string;
  127. public function setBehaviorPrice(?string $behaviorPrice): ProductFamilyInterface;
  128. public function getSaleStatus(): ?bool;
  129. public function setSaleStatus(bool $saleStatus): ProductFamilyInterface;
  130. public function getImage(): ?FileInterface;
  131. public function setImage(?FileInterface $image): ProductFamilyInterface;
  132. /**
  133. * @return Collection|ProductFamilySectionPropertyInterface[]
  134. */
  135. public function getProductFamilySectionProperties(): Collection;
  136. public function addProductFamilySectionProperty(ProductFamilySectionPropertyInterface $productFamilySectionProperty
  137. ): ProductFamilyInterface;
  138. public function removeProductFamilySectionProperty(
  139. ProductFamilySectionPropertyInterface $productFamilySectionProperty
  140. ): ProductFamilyInterface;
  141. /**
  142. * @return Collection|QualityLabelInterface[]
  143. */
  144. public function getQualityLabels(): Collection;
  145. public function addQualityLabel(QualityLabelInterface $qualityLabel
  146. ): ProductFamilyInterface;
  147. public function removeQualityLabel(QualityLabelInterface $qualityLabel
  148. ): ProductFamilyInterface;
  149. public function getBuyingPriceByRefUnit(): ?float;
  150. public function setBuyingPriceByRefUnit(?float $buyingPriceByRefUnit
  151. ): ProductFamilyInterface;
  152. public function getPriceByRefUnit(): ?float;
  153. public function setPriceByRefUnit(?float $priceByRefUnit): ProductFamilyInterface;
  154. public function getQuantity(): ?float;
  155. public function setQuantity(?float $quantity): ProductFamilyInterface;
  156. public function getAvailableQuantity(): ?float;
  157. public function setAvailableQuantity(?float $availableQuantity
  158. ): ProductFamilyInterface;
  159. public function getAvailableQuantityDefault(): ?float;
  160. public function setAvailableQuantityDefault(?float $availableQuantityDefault
  161. ): ProductFamilyInterface;
  162. public function getPropertyExpirationDate(): ?string;
  163. public function setPropertyExpirationDate(?string $propertyExpirationDate
  164. ): ProductFamilyInterface;
  165. public function getMetaTitle(): ?string;
  166. public function setMetaTitle(?string $metaTitle);
  167. public function getMetaDescription(): ?string;
  168. public function setMetaDescription(?string $metaDescription);
  169. public function setOldUrls($oldUrls);
  170. public function getOldUrls(): ?array;
  171. public function getSlug(): ?string;
  172. public function setSlug(?string $slug);
  173. public function getPosition(): float;
  174. public function setPosition(float $position);
  175. public function clearPosition();
  176. public function getStatus(): ?float;
  177. public function setStatus(float $status);
  178. public function getCreatedAt(): ?\DateTimeInterface;
  179. public function setCreatedAt(\DateTimeInterface $createdAt);
  180. public function getUpdatedAt(): ?\DateTimeInterface;
  181. public function setUpdatedAt(\DateTimeInterface $updatedAt);
  182. }