86 lines
2.6 KiB
PHP
86 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders\Objects;
|
|
|
|
use App\Models\Dictionaries\DictionaryItem;
|
|
use App\Models\Objects\Field;
|
|
use App\Models\Objects\FieldType;
|
|
use App\Transformers\Dictionaries\DictionaryItemTransformer;
|
|
use Illuminate\Database\Seeder;
|
|
|
|
class FieldsTableSeeder extends Seeder {
|
|
public array $fields = [
|
|
'header' => [
|
|
'title' => 'Текст заголовка',
|
|
'type' => FieldType::TEXT
|
|
],
|
|
'header-required' => [
|
|
'title' => 'Текст заголовка',
|
|
'type' => FieldType::TEXT,
|
|
'required' => true
|
|
],
|
|
|
|
'subheader' => [
|
|
'title' => 'Текст подзаголовка',
|
|
'type' => FieldType::TEXT
|
|
],
|
|
'subheader-required' => [
|
|
'title' => 'Текст подзаголовка',
|
|
'type' => FieldType::TEXT,
|
|
'required' => true
|
|
],
|
|
|
|
'documents' => [
|
|
'title' => 'Документы',
|
|
'type' => FieldType::DOCUMENT,
|
|
'multiple' => true
|
|
],
|
|
'documents-required' => [
|
|
'title' => 'Документы',
|
|
'type' => FieldType::DOCUMENT,
|
|
'multiple' => true,
|
|
'required' => true
|
|
],
|
|
|
|
'text' => [
|
|
'title' => 'Содержимое текстового блока',
|
|
'type' => FieldType::TEXT
|
|
],
|
|
'text-required' => [
|
|
'title' => 'Содержимое текстового блока',
|
|
'type' => FieldType::TEXT,
|
|
'required' => true
|
|
],
|
|
|
|
'list-type' => [
|
|
'title' => 'Вид списка',
|
|
'type' => FieldType::RELATION,
|
|
'required' => true,
|
|
'params' => [
|
|
'related' => DictionaryItem::class, 'transformer' => DictionaryItemTransformer::class,
|
|
'options' => ['show' => true, 'whereHas' => ['dictionary' => ['name' => 'list-types']]]
|
|
]
|
|
],
|
|
'list-items' => [
|
|
'title' => 'Элементы списка',
|
|
'type' => FieldType::TEXT,
|
|
'multiple' => true,
|
|
'required' => true
|
|
],
|
|
|
|
'images' => [
|
|
'title' => 'Изображения',
|
|
'type' => FieldType::IMAGE,
|
|
'multiple' => true,
|
|
'required' => true
|
|
]
|
|
];
|
|
|
|
public function run() {
|
|
collect($this->fields)->each(function($data, $name) {
|
|
$field = Field::firstOrCreate(['name' => $name]);
|
|
$field->update($data);
|
|
});
|
|
}
|
|
}
|