ldc-showroom-bo/database/seeders/Mandatory/SettingsSeeder.php
2025-05-27 09:11:43 +02:00

56 lines
2 KiB
PHP

<?php
namespace Database\Seeders\Mandatory;
use App\Models\Settings;
use Illuminate\Database\Seeder;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
use Uwil\LaravelCommon\Helpers\FileHelper;
class SettingsSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run(): void
{
Schema::disableForeignKeyConstraints();
DB::table((new Settings())->getTable())->truncate();
Schema::enableForeignKeyConstraints();
File::deleteDirectory(\storage_path('app/public/modelfiles/' . (new Settings())->getTable()));
Settings::factory(1)->make()->each(function (Settings $settings) {
$settings->logo = FileHelper::storeFile(
new Settings(),
new \SplFileInfo(
\resource_path('../database/factories/assets/settings/default-picture-200x200.jpg')
),
prefix: $settings->tenant_id
);
$attributes = $settings->getAttributes();
$settings->setRawAttributes([
'sub_title' => \json_encode([
'fr' => 'FR ' . $settings->sub_title,
'nl' => 'NL ' . $settings->sub_title,
'en' => 'EN ' . $settings->sub_title,
'es' => 'ES ' . $settings->sub_title,
'de' => 'DE ' . $settings->sub_title,
]),
'footer_phrase' => \json_encode([
'fr' => 'FR ' . $settings->footer_phrase,
'nl' => 'NL ' . $settings->footer_phrase,
'en' => 'EN ' . $settings->footer_phrase,
'es' => 'ES ' . $settings->footer_phrase,
'de' => 'DE ' . $settings->footer_phrase,
])
]);
$settings->fill(Arr::except($attributes, ['sub_title', 'footer_phrase']));
$settings->saveOrFail();
});
}
}