commerce-8.x-2.8/modules/log/src/Entity/Log.php
modules/log/src/Entity/Log.php
<?php namespace Drupal\commerce_log\Entity; use Drupal\Core\Entity\ContentEntityBase; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Field\BaseFieldDefinition; /** * Defines the log entity class. * * @ContentEntityType( * id = "commerce_log", * label = @Translation("Log"), * label_singular = @Translation("log"), * label_plural = @Translation("logs"), * label_count = @PluralTranslation( * singular = "@count log", * plural = "@count logs", * ), * handlers = { * "access" = "Drupal\commerce\EmbeddedEntityAccessControlHandler", * "list_builder" = "Drupal\commerce_log\LogListBuilder", * "storage" = "Drupal\commerce_log\LogStorage", * "view_builder" = "Drupal\commerce_log\LogViewBuilder", * "views_data" = "Drupal\commerce\CommerceEntityViewsData", * }, * base_table = "commerce_log", * entity_keys = { * "id" = "log_id", * "uuid" = "uuid", * }, * ) */ class Log extends ContentEntityBase implements LogInterface { /** * {@inheritdoc} */ public function getUserId() { return $this->get('uid')->target_id; } /** * {@inheritdoc} */ public function getUser() { return $this->get('uid')->entity; } /** * {@inheritdoc} */ public function label() { return $this->getCategory()->getLabel() . ': ' . $this->getTemplate()->getLabel(); } /** * {@inheritdoc} */ public function getCategoryId() { return $this->get('category_id')->value; } /** * {@inheritdoc} */ public function getCategory() { $log_category_manager = \Drupal::service('plugin.manager.commerce_log_category'); return $log_category_manager->createInstance($this->getCategoryId()); } /** * {@inheritdoc} */ public function getTemplateId() { return $this->get('template_id')->value; } /** * {@inheritdoc} */ public function getTemplate() { $log_template_manager = \Drupal::service('plugin.manager.commerce_log_template'); return $log_template_manager->createInstance($this->getTemplateId()); } /** * {@inheritdoc} */ public function getSourceEntityId() { return $this->get('source_entity_id')->value; } /** * {@inheritdoc} */ public function getSourceEntityTypeId() { return $this->get('source_entity_type')->value; } /** * {@inheritdoc} */ public function getSourceEntity() { return \Drupal::entityTypeManager() ->getStorage($this->getSourceEntityTypeId()) ->load($this->getSourceEntityId()); } /** * {@inheritdoc} */ public function getParams() { return $this->get('params')->first()->getValue(); } /** * {@inheritdoc} */ public function setParams(array $params) { $this->set('params', $params); return $this; } /** * {@inheritdoc} */ public function getCreatedTime() { return $this->get('created')->value; } /** * {@inheritdoc} */ public function setCreatedTime($timestamp) { $this->set('created', $timestamp); return $this; } /** * {@inheritdoc} */ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) { $fields = parent::baseFieldDefinitions($entity_type); $fields['uid'] = BaseFieldDefinition::create('entity_reference') ->setLabel(t('User')) ->setDescription(t('The user for the log.')) ->setSetting('target_type', 'user') ->setSetting('handler', 'default') ->setDefaultValueCallback('Drupal\commerce_log\Entity\Log::getCurrentUserId'); $fields['template_id'] = BaseFieldDefinition::create('string') ->setLabel(t('Log template ID')) ->setDescription(t('The log template plugin ID')); $fields['category_id'] = BaseFieldDefinition::create('string') ->setLabel(t('Log category ID')) ->setDescription(t('The log category plugin ID')); $fields['source_entity_id'] = BaseFieldDefinition::create('integer') ->setLabel(t('Source entity ID')) ->setDescription(t('The source entity ID')); $fields['source_entity_type'] = BaseFieldDefinition::create('string') ->setLabel(t('Source entity type')) ->setDescription(t('The source entity type')); $fields['params'] = BaseFieldDefinition::create('map') ->setLabel(t('Params')) ->setDescription(t('A serialized array of parameters for the log template.')); $fields['created'] = BaseFieldDefinition::create('created') ->setLabel(t('Created')) ->setDescription(t('The time when the log was created.')); return $fields; } /** * Default value callback for 'uid' base field definition. * * @see ::baseFieldDefinitions() * * @return array * An array of default values. */ public static function getCurrentUserId() { return [\Drupal::currentUser()->id()]; } }