<?php
namespace App\Entity\Messaging;
use App\Validator\Constraints\MessageFile as AssertMessageFile;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\Validator\Constraints as Assert;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Repository\App\Messaging\MessageFileRepository")
* @Vich\Uploadable
*/
class MessageFile
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(name="name", nullable=true)
*/
protected $name;
/**
* @ORM\Column(name="original_name", nullable=true)
*/
protected $originalName;
/**
* @ORM\Column(name="mime_type", nullable=true)
*/
protected $mimeType;
/**
* @ORM\Column(name="size", type="integer", nullable=true)
*/
protected $size;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Messaging\Message", inversedBy="messageFiles")
* @ORM\JoinColumn(nullable=false)
* @Assert\NotBlank
*/
protected $message;
/**
* @ORM\Column(type="datetime")
*/
protected $updatedAt;
/**
* @Vich\UploadableField(mapping="message_file", fileNameProperty="name", size="size", mimeType="mimeType", originalName="originalName")
* @AssertMessageFile
*
* @var File
*/
protected $file;
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(?string $name): void
{
$this->name = $name;
}
public function getOriginalName(): ?string
{
return $this->originalName;
}
public function setOriginalName(?string $originalName): void
{
$this->originalName = $originalName;
}
public function getMimeType(): ?string
{
return $this->mimeType;
}
public function setMimeType(?string $mimeType): void
{
$this->mimeType = $mimeType;
}
public function getSize(): ?int
{
return $this->size;
}
public function setSize(?int $size): void
{
$this->size = $size;
}
public function getMessage(): ?Message
{
return $this->message;
}
public function setMessage(?Message $message): self
{
$this->message = $message;
return $this;
}
public function setFile(?File $file = null): self
{
$this->file = $file;
if (null !== $file) {
$this->updatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getFile(): ?File
{
return $this->file;
}
public function getUpdatedAt(): \DateTimeInterface
{
return $this->updatedAt;
}
}