<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
/**
* @ORM\Entity(repositoryClass="App\Repository\FacebookAccountRepository")
* @ORM\Table(name="`facebook_account`")
*/
class FacebookAccount
{
use TimestampableEntity;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="facebookAccounts")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id")
*/
private ?User $user;
/**
* @ORM\Column(type="string", nullable=true)
*/
private ?string $externalId;
/**
* @ORM\Column(type="string", nullable=true)
*/
private ?string $name;
/**
* @ORM\Column(type="string", nullable=true)
*/
private ?string $picture;
/**
* @ORM\Column(type="string", nullable=true)
*/
private ?string $accessToken;
/**
* @ORM\Column(type="boolean")
*/
private ?bool $isValid = false;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
protected ?\DateTime $lastSync = null;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
protected ?\DateTime $lastCampaignSync = null;
/**
* @ORM\OneToMany(targetEntity="App\Entity\AdsFacebookAdAccount", mappedBy="account", cascade={"persist", "remove"}))
*/
private Collection $adAccounts;
public function __construct()
{
$this->adAccounts = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function setId(?int $id): void
{
$this->id = $id;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): void
{
$this->user = $user;
}
public function getExternalId(): ?string
{
return $this->externalId;
}
public function setExternalId(?string $externalId): void
{
$this->externalId = $externalId;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(?string $name): void
{
$this->name = $name;
}
public function getPicture(): ?string
{
return $this->picture;
}
public function setPicture(?string $picture): void
{
$this->picture = $picture;
}
public function getAccessToken(): ?string
{
return $this->accessToken;
}
public function setAccessToken(?string $accessToken): void
{
$this->accessToken = $accessToken;
}
public function getIsValid(): ?bool
{
return $this->isValid;
}
public function setIsValid(?bool $isValid): void
{
$this->isValid = $isValid;
}
public function getAdAccounts(): Collection
{
return $this->adAccounts;
}
public function setAdAccounts(Collection $adAccounts): void
{
$this->adAccounts = $adAccounts;
}
public function getLastSync(): ?\DateTime
{
return $this->lastSync;
}
public function setLastSync(?\DateTime $lastSync): void
{
$this->lastSync = $lastSync;
}
public function getLastCampaignSync(): ?\DateTime
{
return $this->lastCampaignSync;
}
public function setLastCampaignSync(?\DateTime $lastCampaignSync): void
{
$this->lastCampaignSync = $lastCampaignSync;
}
public function __toString(): string
{
return $this->id ?? 'New Facebook Account';
}
}