<?php
namespace Times\EigyoBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Mapping\ClassMetadata;
use Symfony\Component\Validator\Constraints as Assert;
use Kzl\ToolBundle\Util as KzlUtil;
/**
* UtilItem 汎用項目マスタ
* @author tokumine 2019/03/25 add
*/
class UtilItem
{
/**
* @var int 種類
*/
const TYPE_MEDIA = 1; // 媒体
/**
* @var int 表示順
*/
const NEXT_POSITION = 10; // 表示順増加係数
/**
* 種類の選択肢.
*
* @var array
*/
private static $utilItemTypeList = array(
self::TYPE_MEDIA => '媒体',
);
/**
* @var integer
*/
private $id;
/**
* @var integer
*/
private $type;
/**
* @var integer
*/
private $position;
/**
* @var string
*/
private $name;
/**
* @var string
*/
private $shortName;
/**
* @var boolean
*/
private $enabled = '1';
/**
* @var \DateTime
*/
private $createdAt;
/**
* @var \DateTime
*/
private $updatedAt;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set type
*
* @param integer $type
*
* @return UtilItem
*/
public function setType($type)
{
$this->type = $type;
return $this;
}
/**
* Get type
*
* @return integer
*/
public function getType()
{
return $this->type;
}
/**
* Set position
*
* @param integer $position
*
* @return UtilItem
*/
public function setPosition($position)
{
$this->position = $position;
return $this;
}
/**
* Get position
*
* @return integer
*/
public function getPosition()
{
return $this->position;
}
/**
* Set name
*
* @param string $name
*
* @return UtilItem
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set shortName
*
* @param string $shortName
*
* @return UtilItem
*/
public function setShortName($shortName)
{
$this->shortName = $shortName;
return $this;
}
/**
* Get shortName
*
* @return string
*/
public function getShortName()
{
return $this->shortName;
}
/**
* @ORM\PostLoad
*/
public function doPostLoad()
{
// Add your code here
}
/**
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function doPreUpdate()
{
$now = new \Datetime();
// Add your code here
if ($this->getCreatedAt() == null) {
$this->setCreatedAt($now);
}
$this->setUpdatedAt($now);
}
/**
* @ORM\PostUpdate
*/
public function doPostUpdate()
{
// Add your code here
}
/**
* Set enabled
*
* @param boolean $enabled
*
* @return UtilItem
*/
public function setEnabled($enabled)
{
$this->enabled = $enabled;
return $this;
}
/**
* Get enabled
*
* @return boolean
*/
public function getEnabled()
{
return $this->enabled;
}
/**
* Set createdAt
*
* @param \DateTime $createdAt
*
* @return UtilItem
*/
public function setCreatedAt($createdAt)
{
$this->createdAt = $createdAt;
return $this;
}
/**
* Get createdAt
*
* @return \DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* Set updatedAt
*
* @param \DateTime $updatedAt
*
* @return UtilItem
*/
public function setUpdatedAt($updatedAt)
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* Get updatedAt
*
* @return \DateTime
*/
public function getUpdatedAt()
{
return $this->updatedAt;
}
/**
* 種類の名称を取得.
*
* @param int $type
*
* @var string
*/
public static function getTypeNameByType($type)
{
if (!$type) {
return '';
}
return KzlUtil\Iterator::getArrayValueByKey(self::$utilItemTypeList, $type, '');
}
// -------------------- 以下 追加処理 ---------------------------------------------
/**
* バリデーションチェックを行う
* @param ClassMetadata $metadata
*/
public static function loadValidatorMetadata(ClassMetadata $metadata)
{
// 表示順:空白チェック
$metadata->addPropertyConstraint('position', new Assert\NotBlank());
// 表示順:桁数チェック
$metadata->addPropertyConstraint('position', new Assert\Range(array(
'min' => 1,
'max' => 999999,
)));
// 表示順:小数値
$metadata->addPropertyConstraint('position', new Assert\Regex(array(
'pattern' => '/^[0-9]*$/',
)));
// 名前 空白チェック
$metadata->addPropertyConstraint('name', new Assert\NotBlank());
// 名前 文字数
$metadata->addPropertyConstraint('name', new Assert\Length(array(
'max' => 255,
)));
}
}