app/Entity/Schema/ORM/Bitly.php line 15

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. /**
  7.  * Bitly.
  8.  */
  9. #[ORM\Entity]
  10. #[ORM\Table(name'bitly')]
  11. #[ORM\UniqueConstraint(name'bit_login'columns: ['bit_login'])]
  12. class Bitly implements SocialProfileInterfaceBelongsToOrganizationInterface
  13. {
  14.     public const DEFAULT_BITLY_DOMAINS = ['bit.ly'];
  15.     /**
  16.      * @var int
  17.      */
  18.     #[ORM\Column(name'bit_id'type'integer'nullablefalseoptions: ['unsigned' => true])]
  19.     #[ORM\Id]
  20.     #[ORM\GeneratedValue(strategy'IDENTITY')]
  21.     private $id;
  22.     #[ORM\ManyToOne(targetEntityMember::class, inversedBy'bitlyAccounts')]
  23.     #[ORM\JoinColumn(name'bit_m_id'referencedColumnName'm_id'nullabletrue)]
  24.     private ?Member $member null;
  25.     #[ORM\ManyToOne(targetEntityWorkspace::class, inversedBy'bitlyAccounts')]
  26.     #[ORM\JoinColumn(name'bit_ws_id'referencedColumnName'ws_id'nullabletrue)]
  27.     private ?Workspace $workspace null;
  28.     #[ORM\ManyToOne(targetEntityOrganization::class, inversedBy'bitlyAccounts')]
  29.     #[ORM\JoinColumn(name'bit_o_id'referencedColumnName'o_id'nullabletrue)]
  30.     private ?Organization $organization null;
  31.     /**
  32.      * @var string|null
  33.      */
  34.     #[ORM\Column(name'bit_login'type'string'length30nullabletrue)]
  35.     private $login;
  36.     /**
  37.      * @var string|null
  38.      */
  39.     #[ORM\Column(name'bit_full_name'type'string'length255nullabletrue)]
  40.     private $fullName;
  41.     /**
  42.      * @var string|null
  43.      */
  44.     #[ORM\Column(name'bit_display_name'type'string'length255nullabletrue)]
  45.     private $displayName;
  46.     /**
  47.      * @var string|null
  48.      */
  49.     #[ORM\Column(name'bit_access_token'type'text'length65535nullabletrue)]
  50.     private $accessToken;
  51.     /**
  52.      * @var string|null
  53.      */
  54.     #[ORM\Column(name'bit_domain_options'type'string'length255nullabletrue)]
  55.     private $domainOptions;
  56.     /**
  57.      * @var string|null
  58.      */
  59.     #[ORM\Column(name'bit_custom_short_domain'type'string'length255nullabletrue)]
  60.     private $customShortDomain;
  61.     /**
  62.      * @var bool|null
  63.      */
  64.     #[ORM\Column(name'bit_error'type'boolean'nullabletrue)]
  65.     private $error false;
  66.     /**
  67.      * @var \DateTime|null
  68.      */
  69.     #[ORM\Column(name'bit_connected'type'datetime'nullabletrueoptions: ['default' => '1970-01-01 00:00:00'])]
  70.     private $connected;
  71.     /**
  72.      * @var Collection
  73.      */
  74.     #[ORM\OneToMany(targetEntityCustomBitly::class, mappedBy'bitly'cascade: ['remove'], orphanRemovaltrue)]
  75.     private $customBitlyAccounts;
  76.     public function __construct(?Member $member, ?Organization $organization null)
  77.     {
  78.         $this->member $member;
  79.         $this->organization $organization;
  80.         $this->connected = new \DateTimeImmutable;
  81.         $this->customBitlyAccounts = new ArrayCollection;
  82.     }
  83.     public function getId(): ?int
  84.     {
  85.         return $this->id;
  86.     }
  87.     public function getMember(): ?Member
  88.     {
  89.         return $this->member;
  90.     }
  91.     public function getOrganization(): Organization
  92.     {
  93.         return $this->organization;
  94.     }
  95.     public function setOrganization(Organization $organization): self
  96.     {
  97.         $this->organization $organization;
  98.         return $this;
  99.     }
  100.     public function isLegacyWithoutOrganization(): bool
  101.     {
  102.         return $this->organization === null;
  103.     }
  104.     public function getLogin(): ?string
  105.     {
  106.         return $this->login;
  107.     }
  108.     public function setLogin(?string $login): self
  109.     {
  110.         $this->login $login;
  111.         return $this;
  112.     }
  113.     public function getFullName(): ?string
  114.     {
  115.         return $this->fullName;
  116.     }
  117.     public function setFullName(?string $fullName): self
  118.     {
  119.         $this->fullName $fullName;
  120.         return $this;
  121.     }
  122.     public function getDisplayName(): string
  123.     {
  124.         return $this->displayName ?? '';
  125.     }
  126.     public function setDisplayName(?string $displayName): self
  127.     {
  128.         $this->displayName $displayName;
  129.         return $this;
  130.     }
  131.     public function getAccessToken(): ?string
  132.     {
  133.         return $this->accessToken;
  134.     }
  135.     public function setAccessToken(?string $accessToken): self
  136.     {
  137.         $this->accessToken $accessToken;
  138.         return $this;
  139.     }
  140.     public function getDomainOptions(): ?string
  141.     {
  142.         return $this->domainOptions;
  143.     }
  144.     public function setDomainOptions(?string $domainOptions): self
  145.     {
  146.         $this->domainOptions $domainOptions;
  147.         return $this;
  148.     }
  149.     public function getDomainsArray(): array
  150.     {
  151.         $domains json_decode($this->getDomainOptions() ?? 'null'true);
  152.         return is_array($domains)
  153.             ? array_filter($domains, fn ($domain): bool => is_string($domain) && !empty($domain))
  154.             : static::DEFAULT_BITLY_DOMAINS;
  155.     }
  156.     public function setDomainsArray(array $domains): self
  157.     {
  158.         $domains array_filter($domains, fn ($domain): bool => is_string($domain) && !empty($domain));
  159.         $this->setDomainOptions(json_encode($domains));
  160.         return $this;
  161.     }
  162.     public function getCustomShortDomain(): ?string
  163.     {
  164.         return $this->customShortDomain;
  165.     }
  166.     public function setCustomShortDomain(?string $customShortDomain): self
  167.     {
  168.         $this->customShortDomain $customShortDomain;
  169.         return $this;
  170.     }
  171.     public function hasError(): bool
  172.     {
  173.         return (bool) $this->error;
  174.     }
  175.     public function setError(bool $error): self
  176.     {
  177.         $this->error $error;
  178.         return $this;
  179.     }
  180.     public function getConnected(): ?\DateTimeInterface
  181.     {
  182.         return $this->connected;
  183.     }
  184.     public function setConnected(?\DateTimeInterface $connected): self
  185.     {
  186.         $this->connected $connected;
  187.         return $this;
  188.     }
  189.     public function getCustomBitlyAccounts(): Collection
  190.     {
  191.         return $this->customBitlyAccounts;
  192.     }
  193.     public function isDeleted(): bool
  194.     {
  195.         // Bitly accounts don't get marked as deleted, they just get deleted.
  196.         return false;
  197.     }
  198.     public function setDeleted(bool $deleted): SocialProfileInterface
  199.     {
  200.         // Bitly accounts don't get marked as deleted, they just get deleted.
  201.         return $this;
  202.     }
  203.     public function getPhotoUrl(): string
  204.     {
  205.         // Bitly doesn't have profile photos.
  206.         return '';
  207.     }
  208.     public function setPhotoUrl(string $photoUrl): SocialProfileInterface
  209.     {
  210.         // Bitly doesn't have profile photos.
  211.         return $this;
  212.     }
  213.     public function isMediaLinkPreviewFallbackSupported(): bool
  214.     {
  215.         return false;
  216.     }
  217. }