<?phpnamespace App\Entity;use App\Repository\PartnerRepository;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use App\Entity\Traits\Timestampable;use Symfony\Component\HttpFoundation\File\File;use Vich\UploaderBundle\Mapping\Annotation as Vich;#[ORM\HasLifecycleCallbacks]#[Vich\Uploadable]#[ORM\Entity(repositoryClass: PartnerRepository::class)]class Partner{ use Timestampable; #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column] private ?int $id = null; #[ORM\Column(length: 255)] private ?string $name = null; #[ORM\Column(type: Types::TEXT)] private ?string $description = null; #[ORM\Column(length: 255)] private ?string $logo = null; /** * NOTE: This is not a mapped field of entity metadata, just a simple property. * */ #[Vich\UploadableField(mapping: 'partner_logo', fileNameProperty: 'logo')] private ?File $imageFile = null; #[ORM\Column(length: 255, nullable: true)] private ?string $phone = null; #[ORM\Column(length: 255, nullable: true)] private ?string $email = null; #[ORM\Column(length: 255)] private ?string $location = null; #[ORM\Column(length: 255)] private ?string $slug = null; public function getId(): ?int { return $this->id; } public function getName(): ?string { return $this->name; } public function setName(string $name): static { $this->name = $name; return $this; } public function getDescription(): ?string { return $this->description; } public function setDescription(string $description): static { $this->description = $description; return $this; } /** * If manually uploading a file (i.e. not using Symfony Form) ensure an instance * of 'UploadedFile' is injected into this setter to trigger the update. If this * bundle's configuration parameter 'inject_on_load' is set to 'true' this setter * must be able to accept an instance of 'File' as the bundle will inject one here * during Doctrine hydration. * * @param File|\Symfony\Component\HttpFoundation\File\UploadedFile|null $imageFile */ public function setImageFile(?File $imageFile = null): void { $this->imageFile = $imageFile; if (null !== $imageFile) { // It is required that at least one field changes if you are using doctrine // otherwise the event listeners won't be called and the file is lost $this->setUpdatedAt(new \DateTime()); } } public function getImageFile(): ?File { return $this->imageFile; } public function getLogo(): ?string { return $this->logo; } public function setLogo(string $logo): static { $this->logo = $logo; return $this; } public function getPhone(): ?string { return $this->phone; } public function setPhone(?string $phone): static { $this->phone = $phone; return $this; } public function getEmail(): ?string { return $this->email; } public function setEmail(?string $email): static { $this->email = $email; return $this; } public function getLocation(): ?string { return $this->location; } public function setLocation(string $location): static { $this->location = $location; return $this; } public function getSlug(): ?string { return $this->slug; } public function setSlug(string $slug): static { $this->slug = $slug; return $this; }}