HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/shop.komma.nl/app/Products/Product/Transfer/ProductColumnMapsTrait.php
<?php


namespace App\Products\Product\Transfer;

use Komma\KMS\Transfer\ColumnMap;

/**
 * Trait ProductColumnMapsTrait
 *
 * Used for both product import and export services.
 * Holds column maps which link csv columns to Eloquent model attributes.
 * Also links validation setting and meta information like header name
 *
 * @package App\Products\Product\Transfer
 */
trait ProductColumnMapsTrait
{
    /**
     * Returns an array with column maps which map info to columns
     *
     * @return array
     */
    protected function getColumnMaps(): array
    {
        $alphaNumericAndPunctuation = "#^[\w\\/!@\#$%^&*()+{},.?;\"'\[\]\- ]{0,63}$#";

        return [
            'productData' => [
                (new ColumnMap('A'))->setModelAttributeName('active')->setHeaderName('Active')->setValidationRegex('/^[0-1]$/')->setValidationErrorText(__('kms/transfer.validation_error.active')),
                (new ColumnMap('B'))->setModelAttributeName('price')->setHeaderName('Price in cents')->setValidationRegex('/^\d*$/')->setValidationErrorText(__('kms/transfer.validation_error.price')),
                (new ColumnMap('C'))->setModelAttributeName('stock_keeping_unit')->setHeaderName('Stock keeping unit')->setValidationRegex('/^[\w.\-]{1,63}$/')->setValidationErrorText(__('kms/transfer.validation_error.stock_keeping_unit')),
            ],

            'discountData' => (new ColumnMap('D'))->setHeaderName('Quantity/Discount')->setValidationRegex('/^\d+\/\d+$/')->setValidationErrorText(__('kms/transfer.validation_error.quantitydiscount'))->setOptional(true),

            'translationData' => [
                'nl' => [
                    (new ColumnMap('E'))->setModelAttributeName('name')->setHeaderName('NL title')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'nl title'])),
                    (new ColumnMap('F'))->setModelAttributeName('description')->setHeaderName('NL Description')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'nl description']))->setOptional(true),
                    (new ColumnMap('G'))->setModelAttributeName('meta_description')->setHeaderName('NL Meta description')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'nl meta description'])),
                ],
                'en' => [
                    (new ColumnMap('H'))->setModelAttributeName('name')->setHeaderName('EN title')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'en title'])),
                    (new ColumnMap('I'))->setModelAttributeName('description')->setHeaderName('EN Description')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'en description'])),
                    (new ColumnMap('J'))->setModelAttributeName('meta_description')->setHeaderName('EN Meta description')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'en meta description'])),
                ],
                'de' => [
                    (new ColumnMap('K'))->setModelAttributeName('name')->setHeaderName('DE title')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'de title'])),
                    (new ColumnMap('L'))->setModelAttributeName('description')->setHeaderName('DE Description')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'de description']))->setOptional(true),
                    (new ColumnMap('M'))->setModelAttributeName('meta_description')->setHeaderName('DE Meta description')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation', ['field' => 'de meta description'])),
                ]
            ],
        ];
    }
}