app/Entity/Schema/ORM/ImportSource.php line 18

Open in your IDE?
  1. <?php
  2. namespace Sq\Entity\Schema\ORM;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Sq\Entity\Enum;
  7. use Sq\Entity\Schema\Column\ImportSourceContext;
  8. use Sq\Entity\Schema\DocumentObject;
  9. /**
  10.  * ImportSource.
  11.  */
  12. #[ORM\Entity]
  13. #[ORM\Table(name'import_source')]
  14. #[ORM\Index(name'is_folder_order'columns: ['is_if_id''is_order'])]
  15. class ImportSource implements BelongsToWorkspaceInterface
  16. {
  17.     /**
  18.      * @var int
  19.      */
  20.     #[ORM\Column(name'is_id'type'integer'nullablefalseoptions: ['unsigned' => true])]
  21.     #[ORM\Id]
  22.     #[ORM\GeneratedValue(strategy'IDENTITY')]
  23.     private $id;
  24.     /**
  25.      * @var Member|null
  26.      */
  27.     #[ORM\ManyToOne(targetEntityMember::class)]
  28.     #[ORM\JoinColumn(name'is_m_id'referencedColumnName'm_id'nullabletrue)]
  29.     private $member;
  30.     /**
  31.      * @var Workspace|null
  32.      */
  33.     #[ORM\ManyToOne(targetEntityWorkspace::class, inversedBy'importSources')]
  34.     #[ORM\JoinColumn(name'is_ws_id'referencedColumnName'ws_id'nullabletrue)]
  35.     private $workspace;
  36.     /**
  37.      * @var string
  38.      */
  39.     #[ORM\Column(name'is_context'type'string'length0nullablefalseoptions: ['default' => 'import'])]
  40.     private $context ImportSourceContext::IMPORT;
  41.     /**
  42.      * @deprecated
  43.      *
  44.      * @var string|null
  45.      */
  46.     #[ORM\Column(name'is_type'type'string'length0nullabletrue)]
  47.     private $typeLegacy;
  48.     /**
  49.      * @var string|null
  50.      */
  51.     #[ORM\Column(name'is_type_gql'type'string'length0nullabletrue)]
  52.     private $type;
  53.     /**
  54.      * @var ImportFolder|null
  55.      */
  56.     #[ORM\ManyToOne(targetEntityImportFolder::class, inversedBy'importSources')]
  57.     #[ORM\JoinColumn(name'is_if_id'referencedColumnName'if_id'nullabletrue)]
  58.     private $importFolder;
  59.     /**
  60.      * @var int
  61.      */
  62.     #[ORM\Column(name'is_order'type'smallint'nullablefalseoptions: ['unsigned' => true])]
  63.     private $order;
  64.     /**
  65.      * @var string|null
  66.      */
  67.     #[ORM\Column(name'is_name'type'string'length191nullabletrue)]
  68.     private $name;
  69.     /**
  70.      * @var string
  71.      */
  72.     #[ORM\Column(name'is_args'type'text'length0nullablefalse)]
  73.     private $args;
  74.     /**
  75.      * @var AutoImport|null
  76.      */
  77.     #[ORM\OneToOne(targetEntityAutoImport::class, mappedBy'importSource'cascade: ['persist''remove'])]
  78.     private $autoImport;
  79.     /**
  80.      * @var Collection
  81.      */
  82.     #[ORM\OneToMany(targetEntityAutoImportPinterestBoard::class, mappedBy'importSource'fetch'EAGER')]
  83.     private $pinterestBoards;
  84.     public function __construct(string $nameEnum\Import\ImportSourceType $typeint $orderDocumentObject\Import\ImportSourceArgs $args)
  85.     {
  86.         $this->name $name;
  87.         $this->type $type->getValue();
  88.         $this->typeLegacy null;
  89.         $this->context ImportSourceContext::IMPORT;
  90.         $this->order $order;
  91.         $this->pinterestBoards = new ArrayCollection();
  92.         $this->setArgs($args);
  93.     }
  94.     public function getId(): ?int
  95.     {
  96.         return $this->id;
  97.     }
  98.     public function getMember(): ?Member
  99.     {
  100.         return $this->member;
  101.     }
  102.     public function setMember(?Member $member): self
  103.     {
  104.         $this->member $member;
  105.         return $this;
  106.     }
  107.     public function getWorkspace(): Workspace
  108.     {
  109.         return $this->workspace;
  110.     }
  111.     public function setWorkspace(Workspace $workspace): self
  112.     {
  113.         $this->workspace $workspace;
  114.         return $this;
  115.     }
  116.     public function isLegacyWithoutWorkspace(): bool
  117.     {
  118.         return $this->workspace === null;
  119.     }
  120.     public function getContext(): string
  121.     {
  122.         return $this->context;
  123.     }
  124.     public function setContext(string $context): self
  125.     {
  126.         $this->context $context;
  127.         return $this;
  128.     }
  129.     public function getType(): Enum\Import\ImportSourceType
  130.     {
  131.         return new Enum\Import\ImportSourceType($this->type);
  132.     }
  133.     public function getImportFolder(): ?ImportFolder
  134.     {
  135.         return $this->importFolder;
  136.     }
  137.     public function setImportFolder(?ImportFolder $importFolder): self
  138.     {
  139.         $this->importFolder $importFolder;
  140.         return $this;
  141.     }
  142.     public function getOrder(): int
  143.     {
  144.         return $this->order;
  145.     }
  146.     public function setOrder(int $order): self
  147.     {
  148.         $this->order $order;
  149.         return $this;
  150.     }
  151.     public function getName(): ?string
  152.     {
  153.         return $this->name;
  154.     }
  155.     public function setName(?string $name): self
  156.     {
  157.         $this->name $name;
  158.         return $this;
  159.     }
  160.     public function getArgs(): DocumentObject\Import\ImportSourceArgs
  161.     {
  162.         return DocumentObject\Import\ImportSourceArgs::createFromTypeAndArgsArray(
  163.             new Enum\Import\ImportSourceType($this->type),
  164.             json_decode($this->argstrue)
  165.         );
  166.     }
  167.     protected function setArgs(DocumentObject\Import\ImportSourceArgs $args): self
  168.     {
  169.         $this->args json_encode($args->serialize());
  170.         return $this;
  171.     }
  172.     public function setArgsTerm(?string $term): self
  173.     {
  174.         $args $this->getArgs();
  175.         $args->term $term;
  176.         $this->setArgs($args);
  177.         return $this;
  178.     }
  179.     public function getAutoImport(): ?AutoImport
  180.     {
  181.         return $this->autoImport;
  182.     }
  183.     public function setAutoImport(AutoImport $autoImport): self
  184.     {
  185.         $this->autoImport $autoImport;
  186.         return $this;
  187.     }
  188.     public function getPinterestBoards(): Collection
  189.     {
  190.         return $this->pinterestBoards;
  191.     }
  192.     public function addPinterestBoard(AutoImportPinterestBoard $board): self
  193.     {
  194.         if (!$this->pinterestBoards->contains($board))
  195.         {
  196.             $this->pinterestBoards->add($board);
  197.         }
  198.         return $this;
  199.     }
  200.     public function removePinterestBoard(AutoImportPinterestBoard $board): self
  201.     {
  202.         if ($this->pinterestBoards->contains($board))
  203.         {
  204.             $this->pinterestBoards->removeElement($board);
  205.         }
  206.         return $this;
  207.     }
  208. }