<?phpnamespace App\Entity\Cvs;use App\Entity\Core\Users;use App\Entity\Core\Agencies;use Doctrine\DBAL\Types\Types;use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;use Symfony\Component\Validator\Constraints as Assert;use Doctrine\ORM\Mapping as ORM;use Vich\UploaderBundle\Mapping\Annotation as Vich;use Symfony\Component\HttpFoundation\File\File;use Symfony\Component\HttpFoundation\File\UploadedFile;use Vich\UploaderBundle\Entity\File as EmbeddedFile;use Vich\UploaderBundle\Templating\Helper\UploaderHelper;/** * Keywords Landing Jobs * * @ORM\Table("cvs_keywordslandingjobs") * @ORM\Entity(repositoryClass="App\Repository\Cvs\KeywordsLandingJobsRepository") * @ORM\HasLifecycleCallbacks() * @Vich\Uploadable */class KeywordsLandingJobs{ /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @var string * * @ORM\Column(name="created_at", type="datetime", nullable=true, options={"comment":"Date de création"}) */ private $createdAt; /** * @var string * * @ORM\Column(name="updated_at", type="datetime", nullable=true, options={"comment":"Date de mise à jour"}) */ private $updatedAt; /** * Mot-clé utilisé pour la recherche réelle (data-search, ex: "Immobilier", "fullstack") * * @var string * * @ORM\Column(name="search_keyword", type="string", length=255, nullable=true) */ private $searchKeyword; /** * Label affiché dans le tag populaire et l'animation (ex: "Agent immobilier", "Fullstack Developer") * * @var string * * @ORM\Column(name="label", type="string", length=255, nullable=true) */ private $label; /** * Icône/emoji affichée devant le label (ex: "🏠", "💻", "⚖️") * * @var string * * @ORM\Column(name="icon", type="string", length=50, nullable=true) */ private $icon; /** * Ancien champ keywords conservé pour rétrocompatibilité * * @var string * * @ORM\Column(name="keywords", type="string", length=255, nullable=true) */ private $keywords; /** * Locale pour les homepages (fr, en). NULL si associé à une landing page. * * @var string * * @ORM\Column(name="locale", type="string", length=11, nullable=true) */ private $locale; /** * Landing page associée. NULL si c'est pour la homepage. * * @var \LandingJobs * * @ORM\ManyToOne(targetEntity="App\Entity\Cvs\LandingJobs") * @ORM\JoinColumns({ * @ORM\JoinColumn(name="landing_jobs", referencedColumnName="id", nullable=true) * }) */ protected $landing; /** * Ordre d'affichage * * @var integer * * @ORM\Column(name="position", type="integer", nullable=true, options={"default":0}) */ private $position = 0; public function __construct() { } /** * @ORM\PrePersist */ public function setCreatedAtValue(): void { $this->setCreatedAt(new \DateTime("now")); $this->setUpdatedAt(new \DateTime("now")); } /** * @ORM\PreUpdate */ public function setUpdatedAtValue(): void { $this->setUpdatedAt(new \DateTime("now")); } public function __toString() { return $this->label ?? (string)$this->id; } public function getId(): ?int { return $this->id; } public function getCreatedAt(): ?\DateTimeInterface { return $this->createdAt; } public function setCreatedAt(?\DateTimeInterface $createdAt): static { $this->createdAt = $createdAt; return $this; } public function getUpdatedAt(): ?\DateTimeInterface { return $this->updatedAt; } public function setUpdatedAt(?\DateTimeInterface $updatedAt): static { $this->updatedAt = $updatedAt; return $this; } public function getSearchKeyword(): ?string { return $this->searchKeyword; } public function setSearchKeyword(?string $searchKeyword): static { $this->searchKeyword = $searchKeyword; return $this; } public function getLabel(): ?string { return $this->label; } public function setLabel(?string $label): static { $this->label = $label; return $this; } public function getIcon(): ?string { return $this->icon; } public function setIcon(?string $icon): static { $this->icon = $icon; return $this; } public function getKeywords(): ?string { return $this->keywords; } public function setKeywords(?string $keywords): static { $this->keywords = $keywords; return $this; } public function getLocale(): ?string { return $this->locale; } public function setLocale(?string $locale): static { $this->locale = $locale; return $this; } public function getLanding(): ?LandingJobs { return $this->landing; } public function setLanding(?LandingJobs $landing): static { $this->landing = $landing; return $this; } public function getPosition(): ?int { return $this->position; } public function setPosition(?int $position): static { $this->position = $position; return $this; }}