ldc-legaulois/database/seeders/Mandatory/GeneralSettingSeeder.php

52 lines
1.3 KiB
PHP

<?php
namespace Database\Seeders\Mandatory;
use App\Enums\Settings\SettingsType;
use App\Lib\Helpers\FileStorageHelper;
use App\Models\GeneralSetting;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class GeneralSettingSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
* @throws \ErrorException If a setting seeding case is missing.
*/
public function run(): void
{
FileStorageHelper::removeModelFiles(new GeneralSetting());
DB::table((new GeneralSetting())->getTable())->truncate();
\collect(SettingsType::all())->each(fn (SettingsType $type) => self::seedSettingsType($type));
}
/**
* Seeds Menu order
*
* @param \App\Enums\Settings\SettingsType $type
* @return void
*/
public static function seedSettingsType(SettingsType $type): void
{
self::getTable()->insert([
'type' => $type,
'value' => json_encode(GeneralSetting::getJsonLayout($type)),
'created_at' => now(),
'updated_at' => now()
]);
}
/**
* Get Table
*
* @return \Illuminate\Database\Query\Builder
*/
private static function getTable(): \Illuminate\Database\Query\Builder
{
return DB::table((new GeneralSetting())->getTable());
}
}