acquia_dam-1.0.0-rc1/src/Entity/MediaExpiryDateField.php
src/Entity/MediaExpiryDateField.php
<?php declare(strict_types=1); namespace Drupal\acquia_dam\Entity; use Drupal\Core\StringTranslation\TranslatableMarkup; /** * Provides storage and field definitions for the embed filed. */ final class MediaExpiryDateField { /** * The field name. */ public const EXPIRY_DATE_FIELD_NAME = 'acquia_dam_expiry_date'; /** * Get the field storage definition. * * @param string $entity_type_id * The entity type ID. * * @return \Drupal\acquia_dam\Entity\BundleFieldDefinition * The storage definition. */ public static function getStorageDefinition(string $entity_type_id): BundleFieldDefinition { return self::bundleFieldDefinition() ->setTargetEntityTypeId($entity_type_id); } /** * Get the field definition. * * @param string $entity_type_id * The entity type ID. * @param string $bundle * The entity bundle. * @param string $label * The field label. * * @return \Drupal\acquia_dam\Entity\BundleFieldDefinition * The field definition. */ public static function getFieldDefinition(string $entity_type_id, string $bundle, string $label): BundleFieldDefinition { return self::bundleFieldDefinition() ->setTargetEntityTypeId($entity_type_id) ->setTargetBundle($bundle) ->setRevisionable(TRUE) ->setDisplayConfigurable('form', TRUE); } /** * Get the bundle field definition. * * @return \Drupal\acquia_dam\Entity\BundleFieldDefinition * The bundle field definition. */ private static function bundleFieldDefinition(): BundleFieldDefinition { return BundleFieldDefinition::create('timestamp') ->setProvider('acquia_dam') ->setName(self::EXPIRY_DATE_FIELD_NAME) // @phpstan-ignore-next-line ->setLabel(new TranslatableMarkup('Expiration date')); } }