<?php
namespace App\Entity;
use App\Repository\SocialNetworkRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: SocialNetworkRepository::class)]
#[UniqueEntity(['name'])]
class SocialNetwork
{
public const FACEBOOK = 'Facebook';
public const TWITTER = 'X';
public const YOUTUBE = 'Youtube';
public const INSTAGRAM = 'Instagram';
public const LINKEDIN = "LinkedIn";
public const WHATSAPP = "Whatsapp";
public const PINTEREST = "Pinterest";
public const TIKTOK = "Tiktok";
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\Column(length: 255)]
#[Assert\NotBlank]
private ?string $name = null;
#[ORM\Column(length: 255)]
#[Assert\NotBlank]
#[Assert\Url]
private ?string $url = null;
#[ORM\Column(length: 64, nullable: true)]
private ?string $icon = null;
#[ORM\Column(nullable: true)]
private ?bool $active = null;
#[ORM\Column(nullable: true)]
private ?int $clicksCount = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $pageId = 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 getUrl(): ?string
{
return $this->url;
}
public function setUrl(string $url): static
{
$this->url = $url;
return $this;
}
public function getIcon(): ?string
{
return $this->icon;
}
public function setIcon(?string $icon): static
{
$this->icon = $icon;
return $this;
}
public function isActive(): ?bool
{
return $this->active;
}
public function setActive(?bool $active): static
{
$this->active = $active;
return $this;
}
public function getClicksCount(): ?int
{
return $this->clicksCount;
}
public function setClicksCount(?int $clicksCount): static
{
$this->clicksCount = $clicksCount;
return $this;
}
public function __toString(): string
{
return $this->getName();
}
public function getPageId(): ?string
{
return $this->pageId;
}
public function setPageId(?string $pageId): static
{
$this->pageId = $pageId;
return $this;
}
public static function getSocialMedia() : array {
return [
self::FACEBOOK => self::FACEBOOK,
self::INSTAGRAM => self::INSTAGRAM,
self::LINKEDIN => self::LINKEDIN,
self::TWITTER => self::TWITTER,
self::PINTEREST => self::PINTEREST,
self::YOUTUBE => self::YOUTUBE,
self::WHATSAPP => self::WHATSAPP,
self::TIKTOK => self::TIKTOK,
];
}
}