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