<?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\GoogleAccountRepository")
* @ORM\Table(name="`google_account`")
*/
class GoogleAccount
{
use TimestampableEntity;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="googleAccounts")
* @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 $externalEmail;
/**
* @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="string", nullable=true)
*/
private ?string $refreshToken;
/**
* @ORM\Column(type="boolean")
*/
private ?bool $isValid = false;
/**
* @ORM\Column(type="boolean")
*/
private ?bool $hasAnalyticsReadOnly = false;
/**
* @ORM\OneToMany(targetEntity="App\Entity\DynamicReportGoogleAnalytics", mappedBy="googleAccount")
*/
private Collection $reports;
public function __construct()
{
$this->reports = 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 getRefreshToken(): ?string
{
return $this->refreshToken;
}
public function setRefreshToken(?string $refreshToken): void
{
$this->refreshToken = $refreshToken;
}
public function getIsValid(): ?bool
{
return $this->isValid;
}
public function setIsValid(?bool $isValid): void
{
$this->isValid = $isValid;
}
/**
* @return ArrayCollection|Collection
*/
public function getReports()
{
return $this->reports;
}
/**
* @param ArrayCollection|Collection $reports
*/
public function setReports($reports): void
{
$this->reports = $reports;
}
public function getHasAnalyticsReadOnly(): ?bool
{
return $this->hasAnalyticsReadOnly;
}
public function setHasAnalyticsReadOnly(?bool $hasAnalyticsReadOnly): void
{
$this->hasAnalyticsReadOnly = $hasAnalyticsReadOnly;
}
public function getExternalEmail(): ?string
{
return $this->externalEmail;
}
public function setExternalEmail(?string $externalEmail): void
{
$this->externalEmail = $externalEmail;
}
public function __toString(): string
{
return sprintf('%s (%s)', $this->name, $this->externalEmail) ?? 'New Google Account';
}
}