<?php
namespace App\Entity;
use App\Service\Edition\EditionProperties;
use App\Service\MetaTags\MetaTagsProperties;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\EditionRepository")
*/
class Edition
{
use MetaTagsProperties;
use EditionProperties;
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=512)
*/
private $name;
/**
* @ORM\Column(type="string", length=32)
*/
private $direction;
/**
* @ORM\Column(type="datetime")
*/
private $date_end;
/**
* @ORM\Column(type="datetime")
*/
private $date_publ;
/**
* @ORM\Column(type="string", length=255)
*/
private $cover;
/**
* @ORM\Column(type="string", length=32)
*/
private $number;
/**
* @ORM\Column(type="string", length=2048, nullable=true)
*/
private $link_elibrary;
/**
* @ORM\Column(type="integer")
*/
private $created;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $body;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $nid;
/**
* @ORM\OneToMany(targetEntity="App\Entity\EditionPages", mappedBy="entity", orphanRemoval=true, cascade={"persist", "remove"}, fetch="EAGER")
*/
private $editionPages;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Articles", mappedBy="edition")
*/
private $articles;
/**
* @ORM\Column(type="string", length=2048, nullable=true)
*/
private $exit_data;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $link_rinc;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $updated;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $file;
//Даты выпуска
private $date;
/**
* @ORM\OneToOne(targetEntity=Path::class, cascade={"persist", "remove"}, fetch="EAGER")
* @ORM\JoinColumn(nullable=true)
*/
private $path;
/**
* @ORM\Column(type="boolean")
*/
private $EmailSubscribe;
/**
* @ORM\ManyToOne(targetEntity=User::class)
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\Column(type="boolean")
*/
private $status;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $send_email_pdf;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $date_send_elibrary;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $date_send_date;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $date_send_postal;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $price;
public function getDate(): ?array
{
return $this->date;
}
public function setDate(array $date): self
{
$this->date = $date;
return $this;
}
public function __construct()
{
$this->editionPages = new ArrayCollection();
$this->articles = new ArrayCollection();
}
public function __toString()
{
return $this->name.' ('.$this->date_end->format('d.m.Y').')';
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getDirection(): ?string
{
return $this->direction;
}
public function setDirection(string $direction): self
{
$this->direction = $direction;
return $this;
}
public function getDateEnd(): ?\DateTimeInterface
{
return $this->date_end;
}
public function setDateEnd(\DateTimeInterface $date_end): self
{
$this->date_end = $date_end;
return $this;
}
public function getDatePubl(): ?\DateTimeInterface
{
return $this->date_publ;
}
public function setDatePubl(\DateTimeInterface $date_publ): self
{
$this->date_publ = $date_publ;
return $this;
}
public function getCover(): ?string
{
return $this->cover;
}
public function setCover(string $cover): self
{
$this->cover = $cover;
return $this;
}
public function getNumber(): ?string
{
return $this->number;
}
public function setNumber(string $number): self
{
$this->number = $number;
return $this;
}
public function getLinkElibrary(): ?string
{
return $this->link_elibrary;
}
public function setLinkElibrary(?string $link_elibrary): self
{
$this->link_elibrary = $link_elibrary;
return $this;
}
public function getCreated(): ?int
{
return $this->created;
}
public function setCreated(int $created): self
{
$this->created = $created;
return $this;
}
public function getBody(): ?string
{
return $this->body;
}
public function setBody(?string $body): self
{
$this->body = $body;
return $this;
}
public function getNid(): ?int
{
return $this->nid;
}
public function setNid(?int $nid): self
{
$this->nid = $nid;
return $this;
}
/**
* @return Collection|EditionPages[]
*/
public function getEditionPages(): Collection
{
return $this->editionPages;
}
public function addEditionPage(EditionPages $editionPage): self
{
if (!$this->editionPages->contains($editionPage)) {
$this->editionPages[] = $editionPage;
$editionPage->setEntity($this);
}
return $this;
}
public function removeEditionPage(EditionPages $editionPage): self
{
if ($this->editionPages->contains($editionPage)) {
$this->editionPages->removeElement($editionPage);
// set the owning side to null (unless already changed)
if ($editionPage->getEntity() === $this) {
$editionPage->setEntity(null);
}
}
return $this;
}
/**
* @return Collection|Articles[]
*/
public function getArticles(): Collection
{
return $this->articles;
}
public function addArticle(Articles $article): self
{
if (!$this->articles->contains($article)) {
$this->articles[] = $article;
$article->setEdition($this);
}
return $this;
}
public function removeArticle(Articles $article): self
{
if ($this->articles->contains($article)) {
$this->articles->removeElement($article);
// set the owning side to null (unless already changed)
if ($article->getEdition() === $this) {
$article->setEdition(null);
}
}
return $this;
}
public function getExitData(): ?string
{
return $this->exit_data;
}
public function setExitData(?string $exit_data): self
{
$this->exit_data = $exit_data;
return $this;
}
public function getLinkRinc(): ?string
{
return $this->link_rinc;
}
public function setLinkRinc(?string $link_rinc): self
{
$this->link_rinc = $link_rinc;
return $this;
}
public function getUpdated(): ?int
{
return $this->updated;
}
public function setUpdated(?int $updated): self
{
$this->updated = $updated;
return $this;
}
public function getFile(): ?string
{
return $this->file;
}
public function setFile(?string $file): self
{
$this->file = $file;
return $this;
}
public function getPath(): ?Path
{
return $this->path;
}
public function setPath(?Path $path): self
{
$this->path = $path;
return $this;
}
public function getEmailSubscribe(): ?bool
{
return $this->EmailSubscribe;
}
public function setEmailSubscribe(bool $EmailSubscribe): self
{
$this->EmailSubscribe = $EmailSubscribe;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
public function getStatus(): ?bool
{
return $this->status;
}
public function setStatus(bool $status): self
{
$this->status = $status;
return $this;
}
public function isSendEmailPdf(): ?bool
{
return $this->send_email_pdf;
}
public function setSendEmailPdf(?bool $send_email_pdf): self
{
$this->send_email_pdf = $send_email_pdf;
return $this;
}
public function getDateSendElibrary(): ?\DateTimeInterface
{
return $this->date_send_elibrary;
}
public function setDateSendElibrary(?\DateTimeInterface $date_send_elibrary): self
{
$this->date_send_elibrary = $date_send_elibrary;
return $this;
}
public function getDateSendDate(): ?\DateTimeInterface
{
return $this->date_send_date;
}
public function setDateSendDate(?\DateTimeInterface $date_send_date): self
{
$this->date_send_date = $date_send_date;
return $this;
}
public function getDateSendPostal(): ?\DateTimeInterface
{
return $this->date_send_postal;
}
public function setDateSendPostal(?\DateTimeInterface $date_send_postal): self
{
$this->date_send_postal = $date_send_postal;
return $this;
}
public function getPrice(): ?array
{
return $this->price?unserialize($this->price):null;
}
public function setPrice(?string $price): self
{
$this->price = $price;
return $this;
}
}