<?php
namespace App\Entity;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Boab\CmsBundle\Entity\Content;
use App\Entity\AudioInterface;
use Boab\EcommerceBundle\Entity\ProductLineInterface;
use Boab\EcommerceBundle\Entity\ProductLineTrait;
use Symfony\Component\Serializer\Annotation\Ignore;
use Boab\EcommerceBundle\Repository\ProductLineRepository;
/**
* Audio
* @ORM\Table(name="audio")
* @ORM\Entity(repositoryClass=ProductLineRepository::class)
*/
class Audio extends Content implements AudioInterface, ProductLineInterface
{
use ProductLineTrait;
/**
* @Ignore
*
* @ORM\ManyToOne(targetEntity=Artist::class, inversedBy="audios")
* @ORM\JoinColumn(nullable=false)
*/
private $artist;
/**
* @ORM\Column(type="string", length=10)
*/
private $duration;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $featuredBy;
/**
* @ORM\Column(type="string", length=255)
*/
private $producedBy;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $distributedBy;
/**
* @ORM\Column(type="string", length=255)
*/
private $primaryFile;
/**
* @ORM\Column(type="string", length=150, nullable=true)
*/
private $secondaryFile;
/**
* @ORM\Column(type="date", nullable=true)
*/
private $releasedAt;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $purchaseUrl;
/**
* @ORM\Column(type="string", length=100, nullable=true)
*/
private $resumableId;
public function getArtist(): ?Artist
{
return $this->artist;
}
public function setArtist(?Artist $artist): self
{
$this->artist = $artist;
return $this;
}
public function getDuration(): ?string
{
return $this->duration;
}
public function setDuration(string $duration): self
{
$this->duration = $duration;
return $this;
}
public function getFeaturedBy(): ?string
{
return $this->featuredBy;
}
public function setFeaturedBy(?string $featuredBy): self
{
$this->featuredBy = $featuredBy;
return $this;
}
public function getProducedBy(): ?string
{
return $this->producedBy;
}
public function setProducedBy(string $producedBy): self
{
$this->producedBy = $producedBy;
return $this;
}
public function getDistributedBy(): ?string
{
return $this->distributedBy;
}
public function setDistributedBy(?string $distributedBy): self
{
$this->distributedBy = $distributedBy;
return $this;
}
public function getPrimaryFile(): ?string
{
return $this->primaryFile;
}
public function setPrimaryFile(string $primaryFile): self
{
$this->primaryFile = $primaryFile;
return $this;
}
public function getSecondaryFile(): ?string
{
return $this->secondaryFile;
}
public function setSecondaryFile(?string $secondaryFile): self
{
$this->secondaryFile = $secondaryFile;
return $this;
}
public function getReleasedAt(): ?\DateTimeInterface
{
return $this->releasedAt;
}
public function setReleasedAt(?\DateTimeInterface $releasedAt): self
{
$this->releasedAt = $releasedAt;
return $this;
}
public function getPurchaseUrl(): ?string
{
return $this->purchaseUrl;
}
public function setPurchaseUrl(?string $purchaseUrl): self
{
$this->purchaseUrl = $purchaseUrl;
return $this;
}
public function getResumableId(): ?string
{
return $this->resumableId;
}
public function setResumableId(?string $resumableId): self
{
$this->resumableId = $resumableId;
return $this;
}
}