QR_code_generator/database/seeders/Dictionaries/DictionariesTableSeeder.php

88 lines
5.3 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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']
],
'card-styles' => [
'title' => 'Виды отображения карточек',
'items' => ['default' => 'По умолчанию', 'alternative' => 'Альтернативный', 'special' => 'Специфический']
],
'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' => 'Рассмотрение предварительных заявок', 'manage-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]);
});
});
}
}