QR_code_generator/database/seeders/Objects/FieldsTableSeeder.php

137 lines
4.5 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
],
'documents' => [
'title' => 'Документы',
'type' => FieldType::DOCUMENT,
'multiple' => true
],
'documents-required' => [
'title' => 'Документы',
'type' => FieldType::DOCUMENT,
'multiple' => true,
'required' => true
],
'html' => [
'title' => 'Содержимое текстового блока',
'type' => FieldType::HTML
],
'html-required' => [
'title' => 'Содержимое текстового блока',
'type' => FieldType::HTML,
'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
],
'images-required' => [
'title' => 'Изображения',
'type' => FieldType::IMAGE,
'multiple' => true,
'required' => true
],
'video-url' => [
'title' => 'Ссылка на видео',
'type' => FieldType::STRING,
'required' => true
],
// Registry entry operation fields
'operation-type' => [
'title' => 'Вид работы',
'type' => FieldType::RELATION,
'required' => true,
'params' => [
'appearance' => 'radio',
'related' => DictionaryItem::class, 'transformer' => DictionaryItemTransformer::class,
'options' => ['show' => true, 'whereHas' => ['dictionary' => ['name' => 'operation-types']]]
]
],
'order-name' => [
'title' => 'Наименование приказа',
'type' => FieldType::STRING,
'required' => true
],
'order-date' => [
'title' => 'Дата приказа',
'type' => FieldType::DATE,
'required' => true
],
'order-document' => [
'title' => 'Документ приказа',
'type' => FieldType::DOCUMENT,
'required' => true
],
'listings' => [
'title' => 'Вхождение в перечень ПП',
'type' => FieldType::RELATION,
'multiple' => true,
'params' => [
'appearance' => 'checkbox',
'related' => DictionaryItem::class, 'transformer' => DictionaryItemTransformer::class,
'options' => ['show' => true, 'whereHas' => ['dictionary' => ['name' => 'listings']]]
]
],
'active-since' => [
'title' => 'Дата начала действия',
'type' => FieldType::DATE,
'required' => true
],
'active-till' => [
'title' => 'Дата окончания действия',
'type' => FieldType::DATE
],
'developer' => [
'title' => 'Разработчик',
'type' => FieldType::STRING
]
];
public function run() {
collect($this->fields)->each(function($data, $name) {
$field = Field::firstOrCreate(['name' => $name]);
$field->update($data);
});
}
}