File: D:/HostingSpaces/SBogers10/ehbo.today/app/KommaApp/Kms/MemberTransfer/MemberColumnMapsTrait.php
<?php
namespace App\KommaApp\Kms\MemberTransfer;
use App\KommaApp\Kms\Transfer\ColumnMap;
/**
* Trait MemberColumnMapsTrait
*
* 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\KommaApp\Shop\Products\Product\Transfer
*/
trait MemberColumnMapsTrait
{
/**
* Returns an array with column maps which map info to columns
*
* @return array
*/
protected function getColumnMaps(): array
{
$alphaNumericAndPunctuation = "#^[\w\\/!@\#$%^&*()+{},.?;\"'\[\]\- ]{0,63}$#";
$dateRegex = '/^\d{2}\/\d{2}\/\d{4}/';
$emailRegex = '/^\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b$/i'; //last i makes it case insensitive
return [
'userData' => [
(new ColumnMap('A'))->setModelAttributeName('gender')->setHeaderName('Titel')->setValidationRegex('/Dhr\.|Mevr\./')->setValidationErrorText(__('kms/transfer.validation_error.gender')),
(new ColumnMap('B'))->setModelAttributeName('first_name')->setHeaderName('Vnaam')->setValidationRegex('/.+/')->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('C'))->setModelAttributeName('last_name')->setHeaderName('Naam')->setValidationRegex('/.+/')->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('D'))->setModelAttributeName('name_insertion')->setHeaderName('Vvoeg')->setValidationRegex('/.*/')->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('F'))->setModelAttributeName('street')->setHeaderName('Adres')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('G'))->setModelAttributeName('house_number')->setHeaderName('Huisnr')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('H'))->setModelAttributeName('postal_code')->setHeaderName('Pcode')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('I'))->setModelAttributeName('city')->setHeaderName('Woonplaats')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('J'))->setModelAttributeName('email')->setHeaderName('E-mail adres')->setValidationRegex($emailRegex)->setValidationErrorText(__('kms/transfer.validation_error.email')),
(new ColumnMap('K'))->setModelAttributeName('telephone')->setHeaderName('Telfoon')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('L'))->setModelAttributeName('mobile')->setHeaderName('Mobiel')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('M'))->setModelAttributeName('certificate_number')->setHeaderName('Dip. nr.')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('N'))->setModelAttributeName('birthdate')->setHeaderName('Geb.dat')->setValidationRegex($dateRegex)->setValidationErrorText(__('kms/transfer.validation_error.birthdate')),
(new ColumnMap('O'))->setModelAttributeName('roles')->setHeaderName('status persoon')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.alpha_numeric_punctuation')),
(new ColumnMap('P'))->setModelAttributeName('certificate_valid_trough_date')->setHeaderName('Verv.dat diploma')->setValidationRegex($dateRegex)->setValidationErrorText(__('kms/transfer.validation_error.certificate_expiration_date')),
(new ColumnMap('Q'))->setModelAttributeName('certificate_acquirement_date')->setHeaderName('Examendatum')->setValidationRegex($dateRegex)->setValidationErrorText(__('kms/transfer.validation_error.certificate_acquirement_date')),
(new ColumnMap('R'))->setModelAttributeName('bank_account_number')->setHeaderName('Bankrekeningnummer')->setValidationRegex($alphaNumericAndPunctuation)->setValidationErrorText(__('kms/transfer.validation_error.bank_account_number')),
],
];
}
}