84 lines
4.9 KiB
PHP
84 lines
4.9 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders\Dictionaries;
|
||
|
||
use App\Models\Dictionaries\Dictionary;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
class DictionariesTableSeeder extends Seeder {
|
||
public array $dictionaries = [
|
||
'list-types' => [
|
||
'title' => 'Виды списка',
|
||
'items' => ['marked' => 'Маркированный', 'numeric' => 'Нумерованный']
|
||
],
|
||
'title-types' => [
|
||
'title' => 'Виды заголовков',
|
||
'items' => ['h2' => 'Заголовок 1', 'h3' => 'Заголовок 2', 'h4' => 'Заголовок 3']
|
||
],
|
||
'feedback-types' => [
|
||
'title' => 'Тема обращения',
|
||
'items' => [
|
||
'regulation' => 'Техническое нормирование',
|
||
'assessment' => 'Оценка пригодности',
|
||
'certification' => 'Добровольная сертификация',
|
||
'questions' => 'Вопросы нормирования и стандартизации',
|
||
'other' => 'Другие'
|
||
],
|
||
],
|
||
'operation-types' => [
|
||
'title' => 'Виды операций',
|
||
'items' => ['development' => 'Разработка', 'rework' => 'Пересмотр', 'modification' => 'Изменение']
|
||
],
|
||
'listings' => [
|
||
'title' => 'Перечни ПП',
|
||
'items' => ['pp1521' => 'ПП №1521 от 26.12.2014 г.', 'pp985' => 'ПП № 985 от 04.07.2020 г.', 'pp815' => 'ПП № 815 от 28.05.2021 г.']
|
||
],
|
||
'image-type' => [
|
||
'title' => 'Тип изображения',
|
||
'items' => ['full-width' => 'во всю ширину', 'tiles' => 'плиткой', 'carousel' => 'карусель']
|
||
],
|
||
'activities' => [
|
||
'title' => 'Направления деятельности',
|
||
'items' => ['products' => 'Продукция в строительстве', 'services' => 'Работы и услуги', 'management' => 'СМК']
|
||
],
|
||
'research-types' => [
|
||
'title' => 'Виды исследовательских работ',
|
||
'items' => ['nir' => 'НИР', 'niokr' => 'НИОКР']
|
||
],
|
||
'funding-sources' => [
|
||
'title' => 'Источники финансирования',
|
||
'items' => ['budget' => 'Федеральный бюджет', 'non-budget' => 'Внебюджетные средства']
|
||
],
|
||
'normative-document-types' => [
|
||
'title' => 'Виды нормативно-техничесих документов',
|
||
'items' => ['sp' => 'СП', 'gost' => 'ГОСТ', 'sn' => 'СН', 'rk-eek' => 'Решение коллегии ЕЭК', 'gost-r' => 'ГОСТ Р',
|
||
'sanpin' => 'СанПиН', 'fnip' => 'ФНиП', 'foiv' => 'Приказ ФОИВа', 'pp-rf' => 'Постановление Правительства РФ',
|
||
'rp-rf' => 'Распоряжение Правительства РФ', 'tr-eaes' => 'Технический регламент ЕАЭС', 'fz' => 'Федеральный закон',
|
||
'sto' => 'СТО (ПБЯ)', 'rs-eek' => 'Решение Совета ЕЭК', 'st-sev' => 'СТ СЭВ']
|
||
],
|
||
'host-agencies' => [
|
||
'title' => 'Исполнительные органы',
|
||
'items' => ['minstroy' => 'Минстрой России', 'gov-rf' => 'Правительство РФ', 'kol-eek' => 'Коллегия ЕЭК', 'mintrans' => 'Минтранс России',
|
||
'mchs' => 'МЧС России', 'mincult' => 'Минкультуры России', 'minprirody' => 'Минприроды России', 'rospotreb' => 'Роспотребнадзор',
|
||
'rosstandart' => 'Росстандарт', 'rostechnadzor' => 'Ростехнадзор', 'rosatom' => 'ГК «Росатом»', 'president' => 'Президент Российской Федерации',
|
||
'minenergo' => 'Минэнерго России', 'sovet-eek' => 'Совет ЕЭК', 'minselhoz' => 'Минсельхоз России', 'mintrud' => 'Минтруд России',
|
||
'rosavia' => 'Росавиация']
|
||
],
|
||
'moderate-permissions' => [
|
||
'title' => 'Права',
|
||
'items' => ['applications' => 'Рассмотрение предварительных заявок']
|
||
]
|
||
];
|
||
|
||
public function run() {
|
||
collect($this->dictionaries)->each(function($data, $name) {
|
||
$dictionary = Dictionary::firstOrCreate(['name' => $name]);
|
||
$dictionary->update(collect($data)->except('items')->all());
|
||
collect($data['items'] ?? [])->each(function($title, $name) use($dictionary) {
|
||
$item = $dictionary->items()->firstOrCreate(['name' => $name]);
|
||
$item->update(['title' => $title]);
|
||
});
|
||
});
|
||
}
|
||
}
|