app/Entity/Schema/ORM/WorkspaceLinkSettings.php line 8

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Sq\Entity\Schema\ORM;
  3. use Doctrine\ORM\Mapping as ORM;
  4. #[ORM\Embeddable]
  5. class WorkspaceLinkSettings
  6. {
  7.     #[ORM\Column(name'campaign_tracking'type'boolean'nullabletrueoptions: ['default' => false])]
  8.     private bool $campaignTracking false;
  9.     #[ORM\Column(name'remove_utm'type'boolean'nullabletrueoptions: ['default' => false])]
  10.     private bool $removeUtm false;
  11.     #[ORM\Column(name'utm_source'type'string'length64nullabletrueoptions: ['default' => '_NETWORK_'])]
  12.     private ?string $utmSource '_NETWORK_';
  13.     #[ORM\Column(name'utm_medium'type'string'length64nullabletrueoptions: ['default' => 'social'])]
  14.     private ?string $utmMedium 'social';
  15.     #[ORM\Column(name'utm_campaign'type'string'length64nullabletrueoptions: ['default' => '_ACCOUNT_'])]
  16.     private ?string $utmCampaign '_ACCOUNT_';
  17.     #[ORM\Column(name'utm_term'type'string'length64nullabletrue)]
  18.     private ?string $utmTerm null;
  19.     #[ORM\Column(name'utm_content'type'string'length64nullabletrueoptions: ['default' => '_CATEGORY_'])]
  20.     private ?string $utmContent '_CATEGORY_';
  21.     public function isCampaignTrackingEnabled(): bool
  22.     {
  23.         return $this->campaignTracking;
  24.     }
  25.     public function setCampaignTracking(bool $campaignTracking): self
  26.     {
  27.         $this->campaignTracking $campaignTracking;
  28.         return $this;
  29.     }
  30.     public function shouldRemoveUtm(): bool
  31.     {
  32.         return $this->removeUtm;
  33.     }
  34.     public function setRemoveUtm(bool $removeUtm): self
  35.     {
  36.         $this->removeUtm $removeUtm;
  37.         return $this;
  38.     }
  39.     public function getUtmSource(): ?string
  40.     {
  41.         return match ($this->utmSource)
  42.         {
  43.             '_NETWORK_' => 'NETWORK',
  44.             '_ACCOUNT_' => 'ACCOUNT',
  45.             '_CATEGORY_' => 'CATEGORY',
  46.             default => $this->utmSource,
  47.         };
  48.     }
  49.     public function setUtmSource(?string $utmSource): self
  50.     {
  51.         $this->utmSource = match ($utmSource)
  52.         {
  53.             'NETWORK' => '_NETWORK_',
  54.             'ACCOUNT' => '_ACCOUNT_',
  55.             'CATEGORY' => '_CATEGORY_',
  56.             default => $utmSource,
  57.         };
  58.         return $this;
  59.     }
  60.     public function getUtmMedium(): ?string
  61.     {
  62.         return match ($this->utmMedium)
  63.         {
  64.             '_NETWORK_' => 'NETWORK',
  65.             '_ACCOUNT_' => 'ACCOUNT',
  66.             '_CATEGORY_' => 'CATEGORY',
  67.             default => $this->utmMedium,
  68.         };
  69.     }
  70.     public function setUtmMedium(?string $utmMedium): self
  71.     {
  72.         $this->utmMedium = match ($utmMedium)
  73.         {
  74.             'NETWORK' => '_NETWORK_',
  75.             'ACCOUNT' => '_ACCOUNT_',
  76.             'CATEGORY' => '_CATEGORY_',
  77.             default => $utmMedium,
  78.         };
  79.         return $this;
  80.     }
  81.     public function getUtmCampaign(): ?string
  82.     {
  83.         return match ($this->utmCampaign)
  84.         {
  85.             '_NETWORK_' => 'NETWORK',
  86.             '_ACCOUNT_' => 'ACCOUNT',
  87.             '_CATEGORY_' => 'CATEGORY',
  88.             default => $this->utmCampaign,
  89.         };
  90.     }
  91.     public function setUtmCampaign(?string $utmCampaign): self
  92.     {
  93.         $this->utmCampaign = match ($utmCampaign)
  94.         {
  95.             'NETWORK' => '_NETWORK_',
  96.             'ACCOUNT' => '_ACCOUNT_',
  97.             'CATEGORY' => '_CATEGORY_',
  98.             default => $utmCampaign,
  99.         };
  100.         return $this;
  101.     }
  102.     public function getUtmTerm(): ?string
  103.     {
  104.         return match ($this->utmTerm)
  105.         {
  106.             '_NETWORK_' => 'NETWORK',
  107.             '_ACCOUNT_' => 'ACCOUNT',
  108.             '_CATEGORY_' => 'CATEGORY',
  109.             default => $this->utmTerm,
  110.         };
  111.     }
  112.     public function setUtmTerm(?string $utmTerm): self
  113.     {
  114.         $this->utmTerm = match ($utmTerm)
  115.         {
  116.             'NETWORK' => '_NETWORK_',
  117.             'ACCOUNT' => '_ACCOUNT_',
  118.             'CATEGORY' => '_CATEGORY_',
  119.             default => $utmTerm,
  120.         };
  121.         return $this;
  122.     }
  123.     public function getUtmContent(): ?string
  124.     {
  125.         return match ($this->utmContent)
  126.         {
  127.             '_NETWORK_' => 'NETWORK',
  128.             '_ACCOUNT_' => 'ACCOUNT',
  129.             '_CATEGORY_' => 'CATEGORY',
  130.             default => $this->utmContent,
  131.         };
  132.     }
  133.     public function setUtmContent(?string $utmContent): self
  134.     {
  135.         $this->utmContent = match ($utmContent)
  136.         {
  137.             'NETWORK' => '_NETWORK_',
  138.             'ACCOUNT' => '_ACCOUNT_',
  139.             'CATEGORY' => '_CATEGORY_',
  140.             default => $utmContent,
  141.         };
  142.         return $this;
  143.     }
  144. }