app/Entity/Schema/ORM/WorkspaceSettings.php line 11

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Sq\Entity\Schema\ORM;
  3. use Doctrine\ORM\Mapping AS ORM;
  4. use Sq\Entity\Enum;
  5. use Sq\Entity\Schema\Column;
  6. #[ORM\Entity]
  7. #[ORM\Table(name'workspace_settings')]
  8. class WorkspaceSettings
  9. {
  10.     /**
  11.      *
  12.      * @var int|null
  13.      */
  14.     #[ORM\Id]
  15.     #[ORM\GeneratedValue(strategy'AUTO')]
  16.     #[ORM\Column(name'wss_id'type'integer'nullablefalseoptions: ['unsigned' => true])]
  17.     private $id;
  18.     /**
  19.      *
  20.      * @var Workspace
  21.      */
  22.     #[ORM\OneToOne(targetEntityWorkspace::class, inversedBy'settings'cascade: ['persist'])]
  23.     #[ORM\JoinColumn(name'wss_ws_id'referencedColumnName'ws_id'nullablefalse)]
  24.     private $workspace;
  25.     /**
  26.      * @var bool
  27.      */
  28.     #[ORM\Column(name'wss_evergreen_recycling'type'boolean'nullablefalse)]
  29.     private $evergreenRecycling false;
  30.     /**
  31.      * @var string
  32.      */
  33.     #[ORM\Column(name'wss_minimum_recycle_time'type'string'nullablefalse)]
  34.     private $minimumRecycleTime Enum\WorkspaceSettings\MinimumRecycleTime::WEEKS_1;
  35.     /**
  36.      * @var string
  37.      */
  38.     #[ORM\Column(name'wss_multiple_media_behavior'type'string'nullablefalse)]
  39.     private $multiMediaAttachMode Column\WorkspaceSettingsMultipleMediaBehavior::MULTI;
  40.     /**
  41.      * @var string
  42.      */
  43.     #[ORM\Column(name'wss_queue_position'type'string'nullablefalse)]
  44.     private $queuePosition Column\WorkspaceSettingsQueuePosition::TOP;
  45.     /**
  46.      * @var string
  47.      */
  48.     #[ORM\Column(name'wss_fb_link_preview'type'string'nullablefalse)]
  49.     private $fbLinkPreview Column\WorkspaceSettingsFbLinkPreview::USE;
  50.     /**
  51.      * @var string
  52.      */
  53.     #[ORM\Column(name'wss_yt_privacy'type'string'nullablefalse)]
  54.     private $ytPrivacy Column\PostYouTubePrivacy::ASK;
  55.     /**
  56.      * @var string
  57.      */
  58.     #[ORM\Column(name'wss_import_media_behavior'type'string'nullablefalse)]
  59.     private $importMediaBehavior Column\WorkspaceSettingsImportMediaBehavior::USE;
  60.     /**
  61.      * @var bool
  62.      */
  63.     #[ORM\Column(name'wss_attribution_tw'type'boolean'nullablefalse)]
  64.     private $attributionTwitter false;
  65.     /**
  66.      * @var bool
  67.      */
  68.     #[ORM\Column(name'wss_attribution_ig'type'boolean'nullablefalse)]
  69.     private $attributionInstagram false;
  70.     #[ORM\Embedded(class: WorkspaceLinkSettings::class, columnPrefix'wss_ga_')]
  71.     private WorkspaceLinkSettings $linkTrackingSettings;
  72.     #[ORM\ManyToOne(targetEntityBitly::class)]
  73.     #[ORM\JoinColumn(name'wss_bitly_id'referencedColumnName'bit_id'nullabletrue)]
  74.     private ?Bitly $bitly null;
  75.     #[ORM\Column(name'wss_bitly_domain'type'string'length128nullabletrue)]
  76.     private ?string $bitlyDomain null;
  77.     #[ORM\Column(name'wss_pause_queues'type'boolean'nullablefalse)]
  78.     private ?bool $pauseQueues false;
  79.     #[ORM\Column(name'wss_pause_auto_imports'type'boolean'nullablefalse)]
  80.     private ?bool $pauseAutoImports false;
  81.     public function __construct(Workspace $workspace)
  82.     {
  83.         $this->workspace $workspace;
  84.         $this->linkTrackingSettings = new WorkspaceLinkSettings;
  85.     }
  86.     public function getId(): ?int
  87.     {
  88.         return $this->id;
  89.     }
  90.     public function getWorkspace(): Workspace
  91.     {
  92.         return $this->workspace;
  93.     }
  94.     public function getLinkTrackingSettings(): WorkspaceLinkSettings
  95.     {
  96.         return $this->linkTrackingSettings;
  97.     }
  98.     public function isEvergreenRecycling(): bool
  99.     {
  100.         return $this->evergreenRecycling;
  101.     }
  102.     public function setEvergreenRecycling(bool $evergreenRecycling): self
  103.     {
  104.         $this->evergreenRecycling $evergreenRecycling;
  105.         return $this;
  106.     }
  107.     public function getMinimumRecycleTime(): Enum\WorkspaceSettings\MinimumRecycleTime
  108.     {
  109.         return new Enum\WorkspaceSettings\MinimumRecycleTime($this->minimumRecycleTime);
  110.     }
  111.     public function setMinimumRecycleTime(Enum\WorkspaceSettings\MinimumRecycleTime $enum): self
  112.     {
  113.         $this->minimumRecycleTime $enum->getValue();
  114.         return $this;
  115.     }
  116.     public function getMultiMediaAttachMode(): Enum\Post\PostMultiMediaAttachMode
  117.     {
  118.         return match ($this->multiMediaAttachMode)
  119.         {
  120.             Column\WorkspaceSettingsMultipleMediaBehavior::MULTI => Enum\Post\PostMultiMediaAttachMode::MULTIPLE(),
  121.             Column\WorkspaceSettingsMultipleMediaBehavior::VARY => Enum\Post\PostMultiMediaAttachMode::ALTERNATE(),
  122.         };
  123.     }
  124.     public function setMultiMediaAttachmode(Enum\Post\PostMultiMediaAttachMode $enum): self
  125.     {
  126.         $this->multiMediaAttachMode = match ($enum->getValue())
  127.         {
  128.             Enum\Post\PostMultiMediaAttachMode::MULTIPLE => Column\WorkspaceSettingsMultipleMediaBehavior::MULTI,
  129.             Enum\Post\PostMultiMediaAttachMode::ALTERNATE => Column\WorkspaceSettingsMultipleMediaBehavior::VARY,
  130.         };
  131.         return $this;
  132.     }
  133.     public function getDefaultQueuePosition(): Enum\Post\PostQueuePosition
  134.     {
  135.         return match ($this->queuePosition)
  136.         {
  137.             Column\WorkspaceSettingsQueuePosition::BOTTOM => Enum\Post\PostQueuePosition::BOTTOM(),
  138.             Column\WorkspaceSettingsQueuePosition::TOP => Enum\Post\PostQueuePosition::TOP(),
  139.         };
  140.     }
  141.     public function setDefaultQueuePosition(Enum\Post\PostQueuePosition $enum): self
  142.     {
  143.         $this->queuePosition = match ($enum->getValue())
  144.         {
  145.             Enum\Post\PostQueuePosition::BOTTOM => Column\WorkspaceSettingsQueuePosition::BOTTOM,
  146.             Enum\Post\PostQueuePosition::TOP => Column\WorkspaceSettingsQueuePosition::TOP,
  147.         };
  148.         return $this;
  149.     }
  150.     public function getFbLinkPreview(): Enum\WorkspaceSettings\FbLinkPreview
  151.     {
  152.         return new Enum\WorkspaceSettings\FbLinkPreview($this->fbLinkPreview);
  153.     }
  154.     public function setFbLinkPreview(Enum\WorkspaceSettings\FbLinkPreview $enum): self
  155.     {
  156.         $this->fbLinkPreview $enum->getValue();
  157.         return $this;
  158.     }
  159.     public function getYtPrivacy(): Enum\Post\WorkspacePostYouTubePrivacy
  160.     {
  161.         return match ($this->ytPrivacy)
  162.         {
  163.             Column\PostYouTubePrivacy::ASK => Enum\Post\WorkspacePostYouTubePrivacy::ASK(),
  164.             Column\PostYouTubePrivacy::PUBLIC => Enum\Post\WorkspacePostYouTubePrivacy::PUBLIC(),
  165.             Column\PostYouTubePrivacy::PRIVATE => Enum\Post\WorkspacePostYouTubePrivacy::PRIVATE(),
  166.             Column\PostYouTubePrivacy::UNLISTED => Enum\Post\WorkspacePostYouTubePrivacy::UNLISTED(),
  167.         };
  168.     }
  169.     public function setYtPrivacy(Enum\Post\WorkspacePostYouTubePrivacy $enum): self
  170.     {
  171.         $this->ytPrivacy = match ($enum->getValue())
  172.         {
  173.             Enum\Post\WorkspacePostYouTubePrivacy::ASK => Column\PostYouTubePrivacy::ASK,
  174.             Enum\Post\WorkspacePostYouTubePrivacy::PUBLIC => Column\PostYouTubePrivacy::PUBLIC,
  175.             Enum\Post\WorkspacePostYouTubePrivacy::PRIVATE => Column\PostYouTubePrivacy::PRIVATE,
  176.             Enum\Post\WorkspacePostYouTubePrivacy::UNLISTED => Column\PostYouTubePrivacy::UNLISTED,
  177.         };
  178.         return $this;
  179.     }
  180.     public function getImportMediaBehavior(): Enum\WorkspaceSettings\ImportMediaBehavior
  181.     {
  182.         return new Enum\WorkspaceSettings\ImportMediaBehavior($this->importMediaBehavior);
  183.     }
  184.     public function setImportMediaBehavior(Enum\WorkspaceSettings\ImportMediaBehavior $enum): self
  185.     {
  186.         $this->importMediaBehavior $enum->getValue();
  187.         return $this;
  188.     }
  189.     public function isAttributionTwitter(): bool
  190.     {
  191.         return $this->attributionTwitter;
  192.     }
  193.     public function setAttributionTwitter(bool $attributionTwitter): self
  194.     {
  195.         $this->attributionTwitter $attributionTwitter;
  196.         return $this;
  197.     }
  198.     public function isAttributionInstagram(): bool
  199.     {
  200.         return $this->attributionInstagram;
  201.     }
  202.     public function setAttributionInstagram(bool $attributionInstagram): self
  203.     {
  204.         $this->attributionInstagram $attributionInstagram;
  205.         return $this;
  206.     }
  207.     public function getBitly(): ?Bitly
  208.     {
  209.         return $this->bitly;
  210.     }
  211.     public function setBitly(?Bitly $bitly): self
  212.     {
  213.         $this->bitly $bitly;
  214.         return $this;
  215.     }
  216.     public function getBitlyDomain(): ?string
  217.     {
  218.         return $this->bitlyDomain;
  219.     }
  220.     public function setBitlyDomain(?string $domain): self
  221.     {
  222.         $this->bitlyDomain $domain;
  223.         return $this;
  224.     }
  225.     public function areQueuesPaused(): bool
  226.     {
  227.         return (bool) $this->pauseQueues;
  228.     }
  229.     public function pauseQueues(bool $pauseQueues): WorkspaceSettings
  230.     {
  231.         $this->pauseQueues $pauseQueues;
  232.         return $this;
  233.     }
  234.     public function areAutoImportsPaused(): bool
  235.     {
  236.         return (bool) $this->pauseAutoImports;
  237.     }
  238.     public function pauseAutoImports(bool $pauseAutoImports): WorkspaceSettings
  239.     {
  240.         $this->pauseAutoImports $pauseAutoImports;
  241.         return $this;
  242.     }
  243. }