src/WellCommerce/Bundle/AppBundle/Entity/Shop.php line 732

Open in your IDE?
  1. <?php
  2. declare(strict_types=0);
  3. /*
  4.  * WellCommerce Foundation
  5.  *
  6.  * This file is part of the WellCommerce package.
  7.  *
  8.  * (c) Adam Piotrowski <adam@wellcommerce.org>, Adrian Potepa <adrian@wellcommerce.org>
  9.  *
  10.  * For the full copyright and license information,
  11.  * please view the LICENSE file that was distributed with this source code.
  12.  */
  13. namespace WellCommerce\Bundle\AppBundle\Entity;
  14. use Doctrine\Common\Collections\ArrayCollection;
  15. use Doctrine\Common\Collections\Collection;
  16. use Knp\DoctrineBehaviors\Model\Translatable\Translatable;
  17. use TheCodingMachine\GraphQLite\Annotations\Field;
  18. use TheCodingMachine\GraphQLite\Annotations\HideIfUnauthorized;
  19. use TheCodingMachine\GraphQLite\Annotations\Logged;
  20. use TheCodingMachine\GraphQLite\Annotations\Right;
  21. use TheCodingMachine\GraphQLite\Annotations\Type;
  22. use WellCommerce\Bundle\CatalogBundle\Entity\ProductStatus;
  23. use WellCommerce\Bundle\CmsBundle\Entity\Contact;
  24. use WellCommerce\Bundle\CoreBundle\Doctrine\Behaviours\Identifiable;
  25. use WellCommerce\Bundle\CoreBundle\Entity\MailerConfiguration;
  26. use WellCommerce\Bundle\CoreBundle\Service\Api\Model\Asset;
  27. use WellCommerce\Bundle\OrderBundle\Entity\OrderStatus;
  28. use WellCommerce\Extra\AppBundle\Entity\ShopExtraTrait;
  29. /**
  30.  * Class Shop
  31.  *
  32.  * @author  Adam Piotrowski <adam@wellcommerce.org>
  33.  * @Type()
  34.  */
  35. class Shop implements AuditableInterface
  36. {
  37.     use Identifiable;
  38.     use Translatable;
  39.     use ShopExtraTrait;
  40.     protected string                 $name                             '';
  41.     protected string                 $url                              '';
  42.     protected bool                   $offline                          false;
  43.     protected string                 $offlineText                      '';
  44.     protected bool                   $forceAlternateUrl                false;
  45.     protected bool                   $forceAdminRedirect               false;
  46.     protected string                 $alternateUrl                     '';
  47.     protected string                 $defaultCountry                   '';
  48.     protected string                 $defaultCurrency                  '';
  49.     protected ?string                $favicon                          null;
  50.     protected ?string                $logo                             null;
  51.     protected ?string                $logoFooter                       null;
  52.     protected ?string                $logoEmail                        null;
  53.     protected ?string                $adminLogo                        null;
  54.     protected ?string                $defaultPhoto                     null;
  55.     protected bool                   $httpAuth                         false;
  56.     protected bool                   $watermarkEnabled                 false;
  57.     protected string                 $watermarkImage                   '';
  58.     protected float                  $watermarkSize                    0.5;
  59.     protected ?Tax                   $defaultTax                       null;
  60.     protected int                    $defaultNoveltyPeriod             30;
  61.     protected int                    $defaultBestsellerPeriod          30;
  62.     protected string                 $watermarkPosition                'center';
  63.     protected bool                   $presaleAllowed                   true;
  64.     protected bool                   $enableClient                     true;
  65.     protected bool                   $registrationConfirmationRequired false;
  66.     protected bool                   $cartLoginRequired                false;
  67.     protected bool                   $reCaptchaEnabled                 false;
  68.     protected bool                   $reCaptchaForGuest                false;
  69.     protected bool                   $reCaptchaForClient               false;
  70.     protected string                 $reCaptchaSiteKey                 '';
  71.     protected string                 $reCaptchaSecretKey               '';
  72.     protected int                    $maxCompareCount                  5;
  73.     protected int                    $missingCartInterval              1;
  74.     protected bool                   $facebookPixelEnabled             false;
  75.     protected string                 $facebookPixelIdentifier          '';
  76.     protected bool                   $facebookConversionEnabled        false;
  77.     protected string                 $facebookConversionAccessToken    '';
  78.     protected string                 $facebookConversionAppId          '';
  79.     protected string                 $facebookConversionAppSecret      '';
  80.     protected bool                   $facebookConnectEnabled           false;
  81.     protected string                 $facebookConnectAppId             '';
  82.     protected string                 $facebookConnectAppSecret         '';
  83.     protected bool                   $appleConnectEnabled              false;
  84.     protected string                 $appleConnectClientId             '';
  85.     protected string                 $appleConnectMobileId             '';
  86.     protected string                 $appleConnectTeamId               '';
  87.     protected string                 $appleConnectKeyFileId            '';
  88.     protected string                 $appleConnectKeyFilePath          '';
  89.     protected bool                   $googleConnectEnabled             false;
  90.     protected string                 $googleConnectAppId               '';
  91.     protected string                 $googleConnectMobileId            '';
  92.     protected bool                   $googleTagManagerEnabled          false;
  93.     protected string                 $googleTagManagerCode             '';
  94.     protected string                 $googleConnectAppSecret           '';
  95.     protected string                 $googleConnectMobileSecret        '';
  96.     protected string                 $googleSiteVerification           '';
  97.     protected int                    $optimaMaxOrders                  10;
  98.     protected string                 $optimaDeliveryCostsName          '';
  99.     protected string                 $optimaSeriesName                 '';
  100.     protected bool                   $optimaEnabled                    false;
  101.     protected bool                   $santanderEnabled                 false;
  102.     protected string                 $santanderShopNumber              '';
  103.     protected bool                   $ceneoEnabled                     false;
  104.     protected string                 $ceneoPartnerId                   '';
  105.     protected string                 $ceneoWorkDaysToSend              '';
  106.     protected bool                   $opineoEnabled                    false;
  107.     protected string                 $opineoPartnerId                  '';
  108.     protected string                 $opineoQueue                      '';
  109.     protected bool                   $zaufaneEnabled                   false;
  110.     protected string                 $zaufaneInterfaceId               '';
  111.     protected string                 $zaufaneInterfacePass             '';
  112.     protected bool                   $orderUploadEnabled               false;
  113.     protected string                 $orderUploadExtensions            '';
  114.     protected bool                   $pusherEnabled                    true;
  115.     protected bool                   $beamsEnabled                     false;
  116.     protected string                 $beamsInstanceId                  '';
  117.     protected string                 $beamsPrimaryKey                  '';
  118.     protected string                 $developersEmails                 '';
  119.     protected string                 $lowStockEmails                   '';
  120.     protected string                 $reviewEmails                     '';
  121.     protected string                 $premiereEmails                   '';
  122.     protected                        $premiereAvailabilities           = [];
  123.     protected string                 $syneriseApiKey                   '';
  124.     protected string                 $syneriseTestEmails               '';
  125.     protected string                 $ipStackApiKey                    '';
  126.     protected string                 $instagramAppId                   '';
  127.     protected string                 $instagramAppSecret               '';
  128.     protected bool                   $syneriseClientSync               false;
  129.     protected int                    $productReturningPeriod           14;
  130.     protected int                    $offerMaturity                    14;
  131.     protected int                    $orderArchivePeriod               90;
  132.     protected WeekSchedule           $shippingSchedule;
  133.     protected MinimumOrderAmount     $minimumOrderAmount;
  134.     protected MailerConfiguration    $mailerConfiguration;
  135.     protected ?Company               $company                          null;
  136.     protected ?ClientGroup           $clientGroup                      null;
  137.     protected ?Theme                 $theme                            null;
  138.     protected ?Contact               $contact                          null;
  139.     protected ?Pos                   $defaultPos                       null;
  140.     protected ?ProductStatus         $defaultNoveltyStatus             null;
  141.     protected ?ProductStatus         $defaultPromotionStatus           null;
  142.     protected ?ProductStatus         $defaultBestsellerStatus          null;
  143.     protected ?ComplaintStatus       $defaultComplaintStatus           null;
  144.     protected Collection             $orderReviewStatuses;
  145.     protected Collection             $orderVoidStatuses;
  146.     protected Collection             $salesReportStatuses;
  147.     protected Collection             $posList;
  148.     protected ?Mailbox               $mailbox                          null;
  149.     protected RecommendationSettings $recommendationSettings;
  150.     protected HierarchySettings      $hierarchySettings;
  151.     protected AdminInterfaceSettings $adminInterfaceSettings;
  152.     protected NewsletterSettings     $newsletterSettings;
  153.     protected SocialMediaSettings    $socialMediaSettings;
  154.     protected ObjectStorageSettings  $objectStorageSettings;
  155.     public function __construct()
  156.     {
  157.         $this->mailerConfiguration    = new MailerConfiguration();
  158.         $this->recommendationSettings = new RecommendationSettings();
  159.         $this->hierarchySettings      = new HierarchySettings();
  160.         $this->minimumOrderAmount     = new MinimumOrderAmount();
  161.         $this->shippingSchedule       = new WeekSchedule();
  162.         $this->adminInterfaceSettings = new AdminInterfaceSettings();
  163.         $this->newsletterSettings     = new NewsletterSettings();
  164.         $this->socialMediaSettings    = new SocialMediaSettings();
  165.         $this->objectStorageSettings  = new ObjectStorageSettings();
  166.         $this->orderReviewStatuses    = new ArrayCollection();
  167.         $this->orderVoidStatuses      = new ArrayCollection();
  168.         $this->salesReportStatuses    = new ArrayCollection();
  169.         $this->posList                = new ArrayCollection();
  170.     }
  171.     /**
  172.      * @return OrderStatus[]
  173.      */
  174.     public function getOrderReviewStatuses(): Collection
  175.     {
  176.         return $this->orderReviewStatuses ?? new ArrayCollection();
  177.     }
  178.     public function setOrderReviewStatuses(Collection $orderReviewStatuses): void
  179.     {
  180.         $this->orderReviewStatuses $orderReviewStatuses;
  181.     }
  182.     public function getOrderVoidStatuses(): Collection
  183.     {
  184.         return $this->orderVoidStatuses;
  185.     }
  186.     public function setOrderVoidStatuses(Collection $orderVoidStatuses): void
  187.     {
  188.         $this->orderVoidStatuses $orderVoidStatuses;
  189.     }
  190.     public function isHttpAuth(): bool
  191.     {
  192.         return $this->httpAuth;
  193.     }
  194.     public function setHttpAuth(bool $httpAuth): void
  195.     {
  196.         $this->httpAuth $httpAuth;
  197.     }
  198.     /**
  199.      * @Field()
  200.      */
  201.     public function isOffline(): bool
  202.     {
  203.         return $this->offline;
  204.     }
  205.     public function setOffline(bool $offline): void
  206.     {
  207.         $this->offline $offline;
  208.     }
  209.     /**
  210.      * @Field()
  211.      */
  212.     public function getOfflineText(): string
  213.     {
  214.         return $this->offlineText;
  215.     }
  216.     public function setOfflineText(string $offlineText): void
  217.     {
  218.         $this->offlineText $offlineText;
  219.     }
  220.     /**
  221.      * @Field()
  222.      */
  223.     public function getName(): string
  224.     {
  225.         return $this->name;
  226.     }
  227.     public function setName(string $name)
  228.     {
  229.         $this->name $name;
  230.     }
  231.     /**
  232.      * @Field()
  233.      */
  234.     public function getCompany(): ?Company
  235.     {
  236.         return $this->company;
  237.     }
  238.     public function setCompany(?Company $company null)
  239.     {
  240.         $this->company $company;
  241.     }
  242.     /**
  243.      * @Field()
  244.      */
  245.     public function getUrl(): string
  246.     {
  247.         return $this->url;
  248.     }
  249.     public function setUrl(string $url)
  250.     {
  251.         $this->url $url;
  252.     }
  253.     public function isForceAlternateUrl(): bool
  254.     {
  255.         return $this->forceAlternateUrl;
  256.     }
  257.     public function setForceAlternateUrl(bool $forceAlternateUrl): void
  258.     {
  259.         $this->forceAlternateUrl $forceAlternateUrl;
  260.     }
  261.     public function isForceAdminRedirect(): bool
  262.     {
  263.         return $this->forceAdminRedirect;
  264.     }
  265.     public function setForceAdminRedirect(bool $forceAdminRedirect): void
  266.     {
  267.         $this->forceAdminRedirect $forceAdminRedirect;
  268.     }
  269.     public function getAlternateUrl(): string
  270.     {
  271.         return $this->alternateUrl;
  272.     }
  273.     public function getAlternateHost(): string
  274.     {
  275.         return 'https://' $this->alternateUrl;
  276.     }
  277.     public function setAlternateUrl(string $alternateUrl): void
  278.     {
  279.         $this->alternateUrl $alternateUrl;
  280.     }
  281.     /**
  282.      * @Field()
  283.      */
  284.     public function isPresaleAllowed(): bool
  285.     {
  286.         return $this->presaleAllowed;
  287.     }
  288.     public function setPresaleAllowed(bool $presaleAllowed): void
  289.     {
  290.         $this->presaleAllowed $presaleAllowed;
  291.     }
  292.     /**
  293.      * @Field()
  294.      */
  295.     public function getDefaultCountry(): string
  296.     {
  297.         return $this->defaultCountry;
  298.     }
  299.     public function setDefaultCountry(string $defaultCountry)
  300.     {
  301.         $this->defaultCountry $defaultCountry;
  302.     }
  303.     /**
  304.      * @Field()
  305.      */
  306.     public function getDefaultCurrency(): string
  307.     {
  308.         return $this->defaultCurrency;
  309.     }
  310.     public function setDefaultCurrency(string $defaultCurrency)
  311.     {
  312.         $this->defaultCurrency $defaultCurrency;
  313.     }
  314.     /**
  315.      * @Field()
  316.      */
  317.     public function getContact(): ?Contact
  318.     {
  319.         return $this->contact;
  320.     }
  321.     public function setContact(?Contact $contact): void
  322.     {
  323.         $this->contact $contact;
  324.     }
  325.     public function setMailerConfiguration(MailerConfiguration $configuration)
  326.     {
  327.         $this->mailerConfiguration $configuration;
  328.     }
  329.     public function getMailerConfiguration(): MailerConfiguration
  330.     {
  331.         return $this->mailerConfiguration;
  332.     }
  333.     public function getClientGroup(): ?ClientGroup
  334.     {
  335.         return $this->clientGroup;
  336.     }
  337.     public function setClientGroup(?ClientGroup $clientGroup null)
  338.     {
  339.         $this->clientGroup $clientGroup;
  340.     }
  341.     public function getTheme(): ?Theme
  342.     {
  343.         return $this->theme;
  344.     }
  345.     public function setTheme(Theme $theme null)
  346.     {
  347.         $this->theme $theme;
  348.     }
  349.     public function getMinimumOrderAmount(): MinimumOrderAmount
  350.     {
  351.         return $this->minimumOrderAmount;
  352.     }
  353.     public function setMinimumOrderAmount(MinimumOrderAmount $minimumOrderAmount)
  354.     {
  355.         $this->minimumOrderAmount $minimumOrderAmount;
  356.     }
  357.     public function isEnableClient(): bool
  358.     {
  359.         return $this->enableClient;
  360.     }
  361.     public function setEnableClient(bool $enableClient)
  362.     {
  363.         $this->enableClient $enableClient;
  364.     }
  365.     /**
  366.      * @Field(outputType="MediaUrl")
  367.      */
  368.     public function getLogo(): ?string
  369.     {
  370.         return $this->logo;
  371.     }
  372.     /**
  373.      * @Field(outputType="Asset")
  374.      */
  375.     public function getLogoUrl(): ?Asset
  376.     {
  377.         if (!empty($this->logo)) {
  378.             return new Asset('/upload/layout/' $this->logo);
  379.         }
  380.         return null;
  381.     }
  382.     public function setLogo(?string $logo null)
  383.     {
  384.         $this->logo $logo;
  385.     }
  386.     /**
  387.      * @Field(outputType="MediaUrl")
  388.      */
  389.     public function getFavicon(): ?string
  390.     {
  391.         return $this->favicon;
  392.     }
  393.     /**
  394.      * @Field(outputType="Asset")
  395.      */
  396.     public function getFaviconUrl(): ?Asset
  397.     {
  398.         if (!empty($this->favicon)) {
  399.             return new Asset('/upload/layout/' $this->favicon);
  400.         }
  401.         return null;
  402.     }
  403.     /**
  404.      * @param string|null $favicon
  405.      */
  406.     public function setFavicon(?string $favicon): void
  407.     {
  408.         $this->favicon $favicon;
  409.     }
  410.     /**
  411.      * @Field(outputType="MediaUrl")
  412.      */
  413.     public function getLogoFooter(): ?string
  414.     {
  415.         return $this->logoFooter;
  416.     }
  417.     /**
  418.      * @Field(outputType="Asset")
  419.      */
  420.     public function getLogoFooterUrl(): ?Asset
  421.     {
  422.         if (!empty($this->logoFooter)) {
  423.             return new Asset('/upload/layout/' $this->logoFooter);
  424.         }
  425.         return null;
  426.     }
  427.     public function setLogoFooter(?string $logoFooter): void
  428.     {
  429.         $this->logoFooter $logoFooter;
  430.     }
  431.     /**
  432.      * @Field(outputType="MediaUrl")
  433.      */
  434.     public function getLogoEmail(): ?string
  435.     {
  436.         return $this->logoEmail;
  437.     }
  438.     /**
  439.      * @Field(outputType="Asset")
  440.      */
  441.     public function getLogoEmailUrl(): ?Asset
  442.     {
  443.         if (!empty($this->logoEmail)) {
  444.             return new Asset('/upload/layout/' $this->logoEmail);
  445.         }
  446.         return null;
  447.     }
  448.     public function setLogoEmail(?string $logoEmail): void
  449.     {
  450.         $this->logoEmail $logoEmail;
  451.     }
  452.     public function getAdminLogo(): ?string
  453.     {
  454.         return $this->adminLogo;
  455.     }
  456.     public function setAdminLogo(?string $adminLogo null)
  457.     {
  458.         $this->adminLogo $adminLogo;
  459.     }
  460.     public function isRegistrationConfirmationRequired(): bool
  461.     {
  462.         return $this->registrationConfirmationRequired;
  463.     }
  464.     public function setRegistrationConfirmationRequired(bool $registrationConfirmationRequired)
  465.     {
  466.         $this->registrationConfirmationRequired $registrationConfirmationRequired;
  467.     }
  468.     public function isWatermarkEnabled(): bool
  469.     {
  470.         return $this->watermarkEnabled;
  471.     }
  472.     public function setWatermarkEnabled(bool $watermarkEnabled)
  473.     {
  474.         $this->watermarkEnabled $watermarkEnabled;
  475.     }
  476.     public function getWatermarkImage(): string
  477.     {
  478.         return $this->watermarkImage;
  479.     }
  480.     public function setWatermarkImage(string $watermarkImage)
  481.     {
  482.         $this->watermarkImage $watermarkImage;
  483.     }
  484.     public function getWatermarkSize(): float
  485.     {
  486.         return (float)$this->watermarkSize;
  487.     }
  488.     public function setWatermarkSize(float $watermarkSize)
  489.     {
  490.         $this->watermarkSize $watermarkSize;
  491.     }
  492.     public function getWatermarkPosition(): string
  493.     {
  494.         return $this->watermarkPosition;
  495.     }
  496.     public function setWatermarkPosition(string $watermarkPosition)
  497.     {
  498.         $this->watermarkPosition $watermarkPosition;
  499.     }
  500.     public function isPusherEnabled(): bool
  501.     {
  502.         return $this->pusherEnabled;
  503.     }
  504.     public function setPusherEnabled(bool $pusherEnabled): void
  505.     {
  506.         $this->pusherEnabled $pusherEnabled;
  507.     }
  508.     public function getDefaultNoveltyPeriod(): int
  509.     {
  510.         return $this->defaultNoveltyPeriod;
  511.     }
  512.     public function setDefaultNoveltyPeriod(int $defaultNoveltyPeriod)
  513.     {
  514.         $this->defaultNoveltyPeriod $defaultNoveltyPeriod;
  515.     }
  516.     public function getDefaultBestsellerPeriod(): int
  517.     {
  518.         return $this->defaultBestsellerPeriod;
  519.     }
  520.     public function setDefaultBestsellerPeriod(int $defaultBestsellerPeriod)
  521.     {
  522.         $this->defaultBestsellerPeriod $defaultBestsellerPeriod;
  523.     }
  524.     public function getDefaultNoveltyStatus(): ?ProductStatus
  525.     {
  526.         return $this->defaultNoveltyStatus;
  527.     }
  528.     public function setDefaultNoveltyStatus(?ProductStatus $defaultNoveltyStatus null)
  529.     {
  530.         $this->defaultNoveltyStatus $defaultNoveltyStatus;
  531.     }
  532.     public function getDefaultPromotionStatus(): ?ProductStatus
  533.     {
  534.         return $this->defaultPromotionStatus;
  535.     }
  536.     public function setDefaultPromotionStatus(?ProductStatus $defaultPromotionStatus null)
  537.     {
  538.         $this->defaultPromotionStatus $defaultPromotionStatus;
  539.     }
  540.     public function getDefaultBestsellerStatus(): ?ProductStatus
  541.     {
  542.         return $this->defaultBestsellerStatus;
  543.     }
  544.     public function setDefaultBestsellerStatus(?ProductStatus $defaultBestsellerStatus null)
  545.     {
  546.         $this->defaultBestsellerStatus $defaultBestsellerStatus;
  547.     }
  548.     /**
  549.      * @Field()
  550.      */
  551.     public function isReCaptchaEnabled(): bool
  552.     {
  553.         return $this->reCaptchaEnabled;
  554.     }
  555.     public function setReCaptchaEnabled(bool $reCaptchaEnabled)
  556.     {
  557.         $this->reCaptchaEnabled $reCaptchaEnabled;
  558.     }
  559.     /**
  560.      * @Field()
  561.      */
  562.     public function isReCaptchaForGuest(): bool
  563.     {
  564.         return $this->reCaptchaForGuest;
  565.     }
  566.     public function setReCaptchaForGuest(bool $reCaptchaForGuest)
  567.     {
  568.         $this->reCaptchaForGuest $reCaptchaForGuest;
  569.     }
  570.     /**
  571.      * @Field()
  572.      */
  573.     public function isReCaptchaForClient(): bool
  574.     {
  575.         return $this->reCaptchaForClient;
  576.     }
  577.     public function setReCaptchaForClient(bool $reCaptchaForClient)
  578.     {
  579.         $this->reCaptchaForClient $reCaptchaForClient;
  580.     }
  581.     /**
  582.      * @Field()
  583.      */
  584.     public function getReCaptchaSiteKey(): string
  585.     {
  586.         return $this->reCaptchaSiteKey;
  587.     }
  588.     public function setReCaptchaSiteKey(string $reCaptchaSiteKey)
  589.     {
  590.         $this->reCaptchaSiteKey $reCaptchaSiteKey;
  591.     }
  592.     /**
  593.      * @Field()
  594.      * @Logged()
  595.      * @Right("ROLE_ADMIN")
  596.      * @HideIfUnauthorized()
  597.      */
  598.     public function getReCaptchaSecretKey(): string
  599.     {
  600.         return $this->reCaptchaSecretKey;
  601.     }
  602.     public function setReCaptchaSecretKey(string $reCaptchaSecretKey)
  603.     {
  604.         $this->reCaptchaSecretKey $reCaptchaSecretKey;
  605.     }
  606.     /**
  607.      * @Field()
  608.      */
  609.     public function getMaxCompareCount(): int
  610.     {
  611.         return $this->maxCompareCount;
  612.     }
  613.     public function setMaxCompareCount(int $maxCompareCount)
  614.     {
  615.         $this->maxCompareCount $maxCompareCount;
  616.     }
  617.     public function getMissingCartInterval(): int
  618.     {
  619.         return $this->missingCartInterval;
  620.     }
  621.     public function setMissingCartInterval(int $missingCartInterval)
  622.     {
  623.         $this->missingCartInterval $missingCartInterval;
  624.     }
  625.     /**
  626.      * @Field()
  627.      */
  628.     public function translate(string $locale nullbool $fallbackToDefault false): ShopTranslation
  629.     {
  630.         return $this->doTranslate($locale$fallbackToDefault);
  631.     }
  632.     /**
  633.      * @Field()
  634.      */
  635.     public function getThemeFolder(): string
  636.     {
  637.         return $this->theme->getFolder();
  638.     }
  639.     /**
  640.      * @Field()
  641.      */
  642.     public function isFacebookPixelEnabled(): bool
  643.     {
  644.         return $this->facebookPixelEnabled;
  645.     }
  646.     public function setFacebookPixelEnabled(bool $facebookPixelEnabled): void
  647.     {
  648.         $this->facebookPixelEnabled $facebookPixelEnabled;
  649.     }
  650.     /**
  651.      * @Field()
  652.      */
  653.     public function getFacebookPixelIdentifier(): string
  654.     {
  655.         return $this->facebookPixelIdentifier;
  656.     }
  657.     public function setFacebookPixelIdentifier(string $facebookPixelIdentifier): void
  658.     {
  659.         $this->facebookPixelIdentifier $facebookPixelIdentifier;
  660.     }
  661.     public function isFacebookConversionEnabled(): bool
  662.     {
  663.         return $this->facebookConversionEnabled;
  664.     }
  665.     public function setFacebookConversionEnabled(bool $facebookConversionEnabled): void
  666.     {
  667.         $this->facebookConversionEnabled $facebookConversionEnabled;
  668.     }
  669.     public function getFacebookConversionAccessToken(): string
  670.     {
  671.         return $this->facebookConversionAccessToken;
  672.     }
  673.     public function setFacebookConversionAccessToken(string $facebookConversionAccessToken): void
  674.     {
  675.         $this->facebookConversionAccessToken $facebookConversionAccessToken;
  676.     }
  677.     public function getFacebookConversionAppId(): string
  678.     {
  679.         return $this->facebookConversionAppId;
  680.     }
  681.     public function setFacebookConversionAppId(string $facebookConversionAppId): void
  682.     {
  683.         $this->facebookConversionAppId $facebookConversionAppId;
  684.     }
  685.     public function getFacebookConversionAppSecret(): string
  686.     {
  687.         return $this->facebookConversionAppSecret;
  688.     }
  689.     public function setFacebookConversionAppSecret(string $facebookConversionAppSecret): void
  690.     {
  691.         $this->facebookConversionAppSecret $facebookConversionAppSecret;
  692.     }
  693.     /**
  694.      * @Field()
  695.      */
  696.     public function isFacebookConnectEnabled(): bool
  697.     {
  698.         return $this->facebookConnectEnabled;
  699.     }
  700.     public function setFacebookConnectEnabled(bool $facebookConnectEnabled): void
  701.     {
  702.         $this->facebookConnectEnabled $facebookConnectEnabled;
  703.     }
  704.     /**
  705.      * @Field()
  706.      */
  707.     public function getFacebookConnectAppId(): string
  708.     {
  709.         return $this->facebookConnectAppId;
  710.     }
  711.     public function setFacebookConnectAppId(string $facebookConnectAppId): void
  712.     {
  713.         $this->facebookConnectAppId $facebookConnectAppId;
  714.     }
  715.     public function getFacebookConnectAppSecret(): string
  716.     {
  717.         return $this->facebookConnectAppSecret;
  718.     }
  719.     public function setFacebookConnectAppSecret(string $facebookConnectAppSecret): void
  720.     {
  721.         $this->facebookConnectAppSecret $facebookConnectAppSecret;
  722.     }
  723.     /**
  724.      * @Field()
  725.      */
  726.     public function isGoogleConnectEnabled(): bool
  727.     {
  728.         return $this->googleConnectEnabled;
  729.     }
  730.     public function setGoogleConnectEnabled(bool $googleConnectEnabled)
  731.     {
  732.         $this->googleConnectEnabled $googleConnectEnabled;
  733.     }
  734.     /**
  735.      * @Field()
  736.      */
  737.     public function getGoogleConnectAppId(): string
  738.     {
  739.         return $this->googleConnectAppId;
  740.     }
  741.     public function setGoogleConnectAppId(string $googleConnectAppId)
  742.     {
  743.         $this->googleConnectAppId $googleConnectAppId;
  744.     }
  745.     public function getGoogleConnectAppSecret(): string
  746.     {
  747.         return $this->googleConnectAppSecret;
  748.     }
  749.     public function setGoogleConnectAppSecret(string $googleConnectAppSecret)
  750.     {
  751.         $this->googleConnectAppSecret $googleConnectAppSecret;
  752.     }
  753.     public function getGoogleConnectMobileId(): string
  754.     {
  755.         return $this->googleConnectMobileId;
  756.     }
  757.     public function setGoogleConnectMobileId(string $googleConnectMobileId): void
  758.     {
  759.         $this->googleConnectMobileId $googleConnectMobileId;
  760.     }
  761.     public function getGoogleConnectMobileSecret(): string
  762.     {
  763.         return $this->googleConnectMobileSecret;
  764.     }
  765.     public function setGoogleConnectMobileSecret(string $googleConnectMobileSecret): void
  766.     {
  767.         $this->googleConnectMobileSecret $googleConnectMobileSecret;
  768.     }
  769.     /**
  770.      * @Field()
  771.      */
  772.     public function getGoogleSiteVerification(): string
  773.     {
  774.         return $this->googleSiteVerification;
  775.     }
  776.     public function setGoogleSiteVerification(string $googleSiteVerification)
  777.     {
  778.         $this->googleSiteVerification $googleSiteVerification;
  779.     }
  780.     /**
  781.      * @Field()
  782.      */
  783.     public function isCartLoginRequired(): bool
  784.     {
  785.         return $this->cartLoginRequired;
  786.     }
  787.     public function setCartLoginRequired(bool $cartLoginRequired)
  788.     {
  789.         $this->cartLoginRequired $cartLoginRequired;
  790.     }
  791.     public function getOptimaMaxOrders(): int
  792.     {
  793.         return $this->optimaMaxOrders;
  794.     }
  795.     public function setOptimaMaxOrders(int $optimaMaxOrders): void
  796.     {
  797.         $this->optimaMaxOrders $optimaMaxOrders;
  798.     }
  799.     public function getOptimaDeliveryCostsName(): string
  800.     {
  801.         return $this->optimaDeliveryCostsName;
  802.     }
  803.     public function setOptimaDeliveryCostsName(string $optimaDeliveryCostsName): void
  804.     {
  805.         $this->optimaDeliveryCostsName $optimaDeliveryCostsName;
  806.     }
  807.     public function getOptimaSeriesName(): string
  808.     {
  809.         return $this->optimaSeriesName;
  810.     }
  811.     public function setOptimaSeriesName(string $optimaSeriesName): void
  812.     {
  813.         $this->optimaSeriesName $optimaSeriesName;
  814.     }
  815.     public function isOptimaEnabled(): bool
  816.     {
  817.         return $this->optimaEnabled;
  818.     }
  819.     public function setOptimaEnabled(bool $optimaEnabled): void
  820.     {
  821.         $this->optimaEnabled $optimaEnabled;
  822.     }
  823.     public function getMailbox(): ?Mailbox
  824.     {
  825.         return $this->mailbox;
  826.     }
  827.     public function setMailbox(?Mailbox $mailbox): void
  828.     {
  829.         $this->mailbox $mailbox;
  830.     }
  831.     public function getResourceName(): string
  832.     {
  833.         return $this->getName();
  834.     }
  835.     /**
  836.      * @Field()
  837.      */
  838.     public function isSantanderEnabled(): bool
  839.     {
  840.         return $this->santanderEnabled;
  841.     }
  842.     public function setSantanderEnabled(bool $santanderEnabled): void
  843.     {
  844.         $this->santanderEnabled $santanderEnabled;
  845.     }
  846.     /**
  847.      * @Field()
  848.      */
  849.     public function getSantanderShopNumber(): string
  850.     {
  851.         return $this->santanderShopNumber;
  852.     }
  853.     public function setSantanderShopNumber(string $santanderShopNumber): void
  854.     {
  855.         $this->santanderShopNumber $santanderShopNumber;
  856.     }
  857.     /**
  858.      * @Field()
  859.      */
  860.     public function isCeneoEnabled(): bool
  861.     {
  862.         return $this->ceneoEnabled;
  863.     }
  864.     public function setCeneoEnabled(bool $ceneoEnabled): void
  865.     {
  866.         $this->ceneoEnabled $ceneoEnabled;
  867.     }
  868.     /**
  869.      * @Field()
  870.      */
  871.     public function getCeneoPartnerId(): string
  872.     {
  873.         return $this->ceneoPartnerId;
  874.     }
  875.     public function setCeneoPartnerId(string $ceneoPartnerId): void
  876.     {
  877.         $this->ceneoPartnerId $ceneoPartnerId;
  878.     }
  879.     /**
  880.      * @Field()
  881.      */
  882.     public function isOpineoEnabled(): bool
  883.     {
  884.         return $this->opineoEnabled;
  885.     }
  886.     public function setOpineoEnabled(bool $opineoEnabled): void
  887.     {
  888.         $this->opineoEnabled $opineoEnabled;
  889.     }
  890.     /**
  891.      * @Field()
  892.      */
  893.     public function getOpineoPartnerId(): string
  894.     {
  895.         return $this->opineoPartnerId;
  896.     }
  897.     public function setOpineoPartnerId(string $opineoPartnerId): void
  898.     {
  899.         $this->opineoPartnerId $opineoPartnerId;
  900.     }
  901.     public function isZaufaneEnabled(): bool
  902.     {
  903.         return $this->zaufaneEnabled;
  904.     }
  905.     public function setZaufaneEnabled(bool $zaufaneEnabled): void
  906.     {
  907.         $this->zaufaneEnabled $zaufaneEnabled;
  908.     }
  909.     public function getZaufaneInterfaceId(): string
  910.     {
  911.         return $this->zaufaneInterfaceId;
  912.     }
  913.     public function setZaufaneInterfaceId(string $zaufaneInterfaceId): void
  914.     {
  915.         $this->zaufaneInterfaceId $zaufaneInterfaceId;
  916.     }
  917.     public function getZaufaneInterfacePass(): string
  918.     {
  919.         return $this->zaufaneInterfacePass;
  920.     }
  921.     public function setZaufaneInterfacePass(string $zaufaneInterfacePass): void
  922.     {
  923.         $this->zaufaneInterfacePass $zaufaneInterfacePass;
  924.     }
  925.     /**
  926.      * @Field()
  927.      */
  928.     public function getCeneoWorkDaysToSend(): string
  929.     {
  930.         return $this->ceneoWorkDaysToSend;
  931.     }
  932.     public function setCeneoWorkDaysToSend(string $ceneoWorkDaysToSend): void
  933.     {
  934.         $this->ceneoWorkDaysToSend $ceneoWorkDaysToSend;
  935.     }
  936.     /**
  937.      * @Field()
  938.      */
  939.     public function getOpineoQueue(): string
  940.     {
  941.         return $this->opineoQueue;
  942.     }
  943.     public function setOpineoQueue(string $opineoQueue): void
  944.     {
  945.         $this->opineoQueue $opineoQueue;
  946.     }
  947.     /**
  948.      * @Field()
  949.      */
  950.     public function isOrderUploadEnabled(): bool
  951.     {
  952.         return $this->orderUploadEnabled;
  953.     }
  954.     public function setOrderUploadEnabled(bool $orderUploadEnabled): void
  955.     {
  956.         $this->orderUploadEnabled $orderUploadEnabled;
  957.     }
  958.     /**
  959.      * @Field()
  960.      */
  961.     public function getOrderUploadExtensions(): string
  962.     {
  963.         return $this->orderUploadExtensions;
  964.     }
  965.     public function setOrderUploadExtensions(string $orderUploadExtensions): void
  966.     {
  967.         $this->orderUploadExtensions $orderUploadExtensions;
  968.     }
  969.     public function getDevelopersEmails(): string
  970.     {
  971.         return $this->developersEmails;
  972.     }
  973.     public function setDevelopersEmails(string $developersEmails): void
  974.     {
  975.         $this->developersEmails $developersEmails;
  976.     }
  977.     public function getPremiereEmails(): string
  978.     {
  979.         return $this->premiereEmails;
  980.     }
  981.     public function setPremiereEmails(string $premiereEmails): void
  982.     {
  983.         $this->premiereEmails $premiereEmails;
  984.     }
  985.     public function getPremiereAvailabilities(): array
  986.     {
  987.         return (array)$this->premiereAvailabilities;
  988.     }
  989.     public function setPremiereAvailabilities(array $premiereAvailabilities): void
  990.     {
  991.         $this->premiereAvailabilities array_filter($premiereAvailabilities);
  992.     }
  993.     public function getLowStockEmails(): string
  994.     {
  995.         return $this->lowStockEmails;
  996.     }
  997.     public function setLowStockEmails(string $lowStockEmails): void
  998.     {
  999.         $this->lowStockEmails $lowStockEmails;
  1000.     }
  1001.     public function getReviewEmails(): string
  1002.     {
  1003.         return $this->reviewEmails;
  1004.     }
  1005.     public function setReviewEmails(string $reviewEmails): void
  1006.     {
  1007.         $this->reviewEmails $reviewEmails;
  1008.     }
  1009.     /**
  1010.      * @Field()
  1011.      */
  1012.     public function isGoogleTagManagerEnabled(): bool
  1013.     {
  1014.         return $this->googleTagManagerEnabled;
  1015.     }
  1016.     public function setGoogleTagManagerEnabled(bool $googleTagManagerEnabled): void
  1017.     {
  1018.         $this->googleTagManagerEnabled $googleTagManagerEnabled;
  1019.     }
  1020.     /**
  1021.      * @Field()
  1022.      */
  1023.     public function getGoogleTagManagerCode(): string
  1024.     {
  1025.         return $this->googleTagManagerCode;
  1026.     }
  1027.     public function setGoogleTagManagerCode(string $googleTagManagerCode): void
  1028.     {
  1029.         $this->googleTagManagerCode $googleTagManagerCode;
  1030.     }
  1031.     /**
  1032.      * @Field()
  1033.      */
  1034.     public function getProductReturningPeriod(): int
  1035.     {
  1036.         return $this->productReturningPeriod;
  1037.     }
  1038.     public function setProductReturningPeriod(int $productReturningPeriod)
  1039.     {
  1040.         $this->productReturningPeriod $productReturningPeriod;
  1041.     }
  1042.     public function getDefaultTax(): ?Tax
  1043.     {
  1044.         return $this->defaultTax;
  1045.     }
  1046.     public function setDefaultTax(?Tax $defaultTax): void
  1047.     {
  1048.         $this->defaultTax $defaultTax;
  1049.     }
  1050.     /**
  1051.      * @Field()
  1052.      */
  1053.     public function getShippingSchedule(): WeekSchedule
  1054.     {
  1055.         return $this->shippingSchedule;
  1056.     }
  1057.     public function setShippingSchedule(WeekSchedule $shippingSchedule): void
  1058.     {
  1059.         $this->shippingSchedule $shippingSchedule;
  1060.     }
  1061.     public function getOfferMaturity(): int
  1062.     {
  1063.         return $this->offerMaturity;
  1064.     }
  1065.     public function setOfferMaturity(int $offerMaturity): void
  1066.     {
  1067.         $this->offerMaturity $offerMaturity;
  1068.     }
  1069.     public function getOrderArchivePeriod(): int
  1070.     {
  1071.         return $this->orderArchivePeriod;
  1072.     }
  1073.     public function setOrderArchivePeriod(int $orderArchivePeriod): void
  1074.     {
  1075.         $this->orderArchivePeriod $orderArchivePeriod;
  1076.     }
  1077.     public function getRecommendationSettings(): RecommendationSettings
  1078.     {
  1079.         return $this->recommendationSettings;
  1080.     }
  1081.     public function setRecommendationSettings(RecommendationSettings $recommendationSettings): void
  1082.     {
  1083.         $this->recommendationSettings $recommendationSettings;
  1084.     }
  1085.     public function getSyneriseApiKey(): string
  1086.     {
  1087.         return $this->syneriseApiKey;
  1088.     }
  1089.     public function setSyneriseApiKey(string $syneriseApiKey): void
  1090.     {
  1091.         $this->syneriseApiKey $syneriseApiKey;
  1092.     }
  1093.     public function getSyneriseTestEmails(): string
  1094.     {
  1095.         return $this->syneriseTestEmails;
  1096.     }
  1097.     public function setSyneriseTestEmails(string $syneriseTestEmails): void
  1098.     {
  1099.         $this->syneriseTestEmails $syneriseTestEmails;
  1100.     }
  1101.     public function isSyneriseClientSync(): bool
  1102.     {
  1103.         return $this->syneriseClientSync;
  1104.     }
  1105.     public function setSyneriseClientSync(bool $syneriseClientSync): void
  1106.     {
  1107.         $this->syneriseClientSync $syneriseClientSync;
  1108.     }
  1109.     /**
  1110.      * @Field(outputType="MediaUrl")
  1111.      */
  1112.     public function getDefaultPhoto(): ?string
  1113.     {
  1114.         return $this->defaultPhoto;
  1115.     }
  1116.     public function setDefaultPhoto(?string $defaultPhoto): void
  1117.     {
  1118.         $this->defaultPhoto $defaultPhoto;
  1119.     }
  1120.     public function getDefaultPos(): ?Pos
  1121.     {
  1122.         return $this->defaultPos;
  1123.     }
  1124.     public function setDefaultPos(?Pos $defaultPos): void
  1125.     {
  1126.         $this->defaultPos $defaultPos;
  1127.     }
  1128.     public function isAppleConnectEnabled(): bool
  1129.     {
  1130.         return $this->appleConnectEnabled;
  1131.     }
  1132.     public function setAppleConnectEnabled(bool $appleConnectEnabled): void
  1133.     {
  1134.         $this->appleConnectEnabled $appleConnectEnabled;
  1135.     }
  1136.     public function getAppleConnectClientId(): string
  1137.     {
  1138.         return $this->appleConnectClientId;
  1139.     }
  1140.     public function setAppleConnectClientId(string $appleConnectClientId): void
  1141.     {
  1142.         $this->appleConnectClientId $appleConnectClientId;
  1143.     }
  1144.     public function getAppleConnectMobileId(): string
  1145.     {
  1146.         return $this->appleConnectMobileId;
  1147.     }
  1148.     public function setAppleConnectMobileId(string $appleConnectMobileId): void
  1149.     {
  1150.         $this->appleConnectMobileId $appleConnectMobileId;
  1151.     }
  1152.     public function getAppleConnectTeamId(): string
  1153.     {
  1154.         return $this->appleConnectTeamId;
  1155.     }
  1156.     public function setAppleConnectTeamId(string $appleConnectTeamId): void
  1157.     {
  1158.         $this->appleConnectTeamId $appleConnectTeamId;
  1159.     }
  1160.     public function getAppleConnectKeyFileId(): string
  1161.     {
  1162.         return $this->appleConnectKeyFileId;
  1163.     }
  1164.     public function setAppleConnectKeyFileId(string $appleConnectKeyFileId): void
  1165.     {
  1166.         $this->appleConnectKeyFileId $appleConnectKeyFileId;
  1167.     }
  1168.     public function getAppleConnectKeyFilePath(): string
  1169.     {
  1170.         return $this->appleConnectKeyFilePath;
  1171.     }
  1172.     public function setAppleConnectKeyFilePath(string $appleConnectKeyFilePath): void
  1173.     {
  1174.         $this->appleConnectKeyFilePath $appleConnectKeyFilePath;
  1175.     }
  1176.     public function getAdminInterfaceSettings(): AdminInterfaceSettings
  1177.     {
  1178.         return $this->adminInterfaceSettings;
  1179.     }
  1180.     public function setAdminInterfaceSettings(AdminInterfaceSettings $adminInterfaceSettings): void
  1181.     {
  1182.         $this->adminInterfaceSettings $adminInterfaceSettings;
  1183.     }
  1184.     public function getHierarchySettings(): HierarchySettings
  1185.     {
  1186.         return $this->hierarchySettings;
  1187.     }
  1188.     public function setHierarchySettings(HierarchySettings $hierarchySettings): void
  1189.     {
  1190.         $this->hierarchySettings $hierarchySettings;
  1191.     }
  1192.     public function isBeamsEnabled(): bool
  1193.     {
  1194.         return $this->beamsEnabled;
  1195.     }
  1196.     public function setBeamsEnabled(bool $beamsEnabled): void
  1197.     {
  1198.         $this->beamsEnabled $beamsEnabled;
  1199.     }
  1200.     public function getBeamsInstanceId(): string
  1201.     {
  1202.         return $this->beamsInstanceId;
  1203.     }
  1204.     public function setBeamsInstanceId(string $beamsInstanceId): void
  1205.     {
  1206.         $this->beamsInstanceId $beamsInstanceId;
  1207.     }
  1208.     public function getBeamsPrimaryKey(): string
  1209.     {
  1210.         return $this->beamsPrimaryKey;
  1211.     }
  1212.     public function setBeamsPrimaryKey(string $beamsPrimaryKey): void
  1213.     {
  1214.         $this->beamsPrimaryKey $beamsPrimaryKey;
  1215.     }
  1216.     public function getIpStackApiKey(): string
  1217.     {
  1218.         return $this->ipStackApiKey;
  1219.     }
  1220.     public function setIpStackApiKey(string $ipStackApiKey): void
  1221.     {
  1222.         $this->ipStackApiKey $ipStackApiKey;
  1223.     }
  1224.     public function getNewsletterSettings(): NewsletterSettings
  1225.     {
  1226.         return $this->newsletterSettings;
  1227.     }
  1228.     public function setNewsletterSettings(NewsletterSettings $newsletterSettings): void
  1229.     {
  1230.         $this->newsletterSettings $newsletterSettings;
  1231.     }
  1232.     /**
  1233.      * @Field()
  1234.      */
  1235.     public function getSocialMediaSettings(): SocialMediaSettings
  1236.     {
  1237.         return $this->socialMediaSettings;
  1238.     }
  1239.     public function setSocialMediaSettings(SocialMediaSettings $socialMediaSettings): void
  1240.     {
  1241.         $this->socialMediaSettings $socialMediaSettings;
  1242.     }
  1243.     /**
  1244.      * @Field()
  1245.      * @return Pos[]
  1246.      */
  1247.     public function getPosList(): Collection
  1248.     {
  1249.         return $this->posList;
  1250.     }
  1251.     /**
  1252.      * @Field()
  1253.      */
  1254.     public function getInstagramAppId(): string
  1255.     {
  1256.         return $this->instagramAppId;
  1257.     }
  1258.     public function setInstagramAppId(string $instagramAppId): void
  1259.     {
  1260.         $this->instagramAppId $instagramAppId;
  1261.     }
  1262.     public function getInstagramAppSecret(): string
  1263.     {
  1264.         return $this->instagramAppSecret;
  1265.     }
  1266.     public function setInstagramAppSecret(string $instagramAppSecret): void
  1267.     {
  1268.         $this->instagramAppSecret $instagramAppSecret;
  1269.     }
  1270.     public function isInstagramEnabled(): bool
  1271.     {
  1272.         return !empty($this->instagramAppId) && !empty($this->instagramAppSecret);
  1273.     }
  1274.     public function getSalesReportStatuses(): Collection
  1275.     {
  1276.         return $this->salesReportStatuses;
  1277.     }
  1278.     public function setSalesReportStatuses(Collection $salesReportStatuses): void
  1279.     {
  1280.         $this->salesReportStatuses $salesReportStatuses;
  1281.     }
  1282.     public function getObjectStorageSettings(): ObjectStorageSettings
  1283.     {
  1284.         return $this->objectStorageSettings;
  1285.     }
  1286.     public function setObjectStorageSettings(ObjectStorageSettings $objectStorageSettings): void
  1287.     {
  1288.         $this->objectStorageSettings $objectStorageSettings;
  1289.     }
  1290.     public function getDefaultComplaintStatus(): ?ComplaintStatus
  1291.     {
  1292.         return $this->defaultComplaintStatus;
  1293.     }
  1294.     public function setDefaultComplaintStatus(?ComplaintStatus $defaultComplaintStatus): void
  1295.     {
  1296.         $this->defaultComplaintStatus $defaultComplaintStatus;
  1297.     }
  1298. }