<?php
namespace App\Entity;
use App\Entity\Tag\HasAuthToken;
use App\Entity\Traits\AuthTokenTrait;
use App\Repository\FileStorageRepository;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @Vich\Uploadable
*/
#[ORM\Table]
#[ORM\Index(name: 'auth_token', columns: ['auth_token'])]
#[ORM\Index(name: 'file_name', columns: ['file_name'])]
#[ORM\Entity(repositoryClass: FileStorageRepository::class)]
class FileStorage implements HasAuthToken
{
use AuthTokenTrait;
use TimestampableEntity;
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $mimeType;
#[ORM\Column(type: 'integer')]
private $fileSize;
/**
* NOTE: This is not a mapped field of entity metadata, just a simple property.
*
* @Vich\UploadableField(mapping="file_object", fileNameProperty="fileName", size="fileSize", mimeType="mimeType", originalName="sourceName")
*
* @var File|null
*/
private $file;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $fileName;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $sourceName;
public function getId(): ?int
{
return $this->id;
}
/**
* @return mixed
*/
public function getMimeType()
{
return $this->mimeType;
}
/**
* @param mixed $mimeType
*
* @return FileStorage
*/
public function setMimeType($mimeType)
{
$this->mimeType = $mimeType;
return $this;
}
/**
* @return mixed
*/
public function getFileSize()
{
return $this->fileSize;
}
/**
* @param mixed $fileSize
*
* @return FileStorage
*/
public function setFileSize($fileSize)
{
$this->fileSize = $fileSize;
return $this;
}
/**
* @return File|null
*/
public function getFile(): ?File
{
return $this->file;
}
/**
* @param File|null $file
*
* @return FileStorage
*/
public function setFile(?File $file): FileStorage
{
$this->file = $file;
if ($this->file !== null) {
$this->setUpdatedAt(new \DateTime());
}
return $this;
}
/**
* @return mixed
*/
public function getFileName()
{
return $this->fileName;
}
/**
* @param mixed $fileName
*
* @return FileStorage
*/
public function setFileName($fileName)
{
$this->fileName = $fileName;
return $this;
}
/**
* @return mixed
*/
public function getSourceName()
{
return $this->sourceName;
}
/**
* @param mixed $sourceName
*
* @return FileStorage
*/
public function setSourceName($sourceName)
{
$this->sourceName = $sourceName;
return $this;
}
}