ldc-com-app-bo/database/seeders/DirectorySeeder.php

49 lines
1.4 KiB
PHP
Raw Normal View History

2023-03-31 15:20:10 +02:00
<?php
namespace Database\Seeders;
2023-03-31 15:24:32 +02:00
use App\Models\AppUser;
2023-03-31 15:20:10 +02:00
use App\Models\Directory;
use Illuminate\Database\Seeder;
2023-07-13 08:34:54 +00:00
use Illuminate\Support\Facades\DB;
2023-03-31 15:20:10 +02:00
class DirectorySeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
2023-07-13 08:34:54 +00:00
$directory = new Directory();
$directory->name = [
"fr" => "Salon",
"en" => "Salon",
"de" => "Wohnzimmer",
"nl" => "Tentoonstelling",
];
$directory->directory_id = null;
$directory->needAuthorization = 0;
$directory->is_system = 1;
$directory->order = 1;
$directory->saveOrFail();
$i = 2;
Directory::factory(14)->make()->each(function (Directory $directory) use (&$i) {
2023-03-31 15:20:10 +02:00
$directory->order = $i;
$directory->saveOrFail();
$i = $i + 1;
});
2023-03-31 15:24:32 +02:00
// Seeder for directory_authorizations table.
$directories = Directory::query()->where('needAuthorization', true)->get();
AppUser::each(function (AppUser $model) use ($directories) {
2023-07-13 08:34:54 +00:00
$offset = rand(DB::table('directories')->min('id') ?? 1, DB::table('directories')->max('id') ?? 15);
2023-03-31 15:24:32 +02:00
$length = rand(1, 2);
2023-07-13 08:34:54 +00:00
$model->directories()->saveMany($directories->slice($offset, $length));
2023-03-31 15:24:32 +02:00
});
2023-03-31 15:20:10 +02:00
}
}