* initial commit

This commit is contained in:
Dávid Danyi
2018-04-06 23:00:37 +02:00
commit 1143075e17
67 changed files with 9651 additions and 0 deletions

209
src/App/Entity/Slide.php Normal file
View File

@@ -0,0 +1,209 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use JsonSerializable;
/**
* @ORM\Entity
* @ORM\Table(name="slides")
*/
class Slide implements JsonSerializable
{
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ORM\Column(name="id", type="integer")
* @var int
*/
private $id;
/**
* @ORM\Column(name="title", type="string", length=200, unique=true)
* @var string
*/
private $title;
/**
* @ORM\ManyToOne(targetEntity="Team", inversedBy="slides")
* @ORM\JoinColumn(name="team_id", referencedColumnName="id")
* @var Team
*/
private $team;
/**
* @ORM\Column(name="slide_data", type="text")
* @var string
*/
private $slideData;
/**
* @ORM\Column(name="is_visible", type="boolean")
* @var bool
*/
private $isVisible;
/**
* @ORM\Column(name="created_at", type="datetime_immutable", nullable=true)
* @Gedmo\Timestampable(on="create")
* @var \DateTimeImmutable
*/
private $createdAt;
/**
* @ORM\Column(name="updated_at", type="datetime_immutable", nullable=true)
* @Gedmo\Timestampable(on="update")
* @var \DateTimeImmutable
*/
private $updatedAt;
/**
* @return int
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @param int $id
* @return Slide
*/
public function setId(int $id): Slide
{
$this->id = $id;
return $this;
}
/**
* @return string
*/
public function getTitle(): ?string
{
return $this->title;
}
/**
* @param string $title
* @return Slide
*/
public function setTitle(string $title)
{
$this->title = $title;
return $this;
}
/**
* @return Team
*/
public function getTeam(): ?Team
{
return $this->team;
}
/**
* @param Team $team
* @return Slide
*/
public function setTeam(Team $team): Slide
{
$this->team = $team;
return $this;
}
/**
* @return string
*/
public function getSlideData(): ?string
{
return $this->slideData;
}
/**
* @param string $slideData
* @return Slide
*/
public function setSlideData(string $slideData): Slide
{
$this->slideData = $slideData;
return $this;
}
/**
* @return bool
*/
public function isVisible(): ?bool
{
return $this->isVisible;
}
/**
* @param bool $isVisible
* @return Slide
*/
public function setIsVisible(bool $isVisible): Slide
{
$this->isVisible = $isVisible;
return $this;
}
/**
* @return \DateTimeImmutable
*/
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
/**
* @param \DateTimeImmutable $createdAt
* @return Slide
*/
public function setCreatedAt(\DateTimeImmutable $createdAt): Slide
{
$this->createdAt = $createdAt;
return $this;
}
/**
* @return \DateTimeImmutable
*/
public function getUpdatedAt(): ?\DateTimeImmutable
{
return $this->updatedAt;
}
/**
* @param \DateTimeImmutable $updatedAt
* @return Slide
*/
public function setUpdatedAt(\DateTimeImmutable $updatedAt): Slide
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* @return array
*/
public function jsonSerialize()
{
return [
'id' => $this->getId(),
'title' => $this->getTitle(),
'team' => $this->getTeam(),
'slideData' => $this->getSlideData(),
'isVisible' => $this->isVisible(),
'createdAt' => $this->getCreatedAt()
? $this->getCreatedAt()->format("Y-m-d H:i:s")
: null,
'updatedAt' => $this->getUpdatedAt()
? $this->getUpdatedAt()->format("Y-m-d H:i:s")
: null,
];
}
}

234
src/App/Entity/Team.php Normal file
View File

@@ -0,0 +1,234 @@
<?php
declare(strict_types=1);
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use JsonSerializable;
/**
* @ORM\Entity
* @ORM\Table(name="teams")
*/
class Team implements JsonSerializable
{
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* @ORM\Column(name="id", type="integer")
* @var int
*/
private $id;
/**
* @ORM\Column(name="name", type="string", length=200, unique=true)
* @var string
*/
private $name;
/**
* @ORM\Column(name="members", type="json")
* @var array
*/
private $members;
/**
* @ORM\OneToMany(
* targetEntity="Slide",
* mappedBy="team",
* cascade={"persist", "remove"},
* orphanRemoval=true
* )
* @var Slide[]|Collection
*/
private $slides;
/**
* @ORM\Column(name="is_active", type="boolean")
* @var bool
*/
private $isActive;
/**
* @ORM\Column(name="created_at", type="datetime_immutable", nullable=true)
* @Gedmo\Timestampable(on="create")
* @var \DateTimeImmutable
*/
private $createdAt;
/**
* @ORM\Column(name="updated_at", type="datetime_immutable", nullable=true)
* @Gedmo\Timestampable(on="update")
* @var \DateTimeImmutable
*/
private $updatedAt;
public function __construct()
{
$this->slides = new ArrayCollection;
$this->members = new \ArrayObject;
}
/**
* @return int
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @param int $id
* @return Team
*/
public function setId(int $id): Team
{
$this->id = $id;
return $this;
}
/**
* @return string
*/
public function getName(): ?string
{
return $this->name;
}
/**
* @param string $name
* @return Team
*/
public function setName(string $name): Team
{
$this->name = $name;
return $this;
}
/**
* @return array
*/
public function getMembers()
{
return $this->members;
}
/**
* @param array $members
* @return Team
*/
public function setMembers(array $members): Team
{
$this->members = $members;
return $this;
}
/**
* @param Slide $slide
* @return Team
*/
public function addSlides(Slide $slide): Team
{
if (!$this->slides->contains($slide)) {
$this->slides->removeElement($slide);
}
return $this;
}
/**
* @return Slide[]|Collection
*/
public function getSlides(): ?Collection
{
return $this->slides;
}
/**
* @param Slide $slide
* @return Team
*/
public function removeSlide(Slide $slide): Team
{
if ($this->slides->contains($slide)) {
$this->slides->removeElement($slide);
}
return $this;
}
/**
* @return bool
*/
public function isActive(): ?bool
{
return $this->isActive;
}
/**
* @param bool $isActive
* @return Team
*/
public function setIsActive(bool $isActive): Team
{
$this->isActive = $isActive;
return $this;
}
/**
* @return \DateTimeImmutable
*/
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
/**
* @param \DateTimeImmutable $createdAt
* @return Team
*/
public function setCreatedAt(\DateTimeImmutable $createdAt): Team
{
$this->createdAt = $createdAt;
return $this;
}
/**
* @return \DateTimeImmutable
*/
public function getUpdatedAt(): ?\DateTimeImmutable
{
return $this->updatedAt;
}
/**
* @param \DateTimeImmutable $updatedAt
* @return Team
*/
public function setUpdatedAt(\DateTimeImmutable $updatedAt): Team
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* @return array
*/
public function jsonSerialize()
{
return [
'id' => $this->getId(),
'name' => $this->getName(),
'members' => $this->getMembers(),
'isActive' => $this->isActive(),
'createdAt' => $this->getCreatedAt()
? $this->getCreatedAt()->format("Y-m-d H:i:s")
: null,
'updatedAt' => $this->getUpdatedAt()
? $this->getUpdatedAt()->format("Y-m-d H:i:s")
: null,
];
}
}