commerce_api-8.x-1.x-dev/src/Plugin/Field/FieldType/PaymentInstrument.php
src/Plugin/Field/FieldType/PaymentInstrument.php
<?php declare(strict_types=1); namespace Drupal\commerce_api\Plugin\Field\FieldType; use Drupal\Core\Field\FieldItemBase; use Drupal\Core\Field\FieldStorageDefinitionInterface; use Drupal\Core\StringTranslation\TranslatableMarkup; use Drupal\Core\TypedData\DataDefinition; use Drupal\Core\TypedData\MapDataDefinition; /** * @FieldType( * id = "payment_instrument", * label = @Translation("Payment instrument"), * no_ui = TRUE, * list_class = "\Drupal\commerce_api\Plugin\Field\FieldType\PaymentInstrumentItemList", * ) * * @property string $payment_gateway_id * @property string $payment_method_id * @property string $payment_method_type * @property array $payment_details */ final class PaymentInstrument extends FieldItemBase { /** * {@inheritdoc} */ public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) { $properties['payment_gateway_id'] = DataDefinition::create('string') ->setLabel(new TranslatableMarkup('Payment gateway ID')); $properties['payment_method_id'] = DataDefinition::create('string') ->setLabel(new TranslatableMarkup('Payment method ID')); $properties['payment_method_type'] = DataDefinition::create('string') ->setLabel(new TranslatableMarkup('Payment method type')); $properties['payment_details'] = MapDataDefinition::create() ->setLabel(new TranslatableMarkup('Payment details')); return $properties; } /** * {@inheritdoc} */ public static function schema(FieldStorageDefinitionInterface $field_definition) { return []; } /** * {@inheritdoc} */ public static function mainPropertyName() { return NULL; } }