<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* DnsitShortHour
*
* @ORM\Table(name="dnsit_hour2")
* @ORM\Entity(repositoryClass="App\Repository\DnsitShortHourRepository")
*/
class DnsitShortHour
{
/**
* @var \DateTime|null
*
* @ORM\Column(name="date_from", type="date", nullable=true)
*/
private $dateFrom;
/**
* @var \DateTime|null
*
* @ORM\Column(name="date_to", type="date", nullable=true)
*/
private $dateTo;
/**
* @var \DateTime|null
*
* @ORM\Column(name="hour_from", type="time", nullable=true)
*/
private $hourFrom;
/**
* @var \DateTime|null
*
* @ORM\Column(name="hour_to", type="time", nullable=true)
*/
private $hourTo;
/**
* @var int|null
*
* @ORM\Column(name="days", type="integer", nullable=true)
*/
private $days;
/**
* @var bool|null
*
* @ORM\Column(name="has_hours", type="boolean", nullable=true)
*/
private $hasHours;
/**
* @var bool|null
*
* @ORM\Column(name="permanent_access", type="boolean", nullable=true)
*/
private $permanentAccess;
/**
* @var int|null
*
* @ORM\Column(name="access_time", type="integer", nullable=true)
*/
private $accessTime;
/**
* @var int|null
*
* @ORM\Column(name="entity", type="bigint", nullable=true)
*/
private $entity;
/**
* @var int|null
*
* @ORM\Column(name="marking", type="smallint", nullable=true)
*/
private $marking;
/**
* @var string|null
*
* @ORM\Column(name="params", type="text", nullable=true)
*/
private $params;
/**
* @var \DateTime|null
*
* @ORM\Column(name="created_at", type="datetime", nullable=true)
*/
private $createdAt;
/**
* @var int|null
*
* @ORM\Column(name="created_by", type="bigint", nullable=true)
*/
private $createdBy;
/**
* @var \DateTime|null
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @var int|null
*
* @ORM\Column(name="updated_by", type="bigint", nullable=true)
*/
private $updatedBy;
/**
* @var int
*
* @ORM\Column(name="id", type="bigint")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="comment", type="string", length=2048, nullable=true)
*/
private $comment;
/**
* @var string|null
*
* @ORM\Column(name="comment_translations", type="json", nullable=true)
*/
private $commentTranslations;
/**
* @var \App\Entity\DnsitProduct
*
* @ORM\ManyToOne(targetEntity="App\Entity\DnsitProduct", inversedBy="shortHours")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="product_id", referencedColumnName="id", onDelete="CASCADE")
* })
*/
private $product;
/**
* @var \App\Entity\DnsitTranslateProduct
*
* @ORM\ManyToOne(targetEntity="App\Entity\DnsitTranslateProduct")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="translate_product_id", referencedColumnName="id", onDelete="CASCADE")
* })
*/
private $translateProduct;
protected $dayNames = array(
"Lundi",
"Mardi",
"Mercredi",
"Jeudi",
"Vendredi",
"Samedi",
"Dimanche"
);
public function getDateFrom(): ?\DateTimeInterface
{
return $this->dateFrom;
}
public function setDateFrom(?\DateTimeInterface $dateFrom): self
{
$this->dateFrom = $dateFrom;
return $this;
}
public function getDateTo(): ?\DateTimeInterface
{
return $this->dateTo;
}
public function setDateTo(?\DateTimeInterface $dateTo): self
{
$this->dateTo = $dateTo;
return $this;
}
public function getHourFrom(): ?\DateTimeInterface
{
return $this->hourFrom;
}
public function setHourFrom($hourFrom): self
{
if(! $hourFrom instanceof \Datetime){
$hourFrom = \DateTime::createFromFormat("H:i", $hourFrom);
}
$this->hourFrom = $hourFrom;
return $this;
}
public function getHourTo(): ?\DateTimeInterface
{
return $this->hourTo;
}
public function setHourTo($hourTo): self
{
if(! $hourTo instanceof \Datetime){
$hourTo = \DateTime::createFromFormat("H:i", $hourTo);
}
$this->hourTo = $hourTo;
return $this;
}
public function getDays(): ?int
{
return $this->days;
}
public function setDays(?int $days): self
{
$this->days = $days;
return $this;
}
public function getHasHours(): ?bool
{
return $this->hasHours;
}
public function setHasHours(?bool $hasHours): self
{
$this->hasHours = $hasHours;
return $this;
}
public function getPermanentAccess(): ?bool
{
return $this->permanentAccess;
}
public function setPermanentAccess(?bool $permanentAccess): self
{
$this->permanentAccess = $permanentAccess;
return $this;
}
public function getAccessTime(): ?int
{
return $this->accessTime;
}
public function setAccessTime(?int $accessTime): self
{
$this->accessTime = $accessTime;
return $this;
}
public function getEntity(): ?int
{
return $this->entity;
}
public function setEntity(?int $entity): self
{
$this->entity = $entity;
return $this;
}
public function getMarking(): ?int
{
return $this->marking;
}
public function setMarking(?int $marking): self
{
$this->marking = $marking;
return $this;
}
public function getParams(): ?string
{
return $this->params;
}
public function setParams(?string $params): self
{
$this->params = $params;
return $this;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getCreatedBy(): ?int
{
return $this->createdBy;
}
public function setCreatedBy(?int $createdBy): self
{
$this->createdBy = $createdBy;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt): self
{
$this->updatedAt = $updatedAt;
return $this;
}
public function getUpdatedBy(): ?int
{
return $this->updatedBy;
}
public function setUpdatedBy(?int $updatedBy): self
{
$this->updatedBy = $updatedBy;
return $this;
}
public function getId(): ?int
{
return $this->id;
}
public function getProduct(): ?DnsitProduct
{
return $this->product;
}
public function setProduct(?DnsitProduct $product): self
{
$this->product = $product;
return $this;
}
public function getTranslateProduct(): ?DnsitTranslateProduct
{
return $this->translateProduct;
}
public function setTranslateProduct(?DnsitTranslateProduct $translateProduct): self
{
$this->translateProduct = $translateProduct;
return $this;
}
public function getFormatedDays(){
$formatedDays = array();
$binary = decbin($this->getDays());
while(strlen($binary) < 7){
$binary = "0".$binary;
}
$binary = strrev($binary);
for($j = 0;$j<7;$j++){
if($binary[$j]){
$formatedDays[] = $this->dayNames[$j];
}
}
return implode(", ",$formatedDays);
}
public function getComment(): ?string
{
return $this->comment;
}
public function setComment(?string $comment): self
{
$this->comment = $comment;
return $this;
}
public function getCommentTranslations(): ?array
{
return $this->commentTranslations;
}
public function setCommentTranslations(?array $commentTranslations): self
{
$this->commentTranslations = $commentTranslations;
return $this;
}
}