'person', 'canonical_root' => 'person', 'label' => 'Person', 'fields' => ['first_name', 'last_name', 'full_name', 'gender', 'birthday', 'tax_number', 'social_security_number', 'description'], 'field_aliases' => [ 'dob' => 'birthday', 'date_of_birth' => 'birthday', 'name' => 'full_name', ], 'aliases' => ['person'], 'rules' => [ ['pattern' => '/^(ime|first\s*name|firstname)\b|\bime\b/i', 'field' => 'first_name'], ['pattern' => '/^(priimek|last\s*name|lastname)\b|\bpriimek\b/i', 'field' => 'last_name'], ['pattern' => '/^(naziv|ime\s+in\s+priimek|full\s*name|name)\b|\bnaziv\b/i', 'field' => 'full_name'], ['pattern' => '/^(davcna|davčna|tax|tax\s*number|tin)\b/i', 'field' => 'tax_number'], ['pattern' => '/^(emso|emšo|ssn|social|social\s*security)\b/i', 'field' => 'social_security_number'], ['pattern' => '/^(spol|gender)\b/i', 'field' => 'gender'], ['pattern' => '/^(rojstvo|datum\s*rojstva|dob|birth|birthday|date\s*of\s*birth)\b/i', 'field' => 'birthday'], ['pattern' => '/^(komentar|opis|opomba|comment|description|note)\b/i', 'field' => 'description'], ], 'ui' => ['order' => 1], ], [ 'key' => 'person_addresses', 'canonical_root' => 'address', 'label' => 'Person Addresses', 'fields' => ['address', 'city', 'postal_code', 'country', 'type_id', 'description'], 'field_aliases' => [ 'ulica' => 'address', 'naslov' => 'address', 'mesto' => 'city', 'posta' => 'postal_code', 'pošta' => 'postal_code', 'zip' => 'postal_code', 'drzava' => 'country', 'država' => 'country', 'opis' => 'description', ], 'aliases' => ['person_addresses', 'address', 'addresses'], 'rules' => [ ['pattern' => '/^(naslov|ulica|address)\b/i', 'field' => 'address'], ['pattern' => '/^(mesto|city|kraj)\b/i', 'field' => 'city'], ['pattern' => '/^(posta|pošta|zip|postal)\b/i', 'field' => 'postal_code'], ['pattern' => '/^(drzava|država|country)\b/i', 'field' => 'country'], ['pattern' => '/^(komentar|opis|opomba|comment|description|note)\b/i', 'field' => 'description'], ], 'ui' => ['order' => 2], ], [ 'key' => 'person_phones', 'canonical_root' => 'phone', 'label' => 'Person Phones', 'fields' => ['nu', 'country_code', 'type_id', 'description'], 'field_aliases' => ['number' => 'nu'], 'aliases' => ['phone', 'person_phones'], 'rules' => [ ['pattern' => '/^(telefon|tel\.?|gsm|mobile|phone|kontakt)\b/i', 'field' => 'nu'], ], 'ui' => ['order' => 3], ], [ 'key' => 'emails', 'canonical_root' => 'email', 'label' => 'Emails', 'fields' => ['value', 'is_primary', 'label'], 'field_aliases' => ['email' => 'value'], 'aliases' => ['email', 'emails'], 'rules' => [ ['pattern' => '/^(email|e-?mail|mail)\b/i', 'field' => 'value'], ], 'ui' => ['order' => 4], ], [ 'key' => 'contracts', 'canonical_root' => 'contract', 'label' => 'Contracts', 'fields' => ['reference', 'start_date', 'end_date', 'description', 'type_id', 'client_case_id'], 'aliases' => ['contract', 'contracts', 'contracs'], 'rules' => [ ['pattern' => '/^(sklic|reference|ref)\b/i', 'field' => 'reference'], ['pattern' => '/^(od|from|start|zacetek|začetek)\b/i', 'field' => 'start_date'], ['pattern' => '/^(do|to|end|konec)\b/i', 'field' => 'end_date'], ['pattern' => '/^(komentar|opis|opomba|comment|description|note)\b/i', 'field' => 'description'], ], 'ui' => ['order' => 5], ], [ 'key' => 'accounts', 'canonical_root' => 'account', 'label' => 'Accounts', 'fields' => ['reference', 'initial_amount', 'balance_amount', 'contract_id', 'contract_reference', 'type_id', 'active', 'description'], 'aliases' => ['account', 'accounts'], 'rules' => [ ['pattern' => '/^(dolg|znesek|amount|saldo|balance|debt)\b/i', 'field' => 'balance_amount'], ['pattern' => '/^(sklic|reference|ref)\b/i', 'field' => 'reference'], ], 'ui' => ['order' => 6], ], [ 'key' => 'client_cases', 'canonical_root' => 'client_case', 'label' => 'Client Cases', 'fields' => ['client_ref'], 'aliases' => ['client_case', 'client_cases', 'case', 'primeri', 'primer'], 'rules' => [ ['pattern' => '/^(client\s*ref|client_ref|case\s*ref|case_ref|primer|primeri|zadeva)\b/i', 'field' => 'client_ref'], ], 'ui' => ['order' => 7], ], [ 'key' => 'payments', 'canonical_root' => 'payment', 'label' => 'Payments', // include common fields and helpful references for mapping 'fields' => [ 'reference', 'payment_nu', 'payment_date', 'amount', 'type_id', 'active', // optional helpers for mapping by related records 'debt_id', 'account_id', 'account_reference', 'contract_reference', ], 'field_aliases' => [ 'date' => 'payment_date', 'datum' => 'payment_date', 'paid_at' => 'payment_date', 'number' => 'payment_nu', 'znesek' => 'amount', 'value' => 'amount', ], 'aliases' => ['payment', 'payments', 'placila', 'plačila'], 'rules' => [ ['pattern' => '/^(sklic|reference|ref)\b/i', 'field' => 'reference'], ['pattern' => '/^(stevilka|številka|number|payment\s*no\.?|payment\s*nu)\b/i', 'field' => 'payment_nu'], ['pattern' => '/^(datum|date|paid\s*at|payment\s*date)\b/i', 'field' => 'payment_date'], ['pattern' => '/^(znesek|amount|vplacilo|vplačilo|placilo|plačilo)\b/i', 'field' => 'amount'], ], 'ui' => ['order' => 8], ], ]; foreach ($defs as $d) { ImportEntity::updateOrCreate(['key' => $d['key']], $d); } } }