Files
Phraseanet/lib/Alchemy/Phrasea/Model/Entities/ElasticsearchRecord.php
Aina Sitraka 2b4c064f62 PHRAS-3674 Prod - Record Information - Add Databox name in information (#4020)
* add databox name in record information

* fix databox name info
2022-05-17 17:35:51 +02:00

514 lines
10 KiB
PHP

<?php
/*
* This file is part of Phraseanet
*
* (c) 2005-2014 Alchemy
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Alchemy\Phrasea\Model\Entities;
use Alchemy\Phrasea\Model\MutableRecordInterface;
use Alchemy\Phrasea\Model\RecordInterface;
/**
* Record entity from elastic search
*/
class ElasticsearchRecord implements RecordInterface, MutableRecordInterface
{
// ES data
private $_index;
private $_type;
private $_id;
private $_version;
private $_score;
// Phraseanet Record data
private $databoxId;
private $databoxName;
private $recordId;
private $collectionId;
private $baseId;
private $collectionName;
private $mimeType;
private $title = [];
private $originalName;
private $updated;
private $created;
private $sha256;
private $width;
private $height;
private $size;
private $uuid;
private $position;
private $type;
private $status;
private $isStory;
private $coverRecordId;
private $caption = [];
private $privateCaption = [];
private $exif = [];
private $subdefs = [];
private $flags = [];
private $highlight = [];
public function asArray()
{
return [
'_index' => $this->_index,
'_type' => $this->_type,
'_id' => $this->_id,
'_version' => $this->_version,
'_score' => $this->_score,
'databoxId' => $this->databoxId,
'databoxName' => $this->databoxName,
'recordId' => $this->recordId,
'collectionId' => $this->collectionId,
'baseId' => $this->baseId,
'collectionName' => $this->collectionName,
'mimeType' => $this->mimeType,
'title' => $this->title,
'originalName' => $this->originalName,
'updated' => $this->updated,
'created' => $this->created,
'sha256' => $this->sha256,
'width' => $this->width,
'height' => $this->height,
'size' => $this->size,
'uuid' => $this->uuid,
'position' => $this->position,
'type' => $this->type,
'status' => $this->status,
'isStory' => $this->isStory,
'coverRecordId' => $this->coverRecordId,
'caption' => $this->caption,
'privateCaption' => $this->privateCaption,
'exif' => $this->exif,
'subdefs' => $this->subdefs,
'flags' => $this->flags,
'highlight' => $this->highlight,
];
}
/**
* @param string $index
* @param string $type
* @param string $id
* @param int $version
* @param float $score
*/
public function setESData($index, $type, $id, $version, $score)
{
$this->_index = $index;
$this->_type = $type;
$this->_id = $id;
$this->_version = $version;
$this->_score = $score;
}
/**
* @return string
*/
public function getIndex()
{
return $this->_index;
}
/**
* @return string
*/
public function getScore()
{
return $this->_score;
}
/**
* @return string
*/
public function getElasticsearchType()
{
return $this->_type;
}
/**
* @return int
*/
public function getVersion()
{
return $this->_version;
}
/** {@inheritdoc} */
public function getId()
{
return sprintf('%s_%s', $this->getDataboxId(), $this->getRecordId());
}
/** {@inheritdoc} */
public function getBaseId()
{
return $this->baseId;
}
/** {@inheritdoc} */
public function setBaseId($baseId)
{
$this->baseId = $baseId;
}
/** {@inheritdoc} */
public function getCollectionId()
{
return $this->collectionId;
}
/** {@inheritdoc} */
public function setCollectionId($collectionId)
{
$this->collectionId = $collectionId;
}
/** {@inheritdoc} */
public function getCreated()
{
return $this->created;
}
/** {@inheritdoc} */
public function setCreated(\DateTime $created = null)
{
$this->created = $created;
}
/** {@inheritdoc} */
public function getDataboxId()
{
return $this->databoxId;
}
/** {@inheritdoc} */
public function setDataboxId($databoxId)
{
$this->databoxId = $databoxId;
}
public function getDataboxName()
{
return $this->databoxName;
}
public function setDataboxName($databoxName)
{
$this->databoxName = $databoxName;
}
/** {@inheritdoc} */
public function isStory()
{
return $this->isStory;
}
/** {@inheritdoc} */
public function setIsStory($isStory)
{
$this->isStory = (bool)$isStory;
}
public function setCoverRecordId($coverRecordId)
{
$this->coverRecordId = $coverRecordId;
}
public function getCoverRecordId($coverRecordId)
{
return $this->coverRecordId;
}
/** {@inheritdoc} */
public function getMimeType()
{
return $this->mimeType;
}
/** {@inheritdoc} */
public function setMimeType($mimeType)
{
if (null === $mimeType || '' === $mimeType) {
$mimeType = 'application/octet-stream';
}
$this->mimeType = $mimeType;
}
/**
* @return string
*/
public function getCollectionName()
{
return $this->collectionName;
}
/**
* @param string $collectionName
*/
public function setCollectionName($collectionName)
{
$this->collectionName = $collectionName;
}
/** {@inheritdoc} */
public function getOriginalName()
{
return $this->originalName;
}
/** {@inheritdoc} */
public function setOriginalName($originalName)
{
$this->originalName = $originalName;
}
/** {@inheritdoc} */
public function getRecordId()
{
return $this->recordId;
}
/** {@inheritdoc} */
public function setRecordId($recordId)
{
$this->recordId = $recordId;
}
/** {@inheritdoc} */
public function getSha256()
{
return $this->sha256;
}
/** {@inheritdoc} */
public function setSha256($sha256)
{
$this->sha256 = $sha256;
}
/** {@inheritdoc} */
public function getWidth()
{
return $this->width;
}
/** {@inheritdoc} */
public function setWidth($width)
{
$this->width = $width;
}
/** {@inheritdoc} */
public function getHeight()
{
return $this->height;
}
/** {@inheritdoc} */
public function setHeight($height)
{
$this->height = $height;
}
/** {@inheritdoc} */
public function getSize()
{
return $this->size;
}
/** {@inheritdoc} */
public function setSize($size)
{
$this->size = $size;
}
/**
* @param string|null $locale
*
* @return string
*/
public function getTitle($locale = null)
{
if ($locale && isset($this->title[$locale])) {
return $this->title[$locale];
}
if (isset($this->title['default'])) {
return $this->title['default'];
}
return $this->getOriginalName();
}
/**
* Sets a collection of titles
*
* @param string[] $titles
*/
public function setTitles(array $titles)
{
$this->title = $titles;
}
/**
* Available types are ['document', 'audio', 'video', 'image', 'flash', 'map', 'unknown']
*/
public function getType()
{
return $this->type;
}
public function setType($type)
{
$this->type = $type;
}
/** @return \DateTime */
public function getUpdated()
{
return $this->updated;
}
public function setUpdated(\DateTime $updated = null)
{
$this->updated = $updated;
}
public function getUuid()
{
return $this->uuid;
}
public function setUuid($uuid)
{
$this->uuid = $uuid;
}
public function getCaption(array $fields = null)
{
if (null === $fields) {
return $this->caption;
}
$known = array_merge($this->caption, $this->privateCaption);
$caption = [];
foreach ($fields as $field) {
if (isset($known[$field]) || array_key_exists($field, $known)) {
$caption[$field] = $known[$field];
}
}
return $caption;
}
public function setCaption(array $caption)
{
$this->caption = $caption;
}
/** @return array */
public function getPrivateCaption()
{
return $this->privateCaption;
}
/**
* @param array $privateCaption
*/
public function setPrivateCaption(array $privateCaption)
{
$this->privateCaption = $privateCaption;
}
/** @return array */
public function getExif()
{
return $this->exif;
}
public function setExif(array $exif)
{
$this->exif = $exif;
}
/** @return array */
public function getSubdefs()
{
return $this->subdefs;
}
public function setSubdefs(array $subdefs)
{
$this->subdefs = $subdefs;
}
/**
* @return array
*/
public function getFlags()
{
return $this->flags;
}
/**
* @param array $flags
*/
public function setFlags(array $flags)
{
$this->flags = $flags;
}
public function setStatusBitField($status)
{
$this->status = $status;
}
/**
*
* @return integer
*/
public function getStatusBitField()
{
return $this->status;
}
/**
* Returns the position of the record in the result set
*/
public function getPosition()
{
return $this->position;
}
public function setPosition($position)
{
$this->position = $position;
}
/**
* @return array
*/
public function getHighlight()
{
return $this->highlight;
}
/**
* @param array $highlight
*/
public function setHighlight(array $highlight)
{
$this->highlight = $highlight;
}
}