<?php
declare(strict_types=0);
/*
* WellCommerce Foundation
*
* This file is part of the WellCommerce package.
*
* (c) Adam Piotrowski <adam@wellcommerce.org>, Adrian Potepa <adrian@wellcommerce.org>
*
* For the full copyright and license information,
* please view the LICENSE file that was distributed with this source code.
*/
namespace WellCommerce\Bundle\AppBundle\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Knp\DoctrineBehaviors\Model\Translatable\Translatable;
use TheCodingMachine\GraphQLite\Annotations\Field;
use TheCodingMachine\GraphQLite\Annotations\HideIfUnauthorized;
use TheCodingMachine\GraphQLite\Annotations\Logged;
use TheCodingMachine\GraphQLite\Annotations\Right;
use TheCodingMachine\GraphQLite\Annotations\Type;
use WellCommerce\Bundle\CatalogBundle\Entity\ProductStatus;
use WellCommerce\Bundle\CmsBundle\Entity\Contact;
use WellCommerce\Bundle\CoreBundle\Doctrine\Behaviours\Identifiable;
use WellCommerce\Bundle\CoreBundle\Entity\MailerConfiguration;
use WellCommerce\Bundle\CoreBundle\Service\Api\Model\Asset;
use WellCommerce\Bundle\OrderBundle\Entity\OrderStatus;
use WellCommerce\Extra\AppBundle\Entity\ShopExtraTrait;
/**
* Class Shop
*
* @author Adam Piotrowski <adam@wellcommerce.org>
* @Type()
*/
class Shop implements AuditableInterface
{
use Identifiable;
use Translatable;
use ShopExtraTrait;
protected string $name = '';
protected string $url = '';
protected bool $offline = false;
protected string $offlineText = '';
protected bool $forceAlternateUrl = false;
protected bool $forceAdminRedirect = false;
protected string $alternateUrl = '';
protected string $defaultCountry = '';
protected string $defaultCurrency = '';
protected ?string $favicon = null;
protected ?string $logo = null;
protected ?string $logoFooter = null;
protected ?string $logoEmail = null;
protected ?string $adminLogo = null;
protected ?string $defaultPhoto = null;
protected bool $httpAuth = false;
protected bool $watermarkEnabled = false;
protected string $watermarkImage = '';
protected float $watermarkSize = 0.5;
protected ?Tax $defaultTax = null;
protected int $defaultNoveltyPeriod = 30;
protected int $defaultBestsellerPeriod = 30;
protected string $watermarkPosition = 'center';
protected bool $presaleAllowed = true;
protected bool $enableClient = true;
protected bool $registrationConfirmationRequired = false;
protected bool $cartLoginRequired = false;
protected bool $reCaptchaEnabled = false;
protected bool $reCaptchaForGuest = false;
protected bool $reCaptchaForClient = false;
protected string $reCaptchaSiteKey = '';
protected string $reCaptchaSecretKey = '';
protected int $maxCompareCount = 5;
protected int $missingCartInterval = 1;
protected bool $facebookPixelEnabled = false;
protected string $facebookPixelIdentifier = '';
protected bool $facebookConversionEnabled = false;
protected string $facebookConversionAccessToken = '';
protected string $facebookConversionAppId = '';
protected string $facebookConversionAppSecret = '';
protected bool $facebookConnectEnabled = false;
protected string $facebookConnectAppId = '';
protected string $facebookConnectAppSecret = '';
protected bool $appleConnectEnabled = false;
protected string $appleConnectClientId = '';
protected string $appleConnectMobileId = '';
protected string $appleConnectTeamId = '';
protected string $appleConnectKeyFileId = '';
protected string $appleConnectKeyFilePath = '';
protected bool $googleConnectEnabled = false;
protected string $googleConnectAppId = '';
protected string $googleConnectMobileId = '';
protected bool $googleTagManagerEnabled = false;
protected string $googleTagManagerCode = '';
protected string $googleConnectAppSecret = '';
protected string $googleConnectMobileSecret = '';
protected string $googleSiteVerification = '';
protected int $optimaMaxOrders = 10;
protected string $optimaDeliveryCostsName = '';
protected string $optimaSeriesName = '';
protected bool $optimaEnabled = false;
protected bool $santanderEnabled = false;
protected string $santanderShopNumber = '';
protected bool $ceneoEnabled = false;
protected string $ceneoPartnerId = '';
protected string $ceneoWorkDaysToSend = '';
protected bool $opineoEnabled = false;
protected string $opineoPartnerId = '';
protected string $opineoQueue = '';
protected bool $zaufaneEnabled = false;
protected string $zaufaneInterfaceId = '';
protected string $zaufaneInterfacePass = '';
protected bool $orderUploadEnabled = false;
protected string $orderUploadExtensions = '';
protected bool $pusherEnabled = true;
protected bool $beamsEnabled = false;
protected string $beamsInstanceId = '';
protected string $beamsPrimaryKey = '';
protected string $developersEmails = '';
protected string $lowStockEmails = '';
protected string $reviewEmails = '';
protected string $premiereEmails = '';
protected $premiereAvailabilities = [];
protected string $syneriseApiKey = '';
protected string $syneriseTestEmails = '';
protected string $ipStackApiKey = '';
protected string $instagramAppId = '';
protected string $instagramAppSecret = '';
protected bool $syneriseClientSync = false;
protected int $productReturningPeriod = 14;
protected int $offerMaturity = 14;
protected int $orderArchivePeriod = 90;
protected WeekSchedule $shippingSchedule;
protected MinimumOrderAmount $minimumOrderAmount;
protected MailerConfiguration $mailerConfiguration;
protected ?Company $company = null;
protected ?ClientGroup $clientGroup = null;
protected ?Theme $theme = null;
protected ?Contact $contact = null;
protected ?Pos $defaultPos = null;
protected ?ProductStatus $defaultNoveltyStatus = null;
protected ?ProductStatus $defaultPromotionStatus = null;
protected ?ProductStatus $defaultBestsellerStatus = null;
protected ?ComplaintStatus $defaultComplaintStatus = null;
protected Collection $orderReviewStatuses;
protected Collection $orderVoidStatuses;
protected Collection $salesReportStatuses;
protected Collection $posList;
protected ?Mailbox $mailbox = null;
protected RecommendationSettings $recommendationSettings;
protected HierarchySettings $hierarchySettings;
protected AdminInterfaceSettings $adminInterfaceSettings;
protected NewsletterSettings $newsletterSettings;
protected SocialMediaSettings $socialMediaSettings;
protected ObjectStorageSettings $objectStorageSettings;
public function __construct()
{
$this->mailerConfiguration = new MailerConfiguration();
$this->recommendationSettings = new RecommendationSettings();
$this->hierarchySettings = new HierarchySettings();
$this->minimumOrderAmount = new MinimumOrderAmount();
$this->shippingSchedule = new WeekSchedule();
$this->adminInterfaceSettings = new AdminInterfaceSettings();
$this->newsletterSettings = new NewsletterSettings();
$this->socialMediaSettings = new SocialMediaSettings();
$this->objectStorageSettings = new ObjectStorageSettings();
$this->orderReviewStatuses = new ArrayCollection();
$this->orderVoidStatuses = new ArrayCollection();
$this->salesReportStatuses = new ArrayCollection();
$this->posList = new ArrayCollection();
}
/**
* @return OrderStatus[]
*/
public function getOrderReviewStatuses(): Collection
{
return $this->orderReviewStatuses ?? new ArrayCollection();
}
public function setOrderReviewStatuses(Collection $orderReviewStatuses): void
{
$this->orderReviewStatuses = $orderReviewStatuses;
}
public function getOrderVoidStatuses(): Collection
{
return $this->orderVoidStatuses;
}
public function setOrderVoidStatuses(Collection $orderVoidStatuses): void
{
$this->orderVoidStatuses = $orderVoidStatuses;
}
public function isHttpAuth(): bool
{
return $this->httpAuth;
}
public function setHttpAuth(bool $httpAuth): void
{
$this->httpAuth = $httpAuth;
}
/**
* @Field()
*/
public function isOffline(): bool
{
return $this->offline;
}
public function setOffline(bool $offline): void
{
$this->offline = $offline;
}
/**
* @Field()
*/
public function getOfflineText(): string
{
return $this->offlineText;
}
public function setOfflineText(string $offlineText): void
{
$this->offlineText = $offlineText;
}
/**
* @Field()
*/
public function getName(): string
{
return $this->name;
}
public function setName(string $name)
{
$this->name = $name;
}
/**
* @Field()
*/
public function getCompany(): ?Company
{
return $this->company;
}
public function setCompany(?Company $company = null)
{
$this->company = $company;
}
/**
* @Field()
*/
public function getUrl(): string
{
return $this->url;
}
public function setUrl(string $url)
{
$this->url = $url;
}
public function isForceAlternateUrl(): bool
{
return $this->forceAlternateUrl;
}
public function setForceAlternateUrl(bool $forceAlternateUrl): void
{
$this->forceAlternateUrl = $forceAlternateUrl;
}
public function isForceAdminRedirect(): bool
{
return $this->forceAdminRedirect;
}
public function setForceAdminRedirect(bool $forceAdminRedirect): void
{
$this->forceAdminRedirect = $forceAdminRedirect;
}
public function getAlternateUrl(): string
{
return $this->alternateUrl;
}
public function getAlternateHost(): string
{
return 'https://' . $this->alternateUrl;
}
public function setAlternateUrl(string $alternateUrl): void
{
$this->alternateUrl = $alternateUrl;
}
/**
* @Field()
*/
public function isPresaleAllowed(): bool
{
return $this->presaleAllowed;
}
public function setPresaleAllowed(bool $presaleAllowed): void
{
$this->presaleAllowed = $presaleAllowed;
}
/**
* @Field()
*/
public function getDefaultCountry(): string
{
return $this->defaultCountry;
}
public function setDefaultCountry(string $defaultCountry)
{
$this->defaultCountry = $defaultCountry;
}
/**
* @Field()
*/
public function getDefaultCurrency(): string
{
return $this->defaultCurrency;
}
public function setDefaultCurrency(string $defaultCurrency)
{
$this->defaultCurrency = $defaultCurrency;
}
/**
* @Field()
*/
public function getContact(): ?Contact
{
return $this->contact;
}
public function setContact(?Contact $contact): void
{
$this->contact = $contact;
}
public function setMailerConfiguration(MailerConfiguration $configuration)
{
$this->mailerConfiguration = $configuration;
}
public function getMailerConfiguration(): MailerConfiguration
{
return $this->mailerConfiguration;
}
public function getClientGroup(): ?ClientGroup
{
return $this->clientGroup;
}
public function setClientGroup(?ClientGroup $clientGroup = null)
{
$this->clientGroup = $clientGroup;
}
public function getTheme(): ?Theme
{
return $this->theme;
}
public function setTheme(Theme $theme = null)
{
$this->theme = $theme;
}
public function getMinimumOrderAmount(): MinimumOrderAmount
{
return $this->minimumOrderAmount;
}
public function setMinimumOrderAmount(MinimumOrderAmount $minimumOrderAmount)
{
$this->minimumOrderAmount = $minimumOrderAmount;
}
public function isEnableClient(): bool
{
return $this->enableClient;
}
public function setEnableClient(bool $enableClient)
{
$this->enableClient = $enableClient;
}
/**
* @Field(outputType="MediaUrl")
*/
public function getLogo(): ?string
{
return $this->logo;
}
/**
* @Field(outputType="Asset")
*/
public function getLogoUrl(): ?Asset
{
if (!empty($this->logo)) {
return new Asset('/upload/layout/' . $this->logo);
}
return null;
}
public function setLogo(?string $logo = null)
{
$this->logo = $logo;
}
/**
* @Field(outputType="MediaUrl")
*/
public function getFavicon(): ?string
{
return $this->favicon;
}
/**
* @Field(outputType="Asset")
*/
public function getFaviconUrl(): ?Asset
{
if (!empty($this->favicon)) {
return new Asset('/upload/layout/' . $this->favicon);
}
return null;
}
/**
* @param string|null $favicon
*/
public function setFavicon(?string $favicon): void
{
$this->favicon = $favicon;
}
/**
* @Field(outputType="MediaUrl")
*/
public function getLogoFooter(): ?string
{
return $this->logoFooter;
}
/**
* @Field(outputType="Asset")
*/
public function getLogoFooterUrl(): ?Asset
{
if (!empty($this->logoFooter)) {
return new Asset('/upload/layout/' . $this->logoFooter);
}
return null;
}
public function setLogoFooter(?string $logoFooter): void
{
$this->logoFooter = $logoFooter;
}
/**
* @Field(outputType="MediaUrl")
*/
public function getLogoEmail(): ?string
{
return $this->logoEmail;
}
/**
* @Field(outputType="Asset")
*/
public function getLogoEmailUrl(): ?Asset
{
if (!empty($this->logoEmail)) {
return new Asset('/upload/layout/' . $this->logoEmail);
}
return null;
}
public function setLogoEmail(?string $logoEmail): void
{
$this->logoEmail = $logoEmail;
}
public function getAdminLogo(): ?string
{
return $this->adminLogo;
}
public function setAdminLogo(?string $adminLogo = null)
{
$this->adminLogo = $adminLogo;
}
public function isRegistrationConfirmationRequired(): bool
{
return $this->registrationConfirmationRequired;
}
public function setRegistrationConfirmationRequired(bool $registrationConfirmationRequired)
{
$this->registrationConfirmationRequired = $registrationConfirmationRequired;
}
public function isWatermarkEnabled(): bool
{
return $this->watermarkEnabled;
}
public function setWatermarkEnabled(bool $watermarkEnabled)
{
$this->watermarkEnabled = $watermarkEnabled;
}
public function getWatermarkImage(): string
{
return $this->watermarkImage;
}
public function setWatermarkImage(string $watermarkImage)
{
$this->watermarkImage = $watermarkImage;
}
public function getWatermarkSize(): float
{
return (float)$this->watermarkSize;
}
public function setWatermarkSize(float $watermarkSize)
{
$this->watermarkSize = $watermarkSize;
}
public function getWatermarkPosition(): string
{
return $this->watermarkPosition;
}
public function setWatermarkPosition(string $watermarkPosition)
{
$this->watermarkPosition = $watermarkPosition;
}
public function isPusherEnabled(): bool
{
return $this->pusherEnabled;
}
public function setPusherEnabled(bool $pusherEnabled): void
{
$this->pusherEnabled = $pusherEnabled;
}
public function getDefaultNoveltyPeriod(): int
{
return $this->defaultNoveltyPeriod;
}
public function setDefaultNoveltyPeriod(int $defaultNoveltyPeriod)
{
$this->defaultNoveltyPeriod = $defaultNoveltyPeriod;
}
public function getDefaultBestsellerPeriod(): int
{
return $this->defaultBestsellerPeriod;
}
public function setDefaultBestsellerPeriod(int $defaultBestsellerPeriod)
{
$this->defaultBestsellerPeriod = $defaultBestsellerPeriod;
}
public function getDefaultNoveltyStatus(): ?ProductStatus
{
return $this->defaultNoveltyStatus;
}
public function setDefaultNoveltyStatus(?ProductStatus $defaultNoveltyStatus = null)
{
$this->defaultNoveltyStatus = $defaultNoveltyStatus;
}
public function getDefaultPromotionStatus(): ?ProductStatus
{
return $this->defaultPromotionStatus;
}
public function setDefaultPromotionStatus(?ProductStatus $defaultPromotionStatus = null)
{
$this->defaultPromotionStatus = $defaultPromotionStatus;
}
public function getDefaultBestsellerStatus(): ?ProductStatus
{
return $this->defaultBestsellerStatus;
}
public function setDefaultBestsellerStatus(?ProductStatus $defaultBestsellerStatus = null)
{
$this->defaultBestsellerStatus = $defaultBestsellerStatus;
}
/**
* @Field()
*/
public function isReCaptchaEnabled(): bool
{
return $this->reCaptchaEnabled;
}
public function setReCaptchaEnabled(bool $reCaptchaEnabled)
{
$this->reCaptchaEnabled = $reCaptchaEnabled;
}
/**
* @Field()
*/
public function isReCaptchaForGuest(): bool
{
return $this->reCaptchaForGuest;
}
public function setReCaptchaForGuest(bool $reCaptchaForGuest)
{
$this->reCaptchaForGuest = $reCaptchaForGuest;
}
/**
* @Field()
*/
public function isReCaptchaForClient(): bool
{
return $this->reCaptchaForClient;
}
public function setReCaptchaForClient(bool $reCaptchaForClient)
{
$this->reCaptchaForClient = $reCaptchaForClient;
}
/**
* @Field()
*/
public function getReCaptchaSiteKey(): string
{
return $this->reCaptchaSiteKey;
}
public function setReCaptchaSiteKey(string $reCaptchaSiteKey)
{
$this->reCaptchaSiteKey = $reCaptchaSiteKey;
}
/**
* @Field()
* @Logged()
* @Right("ROLE_ADMIN")
* @HideIfUnauthorized()
*/
public function getReCaptchaSecretKey(): string
{
return $this->reCaptchaSecretKey;
}
public function setReCaptchaSecretKey(string $reCaptchaSecretKey)
{
$this->reCaptchaSecretKey = $reCaptchaSecretKey;
}
/**
* @Field()
*/
public function getMaxCompareCount(): int
{
return $this->maxCompareCount;
}
public function setMaxCompareCount(int $maxCompareCount)
{
$this->maxCompareCount = $maxCompareCount;
}
public function getMissingCartInterval(): int
{
return $this->missingCartInterval;
}
public function setMissingCartInterval(int $missingCartInterval)
{
$this->missingCartInterval = $missingCartInterval;
}
/**
* @Field()
*/
public function translate(string $locale = null, bool $fallbackToDefault = false): ShopTranslation
{
return $this->doTranslate($locale, $fallbackToDefault);
}
/**
* @Field()
*/
public function getThemeFolder(): string
{
return $this->theme->getFolder();
}
/**
* @Field()
*/
public function isFacebookPixelEnabled(): bool
{
return $this->facebookPixelEnabled;
}
public function setFacebookPixelEnabled(bool $facebookPixelEnabled): void
{
$this->facebookPixelEnabled = $facebookPixelEnabled;
}
/**
* @Field()
*/
public function getFacebookPixelIdentifier(): string
{
return $this->facebookPixelIdentifier;
}
public function setFacebookPixelIdentifier(string $facebookPixelIdentifier): void
{
$this->facebookPixelIdentifier = $facebookPixelIdentifier;
}
public function isFacebookConversionEnabled(): bool
{
return $this->facebookConversionEnabled;
}
public function setFacebookConversionEnabled(bool $facebookConversionEnabled): void
{
$this->facebookConversionEnabled = $facebookConversionEnabled;
}
public function getFacebookConversionAccessToken(): string
{
return $this->facebookConversionAccessToken;
}
public function setFacebookConversionAccessToken(string $facebookConversionAccessToken): void
{
$this->facebookConversionAccessToken = $facebookConversionAccessToken;
}
public function getFacebookConversionAppId(): string
{
return $this->facebookConversionAppId;
}
public function setFacebookConversionAppId(string $facebookConversionAppId): void
{
$this->facebookConversionAppId = $facebookConversionAppId;
}
public function getFacebookConversionAppSecret(): string
{
return $this->facebookConversionAppSecret;
}
public function setFacebookConversionAppSecret(string $facebookConversionAppSecret): void
{
$this->facebookConversionAppSecret = $facebookConversionAppSecret;
}
/**
* @Field()
*/
public function isFacebookConnectEnabled(): bool
{
return $this->facebookConnectEnabled;
}
public function setFacebookConnectEnabled(bool $facebookConnectEnabled): void
{
$this->facebookConnectEnabled = $facebookConnectEnabled;
}
/**
* @Field()
*/
public function getFacebookConnectAppId(): string
{
return $this->facebookConnectAppId;
}
public function setFacebookConnectAppId(string $facebookConnectAppId): void
{
$this->facebookConnectAppId = $facebookConnectAppId;
}
public function getFacebookConnectAppSecret(): string
{
return $this->facebookConnectAppSecret;
}
public function setFacebookConnectAppSecret(string $facebookConnectAppSecret): void
{
$this->facebookConnectAppSecret = $facebookConnectAppSecret;
}
/**
* @Field()
*/
public function isGoogleConnectEnabled(): bool
{
return $this->googleConnectEnabled;
}
public function setGoogleConnectEnabled(bool $googleConnectEnabled)
{
$this->googleConnectEnabled = $googleConnectEnabled;
}
/**
* @Field()
*/
public function getGoogleConnectAppId(): string
{
return $this->googleConnectAppId;
}
public function setGoogleConnectAppId(string $googleConnectAppId)
{
$this->googleConnectAppId = $googleConnectAppId;
}
public function getGoogleConnectAppSecret(): string
{
return $this->googleConnectAppSecret;
}
public function setGoogleConnectAppSecret(string $googleConnectAppSecret)
{
$this->googleConnectAppSecret = $googleConnectAppSecret;
}
public function getGoogleConnectMobileId(): string
{
return $this->googleConnectMobileId;
}
public function setGoogleConnectMobileId(string $googleConnectMobileId): void
{
$this->googleConnectMobileId = $googleConnectMobileId;
}
public function getGoogleConnectMobileSecret(): string
{
return $this->googleConnectMobileSecret;
}
public function setGoogleConnectMobileSecret(string $googleConnectMobileSecret): void
{
$this->googleConnectMobileSecret = $googleConnectMobileSecret;
}
/**
* @Field()
*/
public function getGoogleSiteVerification(): string
{
return $this->googleSiteVerification;
}
public function setGoogleSiteVerification(string $googleSiteVerification)
{
$this->googleSiteVerification = $googleSiteVerification;
}
/**
* @Field()
*/
public function isCartLoginRequired(): bool
{
return $this->cartLoginRequired;
}
public function setCartLoginRequired(bool $cartLoginRequired)
{
$this->cartLoginRequired = $cartLoginRequired;
}
public function getOptimaMaxOrders(): int
{
return $this->optimaMaxOrders;
}
public function setOptimaMaxOrders(int $optimaMaxOrders): void
{
$this->optimaMaxOrders = $optimaMaxOrders;
}
public function getOptimaDeliveryCostsName(): string
{
return $this->optimaDeliveryCostsName;
}
public function setOptimaDeliveryCostsName(string $optimaDeliveryCostsName): void
{
$this->optimaDeliveryCostsName = $optimaDeliveryCostsName;
}
public function getOptimaSeriesName(): string
{
return $this->optimaSeriesName;
}
public function setOptimaSeriesName(string $optimaSeriesName): void
{
$this->optimaSeriesName = $optimaSeriesName;
}
public function isOptimaEnabled(): bool
{
return $this->optimaEnabled;
}
public function setOptimaEnabled(bool $optimaEnabled): void
{
$this->optimaEnabled = $optimaEnabled;
}
public function getMailbox(): ?Mailbox
{
return $this->mailbox;
}
public function setMailbox(?Mailbox $mailbox): void
{
$this->mailbox = $mailbox;
}
public function getResourceName(): string
{
return $this->getName();
}
/**
* @Field()
*/
public function isSantanderEnabled(): bool
{
return $this->santanderEnabled;
}
public function setSantanderEnabled(bool $santanderEnabled): void
{
$this->santanderEnabled = $santanderEnabled;
}
/**
* @Field()
*/
public function getSantanderShopNumber(): string
{
return $this->santanderShopNumber;
}
public function setSantanderShopNumber(string $santanderShopNumber): void
{
$this->santanderShopNumber = $santanderShopNumber;
}
/**
* @Field()
*/
public function isCeneoEnabled(): bool
{
return $this->ceneoEnabled;
}
public function setCeneoEnabled(bool $ceneoEnabled): void
{
$this->ceneoEnabled = $ceneoEnabled;
}
/**
* @Field()
*/
public function getCeneoPartnerId(): string
{
return $this->ceneoPartnerId;
}
public function setCeneoPartnerId(string $ceneoPartnerId): void
{
$this->ceneoPartnerId = $ceneoPartnerId;
}
/**
* @Field()
*/
public function isOpineoEnabled(): bool
{
return $this->opineoEnabled;
}
public function setOpineoEnabled(bool $opineoEnabled): void
{
$this->opineoEnabled = $opineoEnabled;
}
/**
* @Field()
*/
public function getOpineoPartnerId(): string
{
return $this->opineoPartnerId;
}
public function setOpineoPartnerId(string $opineoPartnerId): void
{
$this->opineoPartnerId = $opineoPartnerId;
}
public function isZaufaneEnabled(): bool
{
return $this->zaufaneEnabled;
}
public function setZaufaneEnabled(bool $zaufaneEnabled): void
{
$this->zaufaneEnabled = $zaufaneEnabled;
}
public function getZaufaneInterfaceId(): string
{
return $this->zaufaneInterfaceId;
}
public function setZaufaneInterfaceId(string $zaufaneInterfaceId): void
{
$this->zaufaneInterfaceId = $zaufaneInterfaceId;
}
public function getZaufaneInterfacePass(): string
{
return $this->zaufaneInterfacePass;
}
public function setZaufaneInterfacePass(string $zaufaneInterfacePass): void
{
$this->zaufaneInterfacePass = $zaufaneInterfacePass;
}
/**
* @Field()
*/
public function getCeneoWorkDaysToSend(): string
{
return $this->ceneoWorkDaysToSend;
}
public function setCeneoWorkDaysToSend(string $ceneoWorkDaysToSend): void
{
$this->ceneoWorkDaysToSend = $ceneoWorkDaysToSend;
}
/**
* @Field()
*/
public function getOpineoQueue(): string
{
return $this->opineoQueue;
}
public function setOpineoQueue(string $opineoQueue): void
{
$this->opineoQueue = $opineoQueue;
}
/**
* @Field()
*/
public function isOrderUploadEnabled(): bool
{
return $this->orderUploadEnabled;
}
public function setOrderUploadEnabled(bool $orderUploadEnabled): void
{
$this->orderUploadEnabled = $orderUploadEnabled;
}
/**
* @Field()
*/
public function getOrderUploadExtensions(): string
{
return $this->orderUploadExtensions;
}
public function setOrderUploadExtensions(string $orderUploadExtensions): void
{
$this->orderUploadExtensions = $orderUploadExtensions;
}
public function getDevelopersEmails(): string
{
return $this->developersEmails;
}
public function setDevelopersEmails(string $developersEmails): void
{
$this->developersEmails = $developersEmails;
}
public function getPremiereEmails(): string
{
return $this->premiereEmails;
}
public function setPremiereEmails(string $premiereEmails): void
{
$this->premiereEmails = $premiereEmails;
}
public function getPremiereAvailabilities(): array
{
return (array)$this->premiereAvailabilities;
}
public function setPremiereAvailabilities(array $premiereAvailabilities): void
{
$this->premiereAvailabilities = array_filter($premiereAvailabilities);
}
public function getLowStockEmails(): string
{
return $this->lowStockEmails;
}
public function setLowStockEmails(string $lowStockEmails): void
{
$this->lowStockEmails = $lowStockEmails;
}
public function getReviewEmails(): string
{
return $this->reviewEmails;
}
public function setReviewEmails(string $reviewEmails): void
{
$this->reviewEmails = $reviewEmails;
}
/**
* @Field()
*/
public function isGoogleTagManagerEnabled(): bool
{
return $this->googleTagManagerEnabled;
}
public function setGoogleTagManagerEnabled(bool $googleTagManagerEnabled): void
{
$this->googleTagManagerEnabled = $googleTagManagerEnabled;
}
/**
* @Field()
*/
public function getGoogleTagManagerCode(): string
{
return $this->googleTagManagerCode;
}
public function setGoogleTagManagerCode(string $googleTagManagerCode): void
{
$this->googleTagManagerCode = $googleTagManagerCode;
}
/**
* @Field()
*/
public function getProductReturningPeriod(): int
{
return $this->productReturningPeriod;
}
public function setProductReturningPeriod(int $productReturningPeriod)
{
$this->productReturningPeriod = $productReturningPeriod;
}
public function getDefaultTax(): ?Tax
{
return $this->defaultTax;
}
public function setDefaultTax(?Tax $defaultTax): void
{
$this->defaultTax = $defaultTax;
}
/**
* @Field()
*/
public function getShippingSchedule(): WeekSchedule
{
return $this->shippingSchedule;
}
public function setShippingSchedule(WeekSchedule $shippingSchedule): void
{
$this->shippingSchedule = $shippingSchedule;
}
public function getOfferMaturity(): int
{
return $this->offerMaturity;
}
public function setOfferMaturity(int $offerMaturity): void
{
$this->offerMaturity = $offerMaturity;
}
public function getOrderArchivePeriod(): int
{
return $this->orderArchivePeriod;
}
public function setOrderArchivePeriod(int $orderArchivePeriod): void
{
$this->orderArchivePeriod = $orderArchivePeriod;
}
public function getRecommendationSettings(): RecommendationSettings
{
return $this->recommendationSettings;
}
public function setRecommendationSettings(RecommendationSettings $recommendationSettings): void
{
$this->recommendationSettings = $recommendationSettings;
}
public function getSyneriseApiKey(): string
{
return $this->syneriseApiKey;
}
public function setSyneriseApiKey(string $syneriseApiKey): void
{
$this->syneriseApiKey = $syneriseApiKey;
}
public function getSyneriseTestEmails(): string
{
return $this->syneriseTestEmails;
}
public function setSyneriseTestEmails(string $syneriseTestEmails): void
{
$this->syneriseTestEmails = $syneriseTestEmails;
}
public function isSyneriseClientSync(): bool
{
return $this->syneriseClientSync;
}
public function setSyneriseClientSync(bool $syneriseClientSync): void
{
$this->syneriseClientSync = $syneriseClientSync;
}
/**
* @Field(outputType="MediaUrl")
*/
public function getDefaultPhoto(): ?string
{
return $this->defaultPhoto;
}
public function setDefaultPhoto(?string $defaultPhoto): void
{
$this->defaultPhoto = $defaultPhoto;
}
public function getDefaultPos(): ?Pos
{
return $this->defaultPos;
}
public function setDefaultPos(?Pos $defaultPos): void
{
$this->defaultPos = $defaultPos;
}
public function isAppleConnectEnabled(): bool
{
return $this->appleConnectEnabled;
}
public function setAppleConnectEnabled(bool $appleConnectEnabled): void
{
$this->appleConnectEnabled = $appleConnectEnabled;
}
public function getAppleConnectClientId(): string
{
return $this->appleConnectClientId;
}
public function setAppleConnectClientId(string $appleConnectClientId): void
{
$this->appleConnectClientId = $appleConnectClientId;
}
public function getAppleConnectMobileId(): string
{
return $this->appleConnectMobileId;
}
public function setAppleConnectMobileId(string $appleConnectMobileId): void
{
$this->appleConnectMobileId = $appleConnectMobileId;
}
public function getAppleConnectTeamId(): string
{
return $this->appleConnectTeamId;
}
public function setAppleConnectTeamId(string $appleConnectTeamId): void
{
$this->appleConnectTeamId = $appleConnectTeamId;
}
public function getAppleConnectKeyFileId(): string
{
return $this->appleConnectKeyFileId;
}
public function setAppleConnectKeyFileId(string $appleConnectKeyFileId): void
{
$this->appleConnectKeyFileId = $appleConnectKeyFileId;
}
public function getAppleConnectKeyFilePath(): string
{
return $this->appleConnectKeyFilePath;
}
public function setAppleConnectKeyFilePath(string $appleConnectKeyFilePath): void
{
$this->appleConnectKeyFilePath = $appleConnectKeyFilePath;
}
public function getAdminInterfaceSettings(): AdminInterfaceSettings
{
return $this->adminInterfaceSettings;
}
public function setAdminInterfaceSettings(AdminInterfaceSettings $adminInterfaceSettings): void
{
$this->adminInterfaceSettings = $adminInterfaceSettings;
}
public function getHierarchySettings(): HierarchySettings
{
return $this->hierarchySettings;
}
public function setHierarchySettings(HierarchySettings $hierarchySettings): void
{
$this->hierarchySettings = $hierarchySettings;
}
public function isBeamsEnabled(): bool
{
return $this->beamsEnabled;
}
public function setBeamsEnabled(bool $beamsEnabled): void
{
$this->beamsEnabled = $beamsEnabled;
}
public function getBeamsInstanceId(): string
{
return $this->beamsInstanceId;
}
public function setBeamsInstanceId(string $beamsInstanceId): void
{
$this->beamsInstanceId = $beamsInstanceId;
}
public function getBeamsPrimaryKey(): string
{
return $this->beamsPrimaryKey;
}
public function setBeamsPrimaryKey(string $beamsPrimaryKey): void
{
$this->beamsPrimaryKey = $beamsPrimaryKey;
}
public function getIpStackApiKey(): string
{
return $this->ipStackApiKey;
}
public function setIpStackApiKey(string $ipStackApiKey): void
{
$this->ipStackApiKey = $ipStackApiKey;
}
public function getNewsletterSettings(): NewsletterSettings
{
return $this->newsletterSettings;
}
public function setNewsletterSettings(NewsletterSettings $newsletterSettings): void
{
$this->newsletterSettings = $newsletterSettings;
}
/**
* @Field()
*/
public function getSocialMediaSettings(): SocialMediaSettings
{
return $this->socialMediaSettings;
}
public function setSocialMediaSettings(SocialMediaSettings $socialMediaSettings): void
{
$this->socialMediaSettings = $socialMediaSettings;
}
/**
* @Field()
* @return Pos[]
*/
public function getPosList(): Collection
{
return $this->posList;
}
/**
* @Field()
*/
public function getInstagramAppId(): string
{
return $this->instagramAppId;
}
public function setInstagramAppId(string $instagramAppId): void
{
$this->instagramAppId = $instagramAppId;
}
public function getInstagramAppSecret(): string
{
return $this->instagramAppSecret;
}
public function setInstagramAppSecret(string $instagramAppSecret): void
{
$this->instagramAppSecret = $instagramAppSecret;
}
public function isInstagramEnabled(): bool
{
return !empty($this->instagramAppId) && !empty($this->instagramAppSecret);
}
public function getSalesReportStatuses(): Collection
{
return $this->salesReportStatuses;
}
public function setSalesReportStatuses(Collection $salesReportStatuses): void
{
$this->salesReportStatuses = $salesReportStatuses;
}
public function getObjectStorageSettings(): ObjectStorageSettings
{
return $this->objectStorageSettings;
}
public function setObjectStorageSettings(ObjectStorageSettings $objectStorageSettings): void
{
$this->objectStorageSettings = $objectStorageSettings;
}
public function getDefaultComplaintStatus(): ?ComplaintStatus
{
return $this->defaultComplaintStatus;
}
public function setDefaultComplaintStatus(?ComplaintStatus $defaultComplaintStatus): void
{
$this->defaultComplaintStatus = $defaultComplaintStatus;
}
}