40 lines
1.4 KiB
PHP
40 lines
1.4 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace Database\Seeders;
|
||
|
|
|
||
|
|
use App\Modules\CustomField\Models\CustomFieldDefinition;
|
||
|
|
use App\Modules\CustomField\Models\CustomFieldType;
|
||
|
|
use Illuminate\Database\Seeder;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Registers the base-data custom fields the Mandanten-Import maps onto.
|
||
|
|
*
|
||
|
|
* Idempotent (firstOrCreate by key) so it is safe to run against a real
|
||
|
|
* database — the importer resolves these definitions by key and fails fast
|
||
|
|
* if they are absent.
|
||
|
|
*/
|
||
|
|
class CustomFieldDefinitionSeeder extends Seeder
|
||
|
|
{
|
||
|
|
public function run(): void
|
||
|
|
{
|
||
|
|
$fields = [
|
||
|
|
['key' => 'telefonnummer', 'label' => 'Telefon 1', 'type' => CustomFieldType::Text, 'sort_order' => 1],
|
||
|
|
['key' => 'e_mail', 'label' => 'E-Mail', 'type' => CustomFieldType::Text, 'sort_order' => 2],
|
||
|
|
['key' => 'ansprechpartner', 'label' => 'Ansprechpartner', 'type' => CustomFieldType::Text, 'sort_order' => 3],
|
||
|
|
['key' => 'anschrift', 'label' => 'Anschrift', 'type' => CustomFieldType::Textarea, 'sort_order' => 4],
|
||
|
|
];
|
||
|
|
|
||
|
|
foreach ($fields as $field) {
|
||
|
|
CustomFieldDefinition::firstOrCreate(
|
||
|
|
['key' => $field['key']],
|
||
|
|
[
|
||
|
|
'label' => $field['label'],
|
||
|
|
'type' => $field['type'],
|
||
|
|
'is_required' => false,
|
||
|
|
'sort_order' => $field['sort_order'],
|
||
|
|
],
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|