1 <?php
declare(strict_types
=1);
4 * This file is part of the Rapsys AirBundle package.
6 * (c) Raphaël Gertz <symfony@rapsys.eu>
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Rapsys\AirBundle\Entity
;
14 use Doctrine\Common\Collections\Collection
;
15 use Doctrine\Common\Collections\ArrayCollection
;
16 use Doctrine\ORM\Event\PreUpdateEventArgs
;
21 class GoogleCalendar
{
40 private ?\DateTime
$synchronized;
45 private \DateTime
$created;
50 private \DateTime
$updated;
53 * @var \Rapsys\AirBundle\Entity\GoogleToken
55 private GoogleToken
$googleToken;
60 * @param \Rapsys\AirBundle\Entity\GoogleToken $googleToken The google token
61 * @param string $mail The google calendar id
62 * @param string $summary The google calendar summary
63 * @param ?\DateTime $synchronized The google calendar last synchronization
65 public function __construct(GoogleToken
$googleToken, string $mail, string $summary, ?\DateTime
$synchronized = null) {
67 $this->googleToken
= $googleToken;
69 $this->summary
= $summary;
70 $this->synchronized
= $synchronized;
71 $this->created
= new \
DateTime('now');
72 $this->updated
= new \
DateTime('now');
80 public function getId(): ?int {
88 * @return GoogleCalendar
90 public function setMail(string $mail): GoogleCalendar
{
101 public function getMail(): string {
108 * @param string $summary
109 * @return GoogleCalendar
111 public function setSummary(string $summary): GoogleCalendar
{
112 $this->summary
= $summary;
122 public function getSummary(): string {
123 return $this->summary
;
129 * @param ?\DateTime $synchronized
131 * @return GoogleCalendar
133 public function setSynchronized(?\DateTime
$synchronized = null): GoogleCalendar
{
134 $this->synchronized
= $synchronized;
144 public function getSynchronized(): ?\DateTime
{
145 return $this->synchronized
;
151 * @param \DateTime $created
153 * @return GoogleCalendar
155 public function setCreated(\DateTime
$created): GoogleCalendar
{
156 $this->created
= $created;
166 public function getCreated(): \DateTime
{
167 return $this->created
;
173 * @param \DateTime $updated
175 * @return GoogleCalendar
177 public function setUpdated(\DateTime
$updated): GoogleCalendar
{
178 $this->updated
= $updated;
188 public function getUpdated(): \DateTime
{
189 return $this->updated
;
195 * @param \Rapsys\AirBundle\Entity\GoogleToken $googleToken
197 * @return GoogleCalendar
199 public function setGoogleToken(GoogleToken
$googleToken): GoogleCalendar
{
200 $this->googleToken
= $googleToken;
208 * @return \Rapsys\AirBundle\Entity\GoogleToken
210 public function getGoogleToken(): GoogleToken
{
211 return $this->googleToken
;
217 public function preUpdate(PreUpdateEventArgs
$eventArgs): ?GoogleCalendar
{
218 //Check that we have an snippet instance
219 if (($entity = $eventArgs->getEntity()) instanceof GoogleCalendar
) {
221 return $entity->setUpdated(new \
DateTime('now'));