<?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
];
}
}