<?phpnamespace App\Entity;use DateTime;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;/** * @ORM\Entity( * repositoryClass="App\Repository\SalesCaseAttachmentRepository" * ) * @ORM\Table( * name="sales_case_attachment", * options={"collate"="utf8_swedish_ci"} * ) * @ORM\HasLifecycleCallbacks */class SalesCaseAttachment implements EntityInterface{ /** * @ORM\Id * @ORM\Column( * type="integer" * ) * @ORM\GeneratedValue( * strategy="AUTO" * ) * * @var int|null */ protected ?int $id = null; /** * @ORM\Column( * type="datetime" * ) * * @Assert\NotBlank * * @var DateTime */ protected DateTime $created; /** * @ORM\OneToOne( * targetEntity="File", * cascade={"persist","remove"}, * orphanRemoval=true * ) * @ORM\JoinColumn( * name="file_id" * ) * * @Assert\NotNull * @Assert\Valid * * @var File */ protected File $file; /** * @ORM\ManyToOne( * targetEntity="SalesCase", * inversedBy="attachments" * ) * @ORM\JoinColumn( * name="sales_case_id", * referencedColumnName="id", * onDelete="cascade" * ) * * @Assert\NotNull * * @var SalesCase */ protected SalesCase $salesCase; /** * @param SalesCase $salesCase * @param File $file */ public function __construct(SalesCase $salesCase, File $file) { $this->salesCase = $salesCase; $this->file = $file; $this->created = new DateTime(); } /** * @return DateTime */ public function getCreated(): DateTime { return $this->created; } /** * @return File */ public function getFile(): File { return $this->file; } /** * @return int|null */ public function getId(): ?int { return $this->id; } /** * @return SalesCase */ public function getSalesCase(): SalesCase { return $this->salesCase; } /** * @ORM\PrePersist */ public function prePersist() { $this->created = new DateTime(); }}