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'])),
]
],
];
}
}