<?php/** * Created by PhpStorm. * User: adv * Date: 04.12.15 * Time: 19:35 */namespace Slivki\Entity;use JsonSerializable;class Seo extends Entity implements JsonSerializable{    public const RATING_CATEGORY_URL_PREFIX = '/rating';    private $createdOn;    private $entityID;    private $active;    private $resourceURL;    private $mainAlias;    private $title;    private $metaTitle;    private $metaDescription;    private $metaKeywords;    private $redirectURL;    private $pageDescription;    protected $domain;    public function __construct() {        $this->createdOn = new \DateTime();        $this->domain = 'www';    }    public function getCreatedOn() {        return $this->createdOn;    }    public function setCreatedOn($createdOn) {        $this->createdOn = $createdOn;    }    public function getEntityID() {        return $this->entityID;    }    public function setEntityID($entityID) {        $this->entityID = $entityID;    }    public function isActive() {        return $this->active;    }    public function setActive($active) {        $this->active = $active;    }    public function getResourceURL() {        return $this->resourceURL;    }    public function setResourceURL($resourceURL) {        $this->resourceURL = $resourceURL;    }    public function getMainAlias() {        return $this->mainAlias;    }    public function setMainAlias($mainAlias) {        $this->mainAlias = $mainAlias;    }    public function getTitle() {        return $this->title;    }    public function setTitle($title) {        $this->title = $title;    }    public function getMetaTitle() {        return $this->metaTitle;    }    public function setMetaTitle($metaTitle) {        $this->metaTitle = $metaTitle;    }    public function getMetaDescription() {        return $this->metaDescription;    }    public function setMetaDescription($metaDescription) {        $this->metaDescription = $metaDescription;    }    public function getPageDescription() {        return $this->pageDescription;    }    public function setPageDescription($pageDescription) {        $this->pageDescription = $pageDescription;    }    public function getMetaKeywords() {        return $this->metaKeywords;    }    public function setMetaKeywords($metaKeywords) {        $this->metaKeywords = $metaKeywords;    }    public function getRedirectURL() {        return $this->redirectURL;    }    public function setRedirectURL($redirectURL) {        $this->redirectURL = $redirectURL;    }    public function isEqual(Seo $seo): bool    {        return $this->entityID === $seo->getEntityID() && $this->metaTitle === $seo->getMetaTitle()            && $this->metaDescription === $seo->getMetaDescription() && $this->metaKeywords === $seo->getMetaKeywords()            && $this->pageDescription === $seo->getPageDescription() && $this->title === $seo->getTitle();    }    public function activate(): void    {        $this->active = true;    }    public function getDomain() {        return $this->domain;    }    public function setDomain($domain) {        $this->domain = $domain;    }    public function jsonSerialize(): array    {        return [            'ID' => $this->ID,            'mainAlias' => $this->mainAlias,            'title' => $this->title,            'metaTitle' => $this->metaTitle,            'metaDescription' => $this->metaDescription,            'metaKeywords' => $this->metaKeywords,            'pageDescription' => $this->pageDescription        ];    }}